通过DataHub迁移日志数据至MaxCompute

本文为您介绍如何通过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

不支持

操作步骤

  1. 在MaxCompute客户端(odpscmd)执行如下语句创建表,用于存储DataHub同步的日志数据。示例语句如下。

     CREATE TABLE test(f1 string, f2 string, f3 double) partitioned by (ds string);
  2. 在DataHub上创建项目。

    1. 登录DataHub控制台,在左上角选择地域。

    2. 在左侧导航栏,单击项目管理

    3. 项目列表区域,单击右上角新建项目

    4. 新建项目页面,填写名称描述,单击创建

  3. 创建Topic。

    1. 项目列表区域,单击项目右侧的查看

    2. 在项目详情页面,单击右上角新建Topic

    3. 进入新建Topic页面,选择导入MaxCompute表结构并填写配置参数。

      新建Topic

    4. 单击下一步,进一步完善Topic信息。

      说明
      • Schema与MaxCompute表为对应关系,DataHub Topic Schema的字段名称、类型和顺序必须与MaxCompute表字段完全一致,如果三个条件中的任意一个不满足,则Connector创建失败。

      • 支持将TUPLEBLOB类型的DataHub Topic同步到MaxCompute表中。

      • 系统默认最多可以创建20个Topic。如果需要创建更多,请提交工单申请。

      • DataHub Topic的Owner或Creator账号有操作Connector的权限,包括创建和删除等。

  4. 向新建的Topic中写入数据。

    1. 在目标项目的Topic列表页签,单击新建Topic右侧的查看

    2. 在Topic详情页面,单击右上角同步

    3. 新建Connector页面,单击MaxCompute,配置相关参数后,单击创建

  5. 查看Connector详细信息。

    1. 在左侧导航栏,单击项目管理

    2. 项目列表区域,单击项目右侧的查看

    3. Topic列表区域,单击Topic右侧的查看

    4. 在Topic详情页面,单击Connector页签,查看创建好的Connector。

    5. 单击Connector右侧的查看,即可查看Connector详细信息。

      DataHub默认每五分钟或当数据达到60 MB时强行向MaxCompute离线表中投递一次数据。同步点位代表已经同步数据的条数。DataConnector详情

  6. 执行如下语句测试日志数据是否投递成功。

    SELECT * FROM test;

    返回结果如下,表示投递成功。测试结果