DataWorks上数据集成任务如何解决网络问题

特别声明:本文介绍的场景是各种网络环境下的数据库该如何将数据上云(同步的目标端为MaxCompute),若同步的目标端为其他数据源,本文也可参考,底层执行原理基本一致。

网络背景(全局通用)

在讲网络问题的解决方案之前,先给大家讲讲阿里云上的网络背景。

  1. 同一region下,经典网络环境中的机器与经典网络环境中的机器,内网是可以互通的。
  2. 同一region下,VPC网络环境中的机器与VPC网络环境中的机器,内网是可以互通的
  3. 同一region下,经典网络环境中的机器和VPC网络环境中的机器,不保证内网可通。
  4. 不同region下,经典网络环境中的机器与经典网络环境中的机器,不保证内网可通。
  5. 不同region下,VPC网络环境中的机器与VPC网络环境中的机器,不保证内网可通。
  6. 不同region下,经典网络环境中的机器和VPC网络环境中的机器,不保证内网可通。
  7. 阿里云上的ECS和本地IDC机房中的机器,默认内网不通,只能走公网。

介绍完整体的网络背景,总结了一句话: 只有同一region下,同一网络环境中的机器,内网才能互通,如果开启了安全组或白名单,请自行添加。

场景描述 - 数据源测试连通性失败

最近很多用户都会问我,你好,我的数据源测试连通性的时候失败了,该如何处理呢?
结合上面介绍的网络背景,我们需要有一个灵魂三问(请):

  1. 该数据源是云数据库还是自建的数据库 ?

注:云数据库类似rds,是阿里云上已经搭建好的数据库服务,用户可直接使用。自建的数据库是指,本地IDC机房中自建搭建的数据库,或者是在阿里云上通过ECS自己搭建的数据库。

  1. 数据库所在的Region和DataWorks项目所在Region是否相同?
  2. 数据库的网络环境是什么?

云数据库

由于RDS数据库在网络方面做得比较好,即使是RDS数据库所在的region 和DataWorks 项目不在同一 region下,且数据库网络也是VPC环境下,测试连通性也是可以连通的(因为RDS做了 VPC反向代理)。除RDS数据库外,其他云数据库都可通过以下问题来判断,通过什么方式同步数据比较好,以下两问需严格注意。

第一问:数据库所在的Region和DataWorks项目所在Region是否相同?

  • 当数据库所在region和DataWorks项目在同一region下时,那么就需要看下一个问题,数据库的网络环境了。
  • 当数据库所在region和DataWorks项目不在同一region下时 ,大概率下内网是无法互通的,此时请考虑使用公网,如果不想用公网的话,可以使用自定义资源组。

注:数据集成添加自定义资源组的操作流程:https://help.aliyun.com/document_detail/72979.html
特别注意:在添加自定义资源组中机器时,需保证,该机器与您的数据库内网可达,判断规则可借鉴第一节网络背景。

第二问:数据库的网络环境是什么?

  • 当云数据库网络环境是经典网络时,由于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任务的默认执行集群与您要同步的数据库之间的网络是不可达的。那么意味着,您无法使用向导模式来配置同步任务(无法获取到数据库中表的元数据信息),只能通过脚本模式来配置同步任务(因为数据源中表的元数据信息可以手填),详情请参考:脚本模式同步任务配置

切记:脚本模式同步任务配置完成以后,需要在右上角的任务运行资源组中,指定同步任务运行所在的资源组。

DataWorks上数据集成任务如何解决网络问题

总结

当您的数据库与DataWorks任务的默认执行集群不通时(测试连通性失败),配置同步任务需注意以下几点:

  1. 添加数据集成自定义资源组
  2. 使用脚本模式配置同步任务
  3. 修改同步任务运行的资源组

特别注意:在添加自定义资源组中机器时,需保证,该机器与您的数据库内网可达,判断规则可借鉴第一节网络背景。。

如果参考上述方法,还是没法解决问题,那么建议工单咨询。若对本文有无法理解的地方,可加入DataWorks用户交流群给我们反馈,感谢您的支持。DataWorks数加交流0群(群号:11718465)。 也可以钉钉扫码加群:
DataWorks上数据集成任务如何解决网络问题

上一篇:Dataworks调度能力升级——分支节点


下一篇:DataWorks V2.0 新一代智能大数据研发平台