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

涉及产品

本次实验涉及的大数据产品有MaxCompute(大数据计算服务)DataWorks(数据工场,原大数据开发套件)

前提条件

您在开始本次实验前,需要确保已有阿里云云账号,并进行实名认证。

详情请参见注册阿里云账号企业实名认证个人实名认证

开通大数据计算服务MaxCompute

说明 如果您已经开通MaxCompute,请跳过此步骤,直接创建DataWorks工作空间。
  1. 登录阿里云官网,单击右上角的登录,填写您的阿里云账号和密码。
  2. 选择产品 > 大数据 > 大数据计算 > MaxCompute,进入MaxCompute产品详情页。
  3. 单击立即购买
  4. 进入按量付费页面,选择区域规格类型,单击立即购买

创建工作空间

说明 因本实验提供的数据资源都在华东2,建议您将工作空间创建在华东2,以避免工作空间创建在其他Region,添加数据源时出现网络不可达的情况。
  1. 使用主账号登录DataWorks控制台
  2. 单击控制台概览 > 常用功能下的创建工作空间

    您也可以进入工作空间列表页面,选择Region,单击创建工作空间

  3. 填写创建工作空间对话框中的配置项,选择Region及服务。
    如果Region没有购买相关的服务,会直接显示该Region下暂无可用服务。默认选中数据集成数据开发运维中心数据质量

    选项 配置 说明
    选择计算引擎服务 MaxCompute MaxCompute是一种快速、完全托管的TB/PB级数据仓库解决方案,能够更快速为您解决海量数据计算问题,有效降低企业成本,并保障数据安全。
    说明 完成创建Dataworks工作空间后,需要关联MaxCompute项目,否则执行命令会报project not found的错误。
    机器学习PAI 机器学习是指机器通过统计学算法,对大量的历史数据进行学习从而生成经验模型,利用经验模型指导业务。
    实时计算 开通后,您可以在DataWorks使用Stream Studio,进行流式计算任务开发。
    选择DataWorks服务 数据集成 数据集成是稳定高效、弹性伸缩的数据同步平台。致力于提供复杂网络环境下、丰富的异构数据源之间数据高速稳定的数据移动及同步能力。详情请参见数据集成概述
    数据开发 该页面是您根据业务需求,设计数据计算流程,并实现为多个相互依赖的任务,供调度系统自动执行的主要操作页面。详情请参见数据开发概述
    运维中心 该页面可对任务和实例进行展示和操作,您可以在此查看所有任务的实例。详情请参见运维中心概述
    数据质量 DataWorks数据质量依托DataWorks平台,为您提供全链路的数据质量方案,包括数据探查、数据对比、数据质量监控、SQLScan和智能报警等功能。详情请参见数据质量概述
  4. 单击下一步,配置新建工作空间的基本信息和高级设置。

    分类 配置 说明
    基本信息 工作空间名称 工作空间名称的长度需要在3到27个字符,以字母开头,且只能包含字母下划线和数字。工作空间名称全局唯一,建议您采用自己容易区分的名称作为本次实验的工作空间名称。
    显示名 显示名不能超过27个字符,只能字母、中文开头,仅包含中文、字母、下划线和数字。
    模式 工作空间模式是DataWorks新版推出的新功能,分为简单模式和标准模式,双项目开发模式的区别请参见简单模式和标准模式的区别
    • 简单模式:指一个Dataworks工作空间对应一个MaxCompute项目,无法设置开发和生产环境,只能进行简单的数据开发,无法对数据开发流程以及表权限进行强控制。
    • 标准模式:指一个Dataworks工作空间对应两个MaxCompute项目,您可以设置开发和生产双环境,提升代码开发规范。

      标准模式的工作空间可以严格控制表权限,禁止随意操作生产环境的表,保证生产表的数据安全。

    描述 对创建的工作空间进行简单描述。
    高级设置 启用调度周期 控制当前工作空间是否启用调度系统,如果关闭则无法周期性调度任务。
    能下载select结果 控制数据开发中查询的数据结果是否能够下载,如果关闭无法下载select的数据查询结果。
    MaxCompute项目名称 默认与DataWorks工作空间名称一致。
    MaxCompute访问身份 推荐使用工作空间所有者。
    Quota组切换 Quota用来实现计算资源和磁盘配额。
  5. 配置完成后,单击创建工作空间
    工作空间创建成功后,即可在工作空间列表页面查看相应内容。

新建数据源

