本文为您介绍如何通过DataWorks采集日志数据至MaxCompute。

背景信息

根据本次实验模拟的场景,您需要分别创建OSS数据源和RDS数据源,并准备好相应的数据表。
说明
  • 您可以直接使用本实验提供的数据源,也可以使用自己的数据源。
  • 因本实验提供的数据资源在华东2(上海),建议您使用华东2(上海)的工作空间。以避免工作空间创建在其它区域,添加数据源时出现网络不可达的情况。

新建OSS数据源

  1. 进入数据源管理页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 单击相应工作空间后的进入数据集成
      如果您已在DataWorks的某个功能模块,请单击左上方的图标图标,选择全部产品 > 数据汇聚 > 数据集成,进入数据集成页面。
    4. 在左侧导航栏,单击数据源,进入工作空间管理 > 数据源管理页面。
  2. 数据源管理页面,单击右上方的新增数据源
  3. 新增数据源对话框中,选择数据源类型为OSS
  4. 新增OSS数据源对话框,配置各项参数。
    OSS数据源
    参数 描述
    数据源名称 输入oss_workshop_log
    数据源描述 对数据源进行简单描述。
    适用环境 勾选开发
    说明 开发环境的数据源创建完成后,需要勾选生产,以同样方式创建生产环境的数据源,否则任务生产执行会报错。
    Endpoint 输入http://oss-cn-shanghai-internal.aliyuncs.com
    Bucket 输入new-dataworks-workshop
    AccessKey ID 输入LTAI4FvGT3iU4xjKotpUMAjS
    AccessKey Secret 输入9RSUoRmNxpRC9EhC4m9PjuG7Jzy7px
  5. 数据集成页签下,单击相应资源组后的测试连通性
    数据同步时,一个任务只能使用一种资源组。您需要测试每种资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。如果您需要同时测试多种资源组,请选中相应资源组后,单击批量测试连通性。详情请参见数据源测试连通性
  6. 连通性测试通过后,单击完成
    说明
    • 如果测试连通性失败,请检查您的AccessKey ID、AccessKey Secret和工作空间所在区域。
    • 如果您无法使用内网Endpoint连接数据源,请改用公网Endpoint。

新建RDS数据源

  1. 单击当前页面左上角的图标图标,选择全部产品 > 数据汇聚 > 数据集成
  2. 在左侧导航栏,单击数据源,进入工作空间管理 > 数据源管理页面。
  3. 数据源管理页面,单击右上方的新增数据源
  4. 新增数据源对话框中,选择数据源类型为MySQL
  5. 新增MySQL数据源对话框中,配置各项参数。
    新增MySQL
    参数 描述
    数据源类型 选择阿里云实例模式
    数据源名称 输入rds_workshop_log
    数据源描述 输入rds日志数据同步。
    适用环境 勾选开发
    说明 开发环境的数据源创建完成后,需要勾选生产,以同样方式创建生产环境的数据源,否则任务生产执行会报错。
    地区 选择RDS实例所在的区域。
    RDS实例ID

    输入rm-bp1z69dodhh85z9qa

    RDS实例主账号ID

    输入1156529087455811

    数据库名 输入workshop
    用户名 输入workshop
    密码 输入workshop#2017
  6. 数据集成页签下,单击相应资源组后的测试连通性
    数据同步时,一个任务只能使用一种资源组。您需要测试每种资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。如果您需要同时测试多种资源组,请选中相应资源组后,单击批量测试连通性。详情请参见数据源测试连通性
  7. 测试连通性通过后,单击完成

创建业务流程

  1. 单击当前页面左上方的图标图标,选择全部产品 > 数据开发 > DataStudio(数据开发)
  2. 数据开发面板,右键单击业务流程,选择新建业务流程
  3. 新建业务流程对话框中,输入业务名称描述
    注意 业务名称不能超过128个字符,且必须是大小写字母、中文、数字、下划线(_)以及小数点(.)。
  4. 单击新建
  5. 进入业务流程开发面板,鼠标单击虚拟节点并拖拽至右侧的编辑页面。
  6. 新建节点对话框中,输入节点名称workshop_start,单击提交
    虚拟节点

    以同样的方式新建两个离线同步节点,节点名称分别为oss_数据同步rds_数据同步

  7. 通过拖拽连线,将workshop_start节点设置为两个离线同步节点的上游节点。
    依赖关系

配置workshop_start节点

  1. 数据开发页面,双击相应业务流程下的虚拟节点。打开该节点的编辑页面,单击右侧的调度配置
  2. 调度依赖区域,单击使用工作空间根节点,设置workshop_start节点的上游节点为工作空间根节点。
    由于新版本给每个节点都设置了输入输出节点,所以需要给workshop_start节点设置一个输入。此处设置其上游节点为工作空间根节点,通常命名为工作空间名称_root工作空间根节点
  3. 配置完成后,单击工具栏中的保存图标。

新建表

  1. 数据开发页面打开新建的业务流程,右键单击MaxCompute,选择新建 >
    新建表
  2. 新建表对话框中,输入表名,单击提交
    此处需要创建两张表(ods_raw_log_dods_user_info_d),分别存储同步过来的OSS日志数据和RDS日志数据。
    注意 表名必须以字母开头,不能包含中文或特殊字符,且不能超过64个字符。
  3. 通过DDL模式新建表。
    • 新建ods_raw_log_d表。
      在表的编辑页面单击DDL模式,输入下述建表语句。创建表
      --创建OSS日志对应目标表
      CREATE TABLE IF NOT EXISTS  ods_raw_log_d (
          col STRING
      )
      PARTITIONED BY (
          dt STRING
      );
    • 新建ods_user_info_d表。
      在表的编辑页面单击DDL模式,输入下述建表语句。
      --创建RDS对应目标表
      CREATE TABLE IF NOT  EXISTS ods_user_info_d (
          uid STRING COMMENT '用户ID',
          gender STRING COMMENT '性别',
          age_range STRING COMMENT '年龄段',
          zodiac STRING COMMENT '星座'
      )
      PARTITIONED BY (
          dt STRING
      );
  4. 单击生成表结构,并确认覆盖当前操作。
  5. 返回建表页面,在基本属性中输入表的中文名。
  6. 完成设置后,分别单击提交到开发环境提交到生产环境

