本文为您介绍如何使用独享数据集成资源,将您在ECS上自建的MySQL数据库中的数据,迁移到MaxCompute。
前提条件
-
已拥有至少一个绑定专有网络VPC的ECS(请勿使用经典网络),并在ECS上安装好MySQL数据库,数据库中已创建好用户和测试数据。本文中ECS自建MySQL的测试数据创建语句如下。
CREATE TABLE IF NOT EXISTS good_sale( create_time timestamp, category varchar(20), brand varchar(20), buyer_id varchar(20), trans_num varchar(20), trans_amount DOUBLE, click_cnt varchar(20) ); insert into good_sale values('2018-08-21','coat','brandA','lilei',3,500.6,7), ('2018-08-22','food','brandB','lilei',1,303,8), ('2018-08-22','coat','brandC','hanmeimei',2,510,2), ('2018-08-22','bath','brandA','hanmeimei',1,442.5,1), ('2018-08-22','food','brandD','hanmeimei',2,234,3), ('2018-08-23','coat','brandB','jimmy',9,2000,7), ('2018-08-23','food','brandA','jimmy',5,45.1,5), ('2018-08-23','coat','brandE','jimmy',5,100.2,4), ('2018-08-24','food','brandG','peiqi',10,5560,7), ('2018-08-24','bath','brandF','peiqi',1,445.6,2), ('2018-08-24','coat','brandA','ray',3,777,3), ('2018-08-24','bath','brandG','ray',3,122,3), ('2018-08-24','coat','brandC','ray',1,62,7) ;
-
请记录好您的ECS的私有IP、专有网络和虚拟交换机信息。
-
ECS上的安全组已放通MySQL数据库所使用的端口(默认为3306),详情请参见添加安全组规则,请记录好您的安全组名称。
-
已成功创建DataWorks工作空间。本文使用DataWorks简单模式工作空间,计算引擎为MaxCompute。请保证您的ECS与DataWorks工作空间处于同一个地域,创建方法请参见创建工作空间。
-
已完成独享数据集成资源的购买,并且绑定了ECS所在的专有网络VPC。请注意独享资源组必须与ECS同一可用区,详情请参见新增和使用独享数据集成资源组。完成绑定后,您可以在资源组列表查看到您的独享资源组。
-
在网络设置 > 专有网络绑定处查看专有网络、交换机和安全组信息是否和ECS一致。
背景信息
独享资源可以保障您的数据快速、稳定地传输。您购买的独享数据集成资源和需要访问的数据源(即本文中的ECS自建MySQL数据库)必须在同地域同可用区,且和DataWorks工作空间同地域。
操作步骤
-
在DataWorks上创建MySQL数据源。
-
进入数据源页面。
-
登录DataWorks控制台,单击左侧导航栏的管理中心,在下拉框中选择对应工作空间后单击进入管理中心。
-
进入工作空间管理中心页面后,单击左侧导航栏的数据源,进入数据源页面。
-
-
单击数据源页面的新增数据源。
-
在新增数据源对话框,单击MySQL。
-
在新增MySQL数据源对话框中,配置各项参数,详情请参见配置MySQL数据源。
本文以连接串模式为例,在JDBC URL处输入您刚刚记录的ECS私有地址和MySQL的默认端口号3306。
说明
当前VPC环境下的自建MySQL数据源暂不支持测试连通性,因此连通性测试失败是正常现象。
-
单击相应资源组后的测试连通性。
数据同步时,一个任务只能使用一种资源组。您需要在每种资源组上单独测试连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。详情请参见配置资源组与网络连通。
-
测试连通性通过后,单击完成。
-
-
创建MaxCompute表。
您需要通过DataWorks创建一个表,用于接收来自MySQL的测试数据。
-
单击左上角的
图标,选择全部产品 > 数据开发与运维 > DataStudio(数据开发)。
-
新建一个业务流程,详情请参见创建周期业务流程。
-
右键单击新建的业务流程,选择新建表 > MaxCompute > 表。
-
输入您的MaxCompute表名称,本例中使用和MySQL数据库表一样的名称good_sale。单击DDL后,输入您的建表语句并生成表结构。
本例中使用的建表语句如下,请注意数据类型的转换。
CREATE TABLE IF NOT EXISTS good_sale( create_time string, category STRING, brand STRING, buyer_id STRING, trans_num BIGINT, trans_amount DOUBLE, click_cnt BIGINT );
-
输入表的中文名后,单击提交到生产环境,完成MaxCompute表good_sale的创建。
-
配置数据集成任务。
-
右键单击业务流程,选择新建节点 > 数据集成 > 离线同步,创建一个数据集成任务。
-
选择您的数据来源为您刚添加的MySQl数据源,数据去向为默认MaxCompute数据源odps_first,单击转换脚本切换数据集成任务为脚本模式。
此时,如果产生报错或您无法选择数据来源的表,都属于正常现象,直接转换为脚本模式即可。
-
单击页面右侧的数据集成资源组配置,选中已购买的独享资源组。
如果未切换任务资源组为数据集成独享资源,后续您的任务将无法成功运行。
-
填写数据集成任务脚本内容如下。
{ "type": "job", "steps": [ { "stepType": "mysql", "parameter": { "column": [//源列名 "create_time", "category", "brand", "buyer_id", "trans_num", "trans_amount", "click_cnt" ], "connection": [ { "datasource": "shuai",//源数据源 "table": [ "good_sale"//源数据库表名,此处必须为方括号数组格式。 ] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "", "truncate": true, "datasource": "odps_first",//目标数据源 "column": [//目标列名 "create_time", "category", "brand", "buyer_id", "trans_num", "trans_amount", "click_cnt" ], "emptyAsNull": false, "table": "good_sale"//目标表名 }, "name": "Writer", "category": "writer" } ], "version": "2.0", "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] }, "setting": { "errorLimit": { "record": "0" }, "speed": { "throttle": false, "concurrent": 2 } } }
-
单击运行,您可以在下方的运行日志查看数据是否已传输到MaxCompute。
-
执行结果
您可以新建一个ODPS SQL类型的节点,用于查询当前MaxCompute表中的数据。
输入您的查询语句select * from good_sale ;
,单击运行,即可看到当前已传入MaxCompute表中的数据。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/171983.html