说明 根据本次实验模拟的场景,您需要分别创建OSS数据源和RDS数据源。
  • 新建OSS数据源。
    1. 单击相应工作空间后的进入数据集成
    2. 进入同步资源管理 > 数据源页面,单击新增数据源

    3. 选择数据源类型为OSS,填写新增OSS数据源对话框中的配置。

      配置 说明
      数据源名称 填写oss_workshop_log。
      数据源描述 对数据源进行简单描述。
      适用环境 勾选开发
      说明 开发环境的数据源创建完成后,需要勾选生产,以同样方式创建生产环境的数据源,否则任务生产执行会报错。
      Endpoint 填写http://oss-cn-shanghai-internal.aliyuncs.com
      Bucket 填写dataworks-workshop。
      AccessKey ID 填写LTAINEhd4MZ8pX64。
      AccessKey Secret 填写lXnzUngTSebt3SfLYxZxoSjGAK6IaF。
    4. 单击测试连通性,连通性测试通过后,单击完成保存配置。
      说明
      • 如果测试连通性失败,请检查您的用户名/密码和工作空间所在Region。
      • 建议将工作空间创建在华东2,其他Region不保证网络可达。
      • 如果您无法使用内网Endpoint连接数据源,可以改用公网Endpoint。
  • 新建RDS数据源。
    1. 单击相应工作空间后的进入数据集成
    2. 进入同步资源管理 > 数据源页面,单击新增数据源
    3. 选择数据源类型MySQL,填写新增MySQL数据源对话框中的配置。

      配置 说明
      数据源类型 选择阿里云数据库(RDS)。
      数据源名称 填写rds_workshop_log。
      数据源描述 填写rds日志数据同步。
      适用环境 勾选开发
      说明 开发环境的数据源创建完成后,需要勾选生产,以同样方式创建生产环境的数据源,否则任务生产执行会报错。
      RDS实例ID

      填写rm-bp1z69dodhh85z9qa。

      RDS实例主账号ID

      填写1156529087455811。

      数据库名 填写workshop。
      用户名 填写workshop。
      密码 填写workshop#2017。
    4. 单击测试连通性,连通性测试通过后,单击完成保存配置。

新建业务流程

  1. 单击左上角的图标,选择全部产品 > DataStudio(数据开发)
  2. 右键单击业务流程,选择新建业务流程

  3. 新建业务流程对话框中,填写业务流程名称描述

  4. 单击新建,即可完成业务流程的创建。

  5. 进入业务流程开发面板,并向面板中拖入一个虚拟节点(workshopstart)、和两个数据同步节点(oss_数据同步和rds_数据同步)。填写相应配置后,单击提交



  6. 拖拽连线将workshop_start节点设置为两个数据同步节点的上游节点。

配置workshop_start节点

  1. 双击虚拟节点,单击右侧的调度配置
  2. 设置workshop_start节点的上游节点为工作空间根节点。
    由于新版本给每个节点都设置了输入输出节点,所以需要给workshop_start节点设置一个输入。此处设置其上游节点为工作空间根节点,通常命名为工作空间名_root。

  3. 配置完成后,单击左上角的进行保存。

新建表

  1. 右键单击业务流程workshop下的,选择新建表

  2. 输入表名称(ods_raw_log_d和ods_user_info_d)。

  3. 单击DDL模式,输入如下建表语句。
    --创建OSS日志对应目标表。
    CREATE TABLE IF NOT EXISTS  ods_raw_log_d (
        col STRING
    )
    PARTITIONED BY (
        dt STRING
    );
    
    --创建RDS对应目标表(OSS与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. 完成设置后,分别单击提交到开发环境提交到生产环境,提交后即可在表中查看信息。

配置数据同步任务

说明 标准项目模式下,不建议数据集任务在开发环境下运行(开发面板直接运行),建议将其发布至生产环境后再操作测试运行,以获取完整的运行日志。同时,数据产出至生产环境后,您可以申请表权限,以读取写入开发环境中的表数据。
  • 配置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. 配置通道控制,作业速率上限建议配置为10MB/s。

      配置 说明
      任务期望最大并发数 数据同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。向导模式通过界面化配置并发数,指定任务所使用的并行度。
      同步速率 设置同步速率可以保护读取端数据库,以避免抽取速度过大,给源库造成太大的压力。同步速率建议限流,结合源库的配置,请合理配置抽取速率。
      错误记录数 错误记录数,表示脏数据的最大容忍条数。
      任务资源组 任务运行的机器,如果任务数比较多,使用默认资源组出现等待资源的情况,建议购买独享数据集成资源或添加自定义资源组,详情请参见DataWorks独享资源新增任务资源
    6. 确认当前任务的配置情况,可以进行修改。确认无误后,单击左上角的保存
    7. 关闭当前任务,返回业务流程配置面板。
  • 配置rds_数据同步节点。
    1. 双击rds_数据同步节点,进入节点配置页面。
    2. 选择数据来源。

      配置 说明
      数据源 选择MySQL > rds_workshop_log数据源。
      选择数据源中的ods_user_info_d表。
      数据过滤 该数据过滤语句通常用作增量同步,此处可不填。
      切分键 默认为uid。
    3. 选择数据去向。

      配置 说明
      数据源 选择ODPS > odps_first数据源。
      选择数据源中的ods_user_info_d表。
      分区信息 默认配置为${bizdate}。
      清理规则 默认为写入前清理已有数据
      空字符串作为null 此处勾选
    4. 配置字段映射,默认同名映射。

    5. 配置通道控制,作业速率上限建议配置为10MB/s。

    6. 确认当前任务的配置情况,可以进行修改。确认无误后,单击左上角的保存

    7. 关闭当前任务,返回业务流程配置面板。

提交工作流任务

  1. 单击左上角的提交按钮,提交当前业务流程。

  2. 选择提交对话框中需要提交的节点,填写备注,勾选忽略输入输出不一致的告警。单击提交,待显示提交成功即可。

运行工作流任务

  1. 单击运行

  2. 右键选中rds_数据同步任务,选择查看日志
    当日志中出现如下字样,表示同步任务运行成功,并成功同步数据。

  3. 右键选中oss_数据同步任务,选择查看日志,确认方法与rds_数据同步任务一致。

确认数据是否成功导入MaxCompute

  1. 单击左侧导航栏中的临时查询
  2. 选择新建 > ODPS SQL

  3. 编写并执行SQL语句,查看导入ods_raw_log_d和和ods_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=业务日期;

后续步骤

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