配置离线同步节点

说明 标准模式的工作空间下,不建议离线同步任务在开发环境下运行(开发面板直接运行),建议将其发布至生产环境后再测试运行,以获取完整的运行日志。

同时,数据产出至生产环境后,您可以申请数据权限,以读取写入开发环境中的表数据。

  1. 配置oss_数据同步节点。
    1. 数据开发页面,双击oss_数据同步节点,进入节点配置页面。
    2. 选择数据来源。
      数据来源
      参数 描述
      数据源 选择OSS > oss_workshop_log数据源。
      Object前缀 输入user_log.txt
      文本类型 选择text类型。
      列分隔符 输入列分隔符为|
      编码格式 默认为UTF-8格式。
      null值 表示null值的字符串。
      压缩格式 包括None、Gzip、Bzip2和Zip四种类型,此处选择None
      是否包含表头 默认为No
    3. 选择数据去向。
      数据去向
      参数 描述
      数据源 选择ODPS > odps_first数据源。
      选择数据源中的ods_raw_log_d表。
      分区信息 默认配置为${bizdate}
      清理规则 默认为写入前清理已有数据
      空字符串作为null 此处勾选
      说明 odps_first数据源写入至当前工作空间下的MaxCompute项目中。
    4. 配置字段映射。
      字段映射
    5. 配置通道控制
      通道控制
      参数 描述
      任务期望最大并发数 数据同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。向导模式通过界面化配置并发数,指定任务所使用的并行度。
      同步速率 设置同步速率可以保护读取端数据库,以避免抽取速度过大,给源库造成太大的压力。同步速率建议限流,结合源库的配置,请合理配置抽取速率。
      错误记录数 错误记录数,表示脏数据的最大容忍条数。
    6. 单击页面右侧的调度配置,在调度依赖 > 本节点的输出区域,输入本节点的输出名称为工作空间名称.ods_raw_log_d,单击添加图标。
      注意 不建议您使用中文作为本节点输出名称,会减少自动推荐功能的准确性。
      添加
    7. 确认当前节点的配置无误后,单击工具栏中的保存图标。
    8. 关闭当前任务,返回业务流程配置面板。
  2. 配置rds_数据同步节点。
    1. 数据开发页面,双击rds_数据同步节点,进入节点配置页面。
    2. 选择数据来源。
      rds数据来源
      参数 描述
      数据源 选择MySQL > rds_workshop_log数据源。
      选择数据源中的ods_user_info_d表。
      数据过滤 该数据过滤语句通常用作增量同步,此处可以不填。
      切分键 默认为uid
    3. 选择数据去向。
      数据去向
      参数 描述
      数据源 选择ODPS > odps_first数据源。
      选择数据源中的ods_user_info_d表。
      分区信息 默认配置为${bizdate}
      清理规则 默认为写入前清理已有数据
      空字符串作为null 此处勾选
    4. 配置字段映射。
    5. 配置通道控制
    6. 单击页面右侧的调度配置,在调度依赖 > 本节点的输出区域,输入本节点的输出名称为工作空间名称.ods_user_info_d,单击添加图标。
      添加成功后,您可以删除不规范的输出名称。
      注意 不建议您使用中文作为本节点输出名称,会减少自动推荐功能的准确性。
      添加
    7. 确认当前节点的配置无误后,单击工具栏中的保存图标。
    8. 关闭当前任务,返回业务流程配置面板。

提交业务流程

  1. 数据开发页面,双击相应的业务流程打开编辑页面,单击工具栏中的提交图标。
    提交业务流程
  2. 选择提交对话框中需要提交的节点,输入备注,勾选忽略输入输出不一致的告警
  3. 单击提交,待显示提交成功即可。

运行业务流程

  1. 数据开发页面,双击相应的业务流程打开编辑页面,单击工具栏中的运行图标。
    运行
  2. 右键单击rds_数据同步节点,选择查看日志
    当日志中出现如下字样,表示同步节点运行成功,并成功同步数据。运行日志
  3. 右键单击oss_数据同步节点,选择查看日志,确认方法与rds_数据同步节点一致。

确认数据是否成功导入MaxCompute

  1. 数据开发页面的左侧导航栏,单击临时查询,进入临时查询面板。
  2. 右键单击临时查询,选择新建节点 > ODPS SQL
  3. 编写并执行SQL语句,查看导入ods_raw_log_dods_user_info_d的记录数。
    说明 SQL语句如下所示,其中分区列需要更新为业务日期。例如,任务运行的日期为20180717,则业务日期为20180716,即任务运行日期的前一天。
    --查看是否成功写入MaxCompute
    select count(*) from ods_raw_log_d where dt=业务日期;
    select count(*) from ods_user_info_d where dt=业务日期;
    查看数据

后续步骤

现在,您已经学习了如何进行日志数据同步,完成数据的采集,您可以继续下一个教程。在该教程中,您将学习如何对采集的数据进行计算与分析。详情请参见数据加工