本文为您介绍如何通过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表结构并填写配置参数。
单击下一步,进一步完善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离线表中投递一次数据。同步点位代表已经同步数据的条数。
执行如下语句测试日志数据是否投递成功。
SELECT * FROM test;
返回结果如下,表示投递成功。