全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
DataWorks(数据工场)

VPC环境$金融云环境的数据同步

更新时间:2017-12-26 10:53:46

本文将为您介绍如何将VPC环境的MySQL数据源同步到 MaxCompute。由于专有网络下搭建数据库,网络连通性存在问题,导致此环境数据库的数据不能直接同步上云。

金融云的网络是VPC网络,所以本实验准备了两台同网段的ECS服务器:

  • ECS1作为资源组,同步任务将在此机器运行。

  • ECS2服务器主要是用来搭建MySQL数据库。

ECS1服务器从ECS2服务器里读取数据库里的数据,然后写入到MaxCompute中。

注意:

要给数据库赋权限,让ECS1服务器能访问到相应的数据库,这样才能将此数据库的数据读取到ECS1中,授权命令如下所示:

  1. grant all privileges on *.* to 'demo_test'@'%' identified by '密码'; --> %号代表给所有IP授权

本实验的流程,如下图所示:

操作步骤

购买ECS

首先,要用金融云账号购买两台ECS服务器

  • 第一台:ECS1服务器(弹性公网:120.76.2.21),作为调度资源组。

  • 第二台:ECS2服务器(弹性公网:120.76.1.119),用来搭建MySQL数据库database:demo_test,表名:mytest。

    注意:

    • 建议使用centos6、centos7或者aliyunos。

    • 添加的ECS服务器需要执行同步任务,需要检查当前ECS的python版本是否是python2.6.5以上的版本(centos的版本6.5 64位)。

    • 建议不要分配公网IP,可以绑定弹性公网IP。

购买两台ECS服务器的相关信息,如下图所示:

自定义ECS需要购买公网带宽具备访问公网能力

您可以通过以下面两种方式购买公网带宽:

  • 购买ECS时直接分配公网IP地址。

  • 如果不分配公网IP,那么需要配置并绑定弹性公网IP,详情请参见绑定弹性公网IP

专有网络里的ECS实例需要访问公网,如果已在专有网络里创建了ECS实例,并且该ECS实例没有系统分配的公网IP,那么也没有绑定弹性IP连接Dataworks将会有问题,因为弹性公网IP对于Dataworks的汇报心跳非常重要。

添加安全组

安全组是一个逻辑上的分组,是一种虚拟防火墙,由同一个地域(Region)内具有相同安全保护需求并相互信任的实例组成,可用于设置单台或多台ECS实例的网络访问控制,是重要的网络安全隔离手段。每个实例至少属于一个安全组,在创建时就需要指定。同一安全组内的实例之间网络互通,不同安全组的实例之间默认内网不通。可以授权两个安全组之间互访,详情请参见应用案例

注意:

添加安全组172.31.46.0/24,端口范围设置为-1/-1,这样添加私有网络的IP段,可以让整个172.31.46.0的IP段连通。

新增调度资源

  1. 项目管理员进入DataWorks>调度资源列表,单击新增调度资源,填写新增的调度资源名称,如下图所示:

  2. 添加调度资源后,在弹窗界面内单击新建调度资源操作栏中的服务器管理,进入服务器添加页面,将购买的ECS云服务器添加到资源组,如下图所示:

  3. 单击 增加服务器

    • 网络类型:选择经典网络和专有网络类型,根据您的网络类型而设定。

    • 服务器名称:

      经典网络获取方式:登录ECS,执行hostname命令,取返回值。

      专有网络获取方式:登录ECS,执行dmidecode | grep UUID,取返回值。

    • 机器IP:输入专有网络IP。

完成上述操作后,已将新购买的ECS信息注册到了DataWorks中,但是目前为止还不能服务。

