步骤一:开通DataHub服务
-
登录DataHub服务控制台。
-
根据页面提示开通服务。
步骤二:创建Project和Topic
-
登录DataHub服务控制台。
-
单击新建项目按钮 后填写相关信息进行创建。弹出的对话框中,名称需以英文字母开头,长度为3~32个字符,仅允许英文字母、数字及下划线;描述最多1024个字符。填写完成后单击创建。
|
参数 |
描述 |
|
Project |
项目(Project)是DataHub数据的基本组织单元,下面包含多个Topic。值得注意的是,DataHub的项目空间与MaxCompute的项目空间是相互独立的。用户在MaxCompute中创建的项目不能复用于DataHub,需要独立创建。 |
|
描述 |
Project的描述信息 |
3 . 点击Project详情页面中的创建Topic按钮,进行Topic的创建。弹出新建Topic对话框,创建方式可选择直接创建或导入MaxCompute表结构。
|
参数 |
描述 |
|
创建方式 |
项目(Project)是DataHub数据的基本组织单元,下面包含多个Topic。值得注意的是,DataHub的项目空间与MaxCompute的项目空间是相互独立的。用户在MaxCompute中创建的项目不能复用于DataHub,需要独立创建。 |
|
名称 |
Topic的描述信息 |
|
类型 |
Topic类型,TUPLE代表结构化数据,BLOB代表非结构化数据。 |
|
Schema详情 |
选择TUPLE类型会出现Schema详情,根据自己需求创建字段,允许为NULL代表如果上游没有该字段值自动置为NULL,不允许为NULL则会严格检验,字段类型不匹配写入报错。 |
|
Shard数量 |
Shard表示对一个Topic进行数据传输的并发通道,每个Shard会有对应的ID。每个Shard会有多种状态 : Opening - 启动中,Active - 启动完成可服务。每个Shard启用以后会占用一定的服务端资源,建议按需申请Shard数量。 |
|
生命周期 |
Topic中写入数据在系统中可以保存的最长时间,以天为单位,最小值为1,最大值为7,修改生命周期需要使用 Java SDK。 |
|
描述 |
Topic的描述信息 |
步骤三:写入数据
DataHub支持多种写入方式,针对日志可以选择Flume等多种插件,针对数据库可以选择DTS、canal,也可以通过SDK写入,在这里使用console工具上传文件的方式写入数据。
-
下载并解压console工具包,配置ak和endpoint 信息console命令工具。
-
使用uf命令上传文件。
uf -f /temp/test.csv -p test_topic -t test_topic -m "," -n 1000 -
Web页面查看数据是否写入成功,根据最新数据写入时间和数据总量查看数据写入情况。相关数据位于Topic详情页面的Shard列表页签中。
-
数据抽样,检查数据质量。
-
选择抽样shard以及抽样起始时间。
-
点击抽样,即可查看数据。
-
在抽样对话框中,还可设置采样条数(默认20条),并通过选择过滤字段下拉框筛选查看特定字段的数据。
步骤四:同步数据
以同步MaxCompute为例。
-
依次进入
项目列表/Project详情/Topic详情页面。 -
点击右上角的
+ 同步按钮进行同步任务创建。 -
选择MaxCompute类型作业:
1)TUPLE类型同步时,需在新建Connector对话框中配置以下参数:Project名称、Table名称、AccessID、AccessKey、导入字段、分区模式、分区配置、分区间隔、时区、起始时间和TimestampUnit,完成后单击创建。
部分配置说明:
下面罗列了部分管控台创建同步任务的配置说明,更多更灵活的操作请参考SDK使用。
-
导入字段
DataHub可以根据用户设置将部分column内容同步到MaxCompute表中。
-
分区模式
分区模式决定了将数据写入到MaxCompute哪个分区中,目前DataHub支持以下分区方式:
|
分区模式 |
分区依据 |
支持Topic类型 |
说明 |
|
USER_DEFINE |
Record中的分区列(和MaxCompute的分区字段同名)的value值 |
TUPLE |
(1). DataHub schema中必须包含MaxCompute分区字段 (2). 该列值必须为 |
|
SYSTEM_TIME |
Record写入DataHub的时间 |
TUPLE / BLOB |
(1). 分区配置中设置MaxCompute分区的时间转换Format格式 (2). 设置时区信息 |
|
EVENT_TIME |
Record中的 |
TUPLE |
(1). 分区配置中设置MaxCompute分区的时间转换Format格式 (2). 设置时区信息 |
|
META_TIME |
Record的属性字段 |
TUPLE / BLOB |
(1). 分区配置中设置MaxCompute分区的时间转换Format格式 (2). 设置时区信息 |
其中SYSTEM_TIME、EVENT_TIME和META_TIME均是根据时间Timestamp和时区配置来进行MaxCompute分区的转换过程,单位默认为微秒。
-
分区配置决定了根据时间戳转换MaxCompute分区时的相关配置。目前管控台默认固定的MaxCompute分区格式,分区配置对应为:
|
分区 |
时间Format |
说明 |
|
ds |
%Y%m%d |
day |
|
hh |
%H |
hour |
|
mm |
%M |
minute |
-
分区间隔决定了根据时间戳转换MaxCompute分区时所采用的时间间隔。时间范围是
15分钟 ~ 1440分钟(1天),跳变间隔15分钟。 -
时区信息(TimeZone)时区信息决定了根据时间戳转换MaxCompute分区时所采用的转换时区。
-
分隔符BLOB数据同步时,可以指定16进制分隔符来决定是否对BLOB数据分割后再同步MaxCompute,比如
0A表示\n(换行符) -
Base64编码DataHub BLOB默认存储二进制数据,而MaxCompute对应的同步列为STRING类型,因此管控台创建同步任务时,默认采用base64编码后进行同步,更多定制化需求请参考SDK实现。
步骤六:查看同步任务
可以点击对应connector的详情页面查看同步任务的运行状态和点位等信息,包含同步点位、同步状态以及重启和停止等操作。详情中还包含同步延迟、DoneTime、脏数据量等监控指标,以及同步任务字段的更新管理功能(更新后立即生效,无需重启)。
详情请参看创建同步MaxCompute。