本文为您介绍如何通过DataHub迁移日志数据至MaxCompute。
前提条件
授权访问MaxCompute的账号已开通以下权限:
-
MaxCompute中项目的CreateInstance权限。
-
MaxCompute中表的查看、修改和更新权限。
授权操作详情请参见MaxCompute权限。
背景信息
DataHub是阿里云流式数据(Streaming Data)的处理平台。数据上传至DataHub后保存在实时表里,后续会在5分钟内通过定时任务的形式同步到MaxCompute离线表里,供离线计算使用。
您只需要创建DataHub Connector,指定相关配置,即可创建将DataHub中流式数据定期归档到MaxCompute的同步任务。
数据类型映射关系
|
MaxCompute |
DataHub |
|
BIGINT |
BIGINT |
|
STRING |
STRING |
|
BOOLEAN |
BOOLEAN |
|
DOUBLE |
DOUBLE |
|
DATETIME |
TIMESTAMP |
|
DECIMAL |
DECIMAL |
|
TINYINT |
TINIINT |
|
SMALLINT |
SMALLINT |
|
INT |
INTEGER |
|
FLOAT |
FLOAT |
|
BLOB |
STRING |
|
MAP |
不支持 |
|
ARRAY |
不支持 |
操作步骤
-
在MaxCompute客户端(odpscmd)执行如下语句创建表,用于存储DataHub同步的日志数据。示例语句如下。
CREATE TABLE test(f1 string, f2 string, f3 double) partitioned by (ds string); -
在DataHub上创建项目。
-
登录DataHub控制台,在左上角选择地域。
-
在左侧导航栏,单击项目管理。
-
在项目列表区域,单击右上角新建项目。
-
在新建项目页面,填写名称及描述,单击创建。
-
-
创建Topic。
-
在项目列表区域,单击项目右侧的查看。
-
在项目详情页面,单击右上角新建Topic。
-
进入新建Topic页面,选择导入MaxCompute表结构并填写配置参数。
配置参数包括 Project名称、Table名称、AccessKey ID 和 AccessKey Secret。填写完成后,单击下一步。
-
单击下一步,进一步完善Topic信息。
说明-
Schema与MaxCompute表为对应关系,DataHub Topic Schema的字段名称、类型和顺序必须与MaxCompute表字段完全一致,如果三个条件中的任意一个不满足,则Connector创建失败。
-
支持将TUPLE和BLOB类型的DataHub Topic同步到MaxCompute表中。
-
系统默认最多可以创建20个Topic。如果需要创建更多,请提交工单申请。
-
DataHub Topic的Owner或Creator账号有操作Connector的权限,包括创建和删除等。
-
-
-
向新建的Topic中写入数据。
-
在目标项目的Topic列表页签,单击新建Topic右侧的查看。
-
在Topic详情页面,单击右上角同步。
-
在新建Connector页面,单击MaxCompute,配置相关参数后,单击创建。
-
-
查看Connector详细信息。
-
在左侧导航栏,单击项目管理。
-
在项目列表区域,单击项目右侧的查看。
-
在Topic列表区域,单击Topic右侧的查看。
-
在Topic详情页面,单击Connector页签,查看创建好的Connector。
-
单击Connector右侧的查看,即可查看Connector详细信息。
DataHub默认每五分钟或当数据达到60 MB时强行向MaxCompute离线表中投递一次数据。同步点位代表已经同步数据的条数。Connector 详情页面展示 Status(如 EXECUTING)、Sync Latency(同步延迟,单位为秒)、Endpoint、Project、Table、分区模式 等字段信息。
-
-
执行如下语句测试日志数据是否投递成功。
SELECT * FROM test;返回结果如下,表示投递成功。执行查询后,结果表包含 id、name、salenum 三列。其中新插入的三条记录为:
id=60, name=三星11, salenum=909;id=61, name=三星12, salenum=606;id=62, name=三星13, salenum=2000。