登录远程服务器

  1. 进入管理控制台>ECS云服务器>实例>远程连接页面,登录远程服务器进行相应的操作,如下图所示:

    1. 单击远程连接

      注意:

      远程连接密码只出现一次,您以后每次远程连接登录时都需要输入该密码,请做好记录存档工作。

    2. 输入远程登录密码。

    3. 单击复制命令输入,输入相关命令进行相应的操作。

  2. 服务器初始化。

    1. 用root权限,登录ECS服务器(该服务器是您远程登录的ECS),su root,然后输入您在购买时设置的密码。

    2. 执行命令(该行命令直接copy界面提示,并执行):wget https://alisaproxy.shuju.aliyun.com/install.sh --no-check-certificate;

    3. 执行命令(该行命令直接copy 界面提示,并执行):sh install.sh --user_name=zz_[调度资源唯一标识] --password=[AK 密码] --enable_uuid=false;

    4. 稍后(大约15秒)在添加服务器页面,单击刷新按钮,观察服务状态是否转正常状态,若显示正常则表示新建ECS服务器注册成功。

    执行完此处后,若服务状态仍是停止,那么您可能碰到以下问题:

    上图的错误原因是没有绑定host,请参见以下步骤进行修改:

    1. 切换到admin账号。

    2. hostname -i查看host绑定情况。

    3. vim / etc / hosts添加IP地址和主机名。

    4. 刷新界面服务状态,若显示正常则表示新建ECS服务器注册成功。

    注意:

    如果刷新后还是停止状态,您可以重启alisa命令:切换到admin账号 /home/admin/alisatatasknode/target/alisatatasknode/bin/serverct1 restart。

配置MySQL数据源

  1. 以开发者身份进入DataWorks管理控制台,单击对应项目操作栏中的进入工作区

  2. 单击顶部菜单栏中的数据集成,导航至数据源页面。

  3. 单击新增数据源,弹出支持的数据源类型。如下图所示:

  4. 选择数据源类型为MySQL。

    配置项说明:

    • 数据源类型:有公网IP。

    • 数据源名称:由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过60个字符。

    • 数据源描述:对数据源进行简单描述,不得超过80个字符。

    • JDBC URL:JDBC连接信息,格式是jdbc:mysql://ServerIP:Port/Database。

    • 用户名/密码:数据库对应的用户名和密码。

  5. 单击测试连通性

  6. 此时测试连通性是失败的,直接单击确认

配置同步任务(从VPC同步只支持脚本模式)

  1. 提供脚本配置样例如下
  2. {
  3. "configuration": {
  4. "reader": {
  5. "plugin": "mysql",
  6. "parameter": {
  7. "datasource": "ecs_mysql",
  8. "column": [
  9. "id",
  10. "name",
  11. "sex",
  12. "age"
  13. ],
  14. "where": "",
  15. "splitPk": "",
  16. "table": "mytest"
  17. }
  18. },
  19. "writer": {
  20. "plugin": "odps",
  21. "parameter": {
  22. "odpsServer": "http://service.odps.aliyun.com/api",
  23. "tunnelServer": "http://dt.odps.aliyun.com",
  24. "partition": "",
  25. "truncate": false,
  26. "datasource": "odps_first",
  27. "column": [
  28. "id",
  29. "name",
  30. "sex",
  31. "age"
  32. ],
  33. "table": "mytest"
  34. }
  35. },
  36. "setting": {
  37. "errorLimit": {
  38. "record": "0"
  39. },
  40. "speed": {
  41. "concurrent": "1",
  42. "mbps": "1"
  43. }
  44. }
  45. },
  46. "type": "job",
  47. "version": "1.0"
  48. }

MaxCompute及其Tunnel服务的连接地址

目前MaxCompute服务和MaxCompute tunnel连接默认的MaxCompute数据源地址是可以连通,下表详细介绍了在不同区域下,不同网络环境下,访问MaxCompute及其Tunnel服务的连接地址,详情请参见访问域名和数据中心。配置好同步任务后调度任务仍未成功,只有配置的同步任务在之前添加的调度资源组中运行,才能成功。

修改调度资源组

  1. 进入DataWorks>运维中心页面,周期任务和手动任务都有此功能,在哪里修改取决您调度提的是什么任务。

    1

  2. 选择同步任务,单击修改资源组

    1

  3. 选择要添加的资源组,单击确认

    任务重跑结果:

    数据源里mytest表的数据:

    同步到MaxCompute的结果:

本文导读目录