dataworks 彭敏 发布时间: 2019-01-29 21:15:28 浏览 54 评论 0
etl
VPC
ECS
数据库
配置
集群
测试
同步
aliyun
云数据库
脚本
datax
数据集成
DataWorks
摘要: DataWorks 是一个一站式智能大数据研发平台, 在 DataWorks 上我们可以做一系列与大数据开发相关的工作. 今天主要给大家讲解, 在 DataWorks 上配置数据集成任务时, 遇到的那些网络不通的问题该如何处理.
特别声明: 本文介绍的场景是各种网络环境下的数据库该如何将数据上云 (同步的目标端为 MaxCompute), 若同步的目标端为其他数据源, 本文也可参考, 底层执行原理基本一致.
网络背景
在讲网络问题的解决方案之前, 先给大家讲讲阿里云上的网络背景.
同一 region 下, 经典网络环境中的机器与经典网络环境中的机器, 内网是可以互通的.
同一 region 下, VPC 网络环境中的机器与 VPC 网络环境中的机器, 内网是可以互通的
同一 region 下, 经典网络环境中的机器和 VPC 网络环境中的机器, 不保证内网可通.
不同 region 下, 经典网络环境中的机器与经典网络环境中的机器, 不保证内网可通.
不同 region 下, VPC 网络环境中的机器与 VPC 网络环境中的机器, 不保证内网可通.
不同 region 下, 经典网络环境中的机器和 VPC 网络环境中的机器, 不保证内网可通.
阿里云上的 ECS 和本地 IDC 机房中的机器, 默认内网不同, 只能走公网.
介绍完整体的网络背景, 总结了一句话: 只有同一 region 下, 同一网络环境中的机器, 内网才能互通.
场景描述 - 数据源测试连通性失败
最近很多用户都会问我, 你好, 我的数据源测试连通性的时候失败了, 该如何处理呢?
结合上面介绍的网络背景, 我们需要有一个灵魂三问:
该数据源是云数据库还是自建的数据库 ?
注: 云数据库类似 rds, 是阿里云上已经搭建好的数据库服务, 用户可直接使用. 自建的数据库是指, 本地 IDC 机房中自建搭建的数据库, 或者是在阿里云上通过 ECS 自己搭建的数据库.
数据库所在的 Region 和 DataWorks 项目所在 Region 是否相同?
数据库的网络环境是什么?
云数据库
注: 由于 RDS 数据库在网络方面做得比较好, 即使是 RDS 数据库所在的 region 和 DataWorks 项目不再同一 region 下, 且数据库网络也是 VPC 环境下的话, 测试连通性也是可以连通的. 除 RDS 数据库外, 其他云数据库都可通过以下问题来判断, 通过什么方式同步数据比较好.
数据库所在的 Region 和 DataWorks 项目所在 Region 是否相同?
当数据库所在 region 和 DataWorks 项目在同一 region 下时, 那么就需要看下一个问题, 数据库的网络环境了.
当数据库所在 region 和 DataWorks 项目不在同一 region 下时 , 大概率下内网是无法互通的, 此时请考虑使用公网.
数据库的网络环境是什么?
当云数据库网络环境是经典网络时, 由于 DataWorks 底层任务运行的机器, 是部署在经典网络环境下的, 所以同一 region 下, 经典网络的机器与经典网络的机器网络是可以互通的, 如果测试连通性失败, 那么可以考虑一下, 是不是白名单没有加全; 或者用户名, 密码等连接方式是否书写正确.
当云数据库网络环境是 VPC 网络时, 大概率下内网是无法互通的, 此时可以通过添加自定义资源组的方式, 来解决网络问题.
DataWorks 数据集成白名单地址: https://help.aliyun.com/document_detail/72977.html
数据集成添加自定义资源组的操作流程: https://help.aliyun.com/document_detail/72979.html
特别注意: 在添加自定义资源组中机器时, 需保证, 该机器与您的数据库内网可达.
ECS 上的自建数据库
ECS 上自建数据库和云数据库的情况基本一致, 建议 DataWorks 的项目和自建数据库的 ECS 在同一 region 下. 如果 DataWorks 项目和自建数据库的 ECS 不在同一 region 下时, 又不想使用公网进行数据传输, 可以考虑使用数据集成的自定义资源组来运行任务.
注: 数据集成添加自定义资源组的操作流程: https://help.aliyun.com/document_detail/72979.html
特别注意: 在添加自定义资源组中机器时, 需保证, 该机器与您的数据库内网可达.
本地 IDC 机房中的自建数据库
当本地 IDC 机房中的自建数据库需要上云的话, 可以优先选择通过公网传递数据. 若不想将本地 IDC 机房中的机器开启公网访问的话, 可以使用 DataWorks 上的自定义资源组来完成数据传输; 或者通过专线打通网络.
注: 数据集成添加自定义资源组的操作流程: https://help.aliyun.com/document_detail/72979.html
特别注意, 当测试连通性失败, 准备使用自定义资源组来运行任务时. 您需要确认您注册数据源输入的数据库连接地址, 数据库名, 用户名, 密码等信息输入是正确的, 确认后选择完成即可.
场景描述 - 配置数据同步任务
结合上文, 当数据源添加成功后, 如何完成接下来的同步任务配置. 主要分为两个部分, 数据源测试连通性成功, 或数据源测试连通性失败时该如何处理.
测试连通性成功的同步任务配置
当测试连通性成功的时候, 表示 DataWorks 任务的默认执行集群与您要同步的数据库之间的网络是可达的, 那么您只需要通过正常任务配置即可. 任务配置文档可参考: 向导模式同步任务配置.
测试连通性失败的同步任务配置
当测试连通性失败时, 表示 DataWorks 任务的默认执行集群与您要同步的数据库之间的网络是不可达的. 那么意味着, 您无法使用向导模式来配置同步任务 (无法获取到数据库中表的元数据信息), 只能通过脚本模式来配置同步任务 (因为数据源中表的元数据信息可以手填), 详情请参考: 脚本模式同步任务配置.
切记: 脚本模式同步任务配置完成以后, 需要在右上角的任务运行资源组中, 指定同步任务运行所在的资源组.
总结
当您的数据库与 DataWorks 任务的默认执行集群不通时 (测试连通性失败), 配置同步任务需注意以下几点:
添加数据集成自定义资源组
使用脚本模式配置同步任务
修改同步任务运行的资源组
特别注意: 在添加自定义资源组中机器时, 需保证, 该机器与您的数据库内网可达.
来源: https://yq.aliyun.com/articles/689318