背景
本文将为您介绍如何通过数据集成(DataWorks)功能投递LogHub(SLS)数据至MaxCompute。
前提条件
- 已在SLS创建Project和Logstore。具体操作,请参见创建Project和Logstore。
- 已在SLS采集日志。具体操作,请参见数据采集。
总览
- 首先,需要确定日志服务中存在可供投递的数据;
- 然后,在DataWorks控制台中创建工作空间,以及日志服务的数据源、MaxComputer的数据源、MaxCompute的目标表;
- 最后,创建投递任务。
投递流程
一、通过Dataworks控制台创建MaxCompute表
温馨提示:如果已有MaxCompute表,可以跳过这一步。
1.进入DataWorks控制台的工作空间列表页面,鼠标悬停至目标工作空间对应操作列的快速进入,单击数据开发。
2.单击左侧数据开发 > 鼠标悬停至+新建图标,单击新建业务流程,弹窗内输入业务名称,然后单击新建即可完成业务流程的创建。
3.鼠标悬停至+新建图标,单击新建节点 > MaxCompute > ODPS SQL,弹窗内输入对应的节点类型、路径、名称,然后单击提交完成新建节点。
4.新建节点完成后,即会跳出sql页面,输入sql语句单击运行即可进行表的创建。
CREATE TABLE IF NOT EXISTS tableName ( c1 STRING, c2 STRING ) PARTITIONED BY ( p1 STRING ) LIFECYCLE 3;
二、创建数据源
1. 登录DataWorks控制台。
2. 单击左侧导航栏的工作空间列表,单击目标工作空间操作列对应的管理,进入工作空间管理中心。
3. 在管理中心页面单击左侧数据源,待数据源页面加载完毕后,单击新增数据源。
3.1.创建LogHub数据源。
a.在新增数据源弹框中选择LogHub。
b.填写新增LogHub数据源对话框中的配置。
参数 |
描述 |
数据源名称 |
数据源名称必须以字母、数字、下划线组合,且不能以数字和下划线开头。 |
数据源描述 |
对数据源进行简单描述,不得超过80个字符。 |
LogHub Endpoint |
LogHub的Endpoint,格式为http://example.com。详情请参见服务入口。 |
Project |
目标日志服务的项目名称。 |
AccessKey ID |
访问密钥中的AccessKey ID,您可以进入控制台的用户信息管理页面进行复制。 |
AccessKey Secret |
访问密钥中的AccessKey Secret,相当于登录密码。 |
c.单击测试连通性。
d.连通性测试通过后,单击完成。
3.2.创建MaxCompute数据源。⚠️注意:如果已绑定MaxCompute引擎,默认会已创建好一个名为odps_first的数据源,可以跳过此步骤。
a.在新增数据源弹框中选择MaxCompute。
b.填写新增MaxCompute数据源对话框中的配置。
参数 |
描述 |
数据源名称 |
数据源名称必须以字母、数字、下划线组合,且不能以数字和下划线开头。 |
数据源描述 |
对数据源进行简单描述,不得超过80个字符。 |
ODPS Endpoint |
MaxCompute的Endpoint,格式为http://example.com。详情请参见服务入口。 |
ODPS项目名称 |
MaxCompute项目名称。 |
AccessKey ID |
访问密钥中的AccessKey ID,您可以进入控制台的用户信息管理页面进行复制。 |
AccessKey Secret |
访问密钥中的AccessKey Secret,相当于登录密码。 |
三、离线同步方式(如需实时同步,请参考第四步骤)
- 在数据源页面,单击左上角的图标,选择全部产品 > DataStudio(数据开发)进入数据开发页面。
- 在数据开发页面,鼠标悬停至新建图标,单击业务流程。
- 在新建业务流程对话框中,输入业务流程名称和描述,单击新建。
- 展开已创建的目标业务流程,右键单击数据集成,选择新建 > 离线同步。
- 在新建节点对话框中,选择业务流程路径,并输入节点名称。
- 单击确认,进入离线节点编辑页面,如下图:
- 参考下图进行配置并测试连通性。
- 测试连通性为可连通后单击下一步。
- 任务配置及字段映射参考下图示例。
10.单击保存 > 运行 > 运行,即可开启任务投递。
11.可以在控制台下方区域查看运行的日志。
四、实时同步方式(如需离线同步,请参考第三步骤)
- 在数据源页面,单击左上角的图标,选择全部产品 > DataStudio(数据开发)进入数据开发页面。
- 在数据开发页面,鼠标悬停至新建图标,单击业务流程。
- 在新建业务流程对话框中,输入业务流程名称和描述,单击新建。
- 展开已创建的目标业务流程,右键单击数据集成,选择新建 > 实时同步。
- 在新建节点对话框中,选择业务流程路径,并输入节点名称,然后单击确定完成业务流程的创建。
- 单击确认后,则会进入实时节点编辑页面,如下图:
- 将输入选项中LogHub和输出选项中MaxCompute分别拖拽至实时节点编辑页面。
- 单击Loghub后会弹出Loghub节点配置弹窗请参考下图进行配置。
- 单击MaxCompute后会弹出MaxCompute节点配置弹窗请参考下图进行配置。
10. 单击右侧边栏基本配置会弹出基本配置弹窗请参考下图进行配置。
11. 进行字段映射配置,先通过鼠标对Loghub和MaxCompute进行连接,然后单击MaxCompute进行字段映射配置,请参考下图。
12.点击保存 > 提交。
13.点击提交后会弹出提示框,单击确定即可完成任务提交,此时已完成实时同步任务的基本配置。。
14.单击右侧边栏运维进入运维中心页面。
15.单击左侧实时同步任务,即可加载出已提交的实时同步任务信息,随后请在操作列单击启动按钮则会弹出启动弹窗提示如下。
16.在启动弹窗中根据自己需求点选相关配置后单击确定即可启动任务,并在当前页面观察任务运行状态等信息。
五、查看MaxCompute表中数据
参考第三步骤《通过Dataworks控制台创建MaxCompute表》进入sql页面编写sql查询语句如下:
语句1查询分区:SHOW PARTITIONS tablename;
语句2以指定分区为条件查询数据:SELECT * FROM tablename WHERE p1 = '1111111';
六、常见问题
1.投递后数据为空常见原因
- 检查原始数据中是否存在该字段(只能投递日志服务中的字段,不支持json嵌套字段投递)
- 日志服务的字段名称填写是否正确
- MaxComputer侧的字段类型是否正确,日志服务中类型与MaxComputer不一样,所以建议在MaxComputer中创建String类型字段重新投递