同步数据

本教程以MySQL中的用户基本信息ods_user_info_d表和OSS中的网站访问日志数据user_log.txt文件为例,通过数据集成离线同步任务分别同步至MaxComputeods_user_info_d_odpsods_raw_log_d_odps表。旨在介绍如何通过DataWorks数据集成实现异构数据源间的数据同步,完成数仓数据同步操作。

前提条件

请确保已准备好所需的工作环境。具体操作步骤请参见:准备环境

步骤一:新建数据源

为确保后续数据处理流程的顺利进行,您需要在DataWorks工作空间中创建如下数据源,用于获取平台提供的初始数据。

  • MySQL数据源:本教程将数据源命名为user_behavior_analysis_mysql,用于获取存储在MySQL的用户基本信息数据(ods_user_info_d)。

  • Httpfile数据源:本教程将数据源命名为user_behavior_analysis_httpfile,用于获取存储在OSS的用户网站访问记录(user_log.txt)。

说明

如果您已经在体验其他计算资源版本的用户画像分析案例时创建了MySQLHttpfile数据源,则可以跳过此步骤。

新建MySQL数据源(user_behavior_analysis_mysql

本教程提供的用户基本信息存储在MySQL数据库中,您需要创建MySQL数据源,以便在后续将MySQL数据库中的用户基本信息数据(ods_user_info_d)同步至MaxCompute。

  1. 进入数据源页面。

    1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心

    2. 单击左侧导航栏的数据源,进入数据源页面。

  2. 单击新增数据源,搜索选择数据源类型为MySQL

  3. 创建MySQL数据源页面,配置相关参数。在本教程中开发环境和生产环境都按如下示例值填写。

    以下为本教程所需配置的关键参数,未说明参数保持默认即可。

    参数

    描述

    数据源名称

    输入数据源名称,本教程请填写user_behavior_analysis_mysql

    数据源描述

    DataWorks案例体验专用数据源,在离线同步配置时读取该数据源即可访问平台提供的测试数据,该数据源只支持数据集成场景读取,其他模块不支持使用。

    配置模式

    选择连接串模式

    连接地址

    • 主机地址IP:rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com

    • 端口号:3306

    数据库名称

    输入数据库名,本教程请填写workshop

    用户名

    输入用户名,本教程请填写workshop

    密码

    输入密码,本教程请填写workshop#2017

    认证选项

    无认证。

  4. 连通配置区域,分别单击生产环境和开发环境的测试连通性,确保连通状态为可连通

    重要
    • 需确保资源组已绑定至工作空间,并配置了公网访问能力,否则后续数据同步时将会报错。配置步骤请参见准备环境

    • 如果您无可选的资源组,可参考链接配置区域的说明提示,单击前往购买绑定已购资源组

  5. 单击完成创建

新建HttpFile数据源(user_behavior_analysis_httpfile

本教程提供的用户网站访问记录数据存储在OSS中,您需要创建Httpfile数据源,以便在后续将OSS中的用户网站访问记录(user_log.txt)同步至MaxCompute。

  1. 管理中心页面,单击左侧导航栏的数据源

  2. 单击新增数据源,在新增数据源对话框中,搜索选择数据源类型为HttpFile

  3. 创建HttpFile数据源页面,配置相关参数。在本教程中开发环境和生产环境都按如下示例值填写。

    以下为本教程所需配置的关键参数,未说明参数保持默认即可。

    参数

    描述

    数据源名称

    输入数据源名称,本教程请填写user_behavior_analysis_httpfile

    数据源描述

    DataWorks案例体验专用数据源,在离线同步配置时读取该数据源即可访问平台提供的测试数据,该数据源只支持数据集成场景读取,其他模块不支持使用。

    URL域名

    开发环境和生产环境的URL域名均配置为https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com

  4. 连通配置区域,分别单击生产环境和开发环境的测试连通性,确保连通状态为可连通

    重要
    • 需确保资源组已绑定至工作空间,并配置了公网访问能力,否则后续数据同步时将会报错。配置步骤请参见准备环境

    • 如果您无可选的资源组,可参考链接配置区域的说明提示,单击前往购买绑定已购资源组

  5. 单击完成创建

步骤二:搭建同步链路

本步骤需要搭建同步链路,将用户基本信息数据和网站访问记录数据分别同步至MaxCompute的表中,为后续加工数据做准备。

  1. 单击左上方的图标图标,选择全部产品 > 数据开发与运维 > DataStudio(数据开发)。然后在页面顶部切换至本教程创建好的工作空间。

  2. 在左侧导航栏单击image,进入数据开发页面,然后在项目目录区域,单击image,选择新建工作流,设置工作流名称。本教程设置为user_profile_analysis_odps

  3. 在工作流编辑页面,从左侧拖拽虚拟节点离线同步节点至画布中,分别设置节点名称。

    本教程节点名称示例及作用如下:

    节点类型

    节点名称

    节点作用

    image虚拟节点

    workshop_start_odps

    用于统筹管理整个用户画像分析工作流,可使数据流转路径更清晰。该节点为空跑任务,无须编辑代码。

    image离线同步节点

    ods_user_info_d_odps

    用于将存储于MySQL的用户基本信息数据同步至MaxComputeods_user_info_d_odps表。

    image离线同步节点

    ods_raw_log_d_odps

    用于将存储于OSS的用户网站访问记录同步至MaxComputeods_raw_log_d_odps表。

  4. 手动拖拽连线,将workshop_start_odps节点设置为两个离线同步节点的上游节点。最终效果如下:

    image
  5. 工作流调度配置。

    在工作流编辑页面右侧单击调度配置,配置相关参数。以下为本教程所需配置的关键参数,未说明参数保持默认即可。

    调度配置参数

    说明

    调度参数

    为整个工作流设置调度参数,工作流中的内部节点可直接使用。本教程配置为bizdate=$[yyyymmdd-1],获取前一天的日期。

    调度周期

    本教程配置为

    调度时间

    本教程配置调度时间00:30,该工作流会在每日00:30启动。

    节点依赖配置

    Workflow无上游依赖,可不配置。为了方便统一管理,您可以单击使用工作空间根节点,将工作流挂载到工作空间根节点下。

    工作空间根节点命名格式为:工作空间名_root

  6. 在节点工具栏单击保存

步骤三:配置同步任务

配置初始节点

  1. 在工作流编辑页面中,鼠标悬停至workshop_start_odps节点上,单击打开节点

  2. workshop_start_odps节点编辑页面右侧单击调度配置,配置相关参数。以下为本教程所需配置的关键参数,未说明参数保持默认即可。

    调度配置参数

    说明

    调度类型

    本教程配置为空跑调度

    调度资源组

    本教程配置为准备环境阶段创建的Serverless资源组。

    节点依赖配置

    由于workshop_start_odps为初始节点,无上游依赖,此时可以单击使用工作空间根节点,由工作空间根节点触发工作流执行。

    工作空间根节点命名为:工作空间名_root

配置用户数据同步链路(ods_user_info_d_odps)

  1. 在工作流编辑页面中,鼠标悬停至ods_user_info_d_odps节点上,单击打开节点

  2. 配置同步链路网络与资源。

    参数

    描述

    数据来源

    • 数据来源:MySQL

    • 数据源名称:user_behavior_analysis_mysql

    我的资源组

    选择准备环境阶段购买的Serverless资源组。

    数据去向

    • 数据去向:MaxCompute(ODPS)

    • 数据源名称:选择准备环境阶段绑定的MaxCompute计算资源,此处示例为MaxCompute_Source

  3. 单击下一步,配置同步任务。

    1. 配置数据来源与去向

      以下为本教程所需配置的关键参数,未说明参数保持默认即可。

      模块

      配置项

      配置说明

      数据来源

      选择ods_user_info_d

      切分键

      此处配置切分键为uid字段。uid字段是MySQLods_user_info_d表中的主键。

      数据去向

      Tunnel资源组

      本教程默认为公共传输资源,若您拥有独享Tunnel Quota,可下拉选择。独享Tunnel Quota的更多信息,请参见购买与使用独享数据传输服务资源组

      单击一键生成目标表结构快速创建MaxCompute表。将如下建表语句粘贴至建表语句区域,单击新建表。该表用于接收数据来源端的用户数据。

      CREATE TABLE IF NOT EXISTS ods_user_info_d_odps (
       uid STRING COMMENT '用户ID',
       gender STRING COMMENT '性别',
       age_range STRING COMMENT '年龄段',
       zodiac STRING COMMENT '星座'
      )
      PARTITIONED BY (
       dt STRING
      )
      LIFECYCLE 7;

      分区信息

      本教程填入${bizdate},用于在后续测试阶段为bizdate参数赋值常量,在调度执行时为bizdate参数动态赋值。Data Studio支持的变量格式及配置方法,请参见调度参数

    2. 确认字段映射通道控制

      DataWorks通过配置源端与目标端字段映射关系,实现源端指定字段数据写入目标端指定字段,同时支持设置任务并发数、脏数据策略等。本教程脏数据策略配置为不容忍脏数据,其他配置保持默认。更多信息,请参见通过向导模式配置离线同步任务

  4. 配置调试参数。

    在离线同步任务配置页面右侧单击调试配置,配置以下参数,用于在步骤四调试运行中使用调试配置的相关参数测试运行。

    配置项

    配置说明

    资源组

    选择准备环境阶段购买的Serverless资源组。

    脚本参数

    无需配置。本教程提供的示例代码中统一使用${bizdate}表示业务日期,在步骤四调试运行工作流时,设置本次运行值为具体常量(例如20250223),任务运行将会使用此常量替换任务中定义的变量。

  5. (可选)配置调度属性。

    本教程调度配置相关参数保持默认即可,您可以在离线同步任务配置页面右侧单击调度配置。调度配置中参数的详细说明,详情可参见调度配置

    • 调度参数:本教程已在工作流调度参数中统一配置,工作流内部节点无需配置,在任务或代码中可直接使用。

    • 调度策略:您可以在延时执行时间参数中指定子节点在工作流执行后,延迟多久再执行,本教程不设置。

  6. 在节点工具栏单击保存

配置用户日志同步链路(ods_raw_log_d_odps)

  1. 在工作流编辑页面中,鼠标悬停至ods_raw_log_d_odps节点上,单击打开节点

  2. 配置同步链路网络与资源。

    参数

    描述

    数据来源

    • 数据来源:HttpFile

    • 数据源名称:user_behavior_analysis_HttpFile

    我的资源组

    选择准备环境阶段购买的Serverless资源组。

    数据去向

    • 数据去向:MaxCompute(ODPS)

    • 数据源名称:选择准备环境阶段绑定的MaxCompute计算资源,此处示例为MaxCompute_Source

  3. 单击下一步,配置同步任务。

    • 配置数据来源与去向

      以下为本教程所需配置的关键参数,未说明参数保持默认即可。

      模块

      配置项

      配置说明

      数据来源

      文件路径

      本教程填入/user_log.txt

      文件类型

      本教程选择text类型。

      列分隔符

      本教程填入|

      高级配置 > 是否跳过表头

      本教程选择No,不跳过表头。

      重要

      配置数据来源完成后,需单击确认表数据结构,查看是否能正常读取到日志文件。

      数据去向

      Tunnel资源组

      本教程默认为公共传输资源,若您拥有独享Tunnel Quota,可下拉选择。独享Tunnel Quota的更多信息,请参见购买与使用独享数据传输服务资源组

      单击一键生成目标表结构快速创建MaxCompute表。将如下建表语句粘贴至建表语句区域,单击新建表。该表用于接收数据来源端的用户日志。

      CREATE TABLE IF NOT EXISTS ods_raw_log_d_odps
      (
          col STRING
      )
      PARTITIONED BY
      (
          dt STRING
      )
      LIFECYCLE 7;

      分区信息

      本教程填入${bizdate},用于在后续测试阶段为bizdate参数赋值常量,在调度执行时为bizdate参数动态赋值。Data Studio支持的变量格式及配置方法,请参见调度参数

    • 确认字段映射通道控制

      DataWorks通过配置源端与目标端字段映射关系,实现源端指定字段数据写入目标端指定字段,同时支持设置任务并发数、脏数据策略等。本教程脏数据策略配置为不容忍脏数据,其他配置保持默认。更多信息,请参见通过向导模式配置离线同步任务

  4. 配置调试参数。

    在离线同步任务配置页面右侧单击调试配置,配置以下参数,用于在步骤四调试运行中使用调试配置的相关参数测试运行。

    配置项

    配置说明

    资源组

    选择准备环境阶段购买的Serverless资源组。

    脚本参数

    无需配置。本教程提供的示例代码中统一使用${bizdate}表示业务日期,在步骤四调试运行工作流时,设置本次运行值为具体常量(例如20250223),任务运行将会使用此常量替换任务中定义的变量。

  5. (可选)配置调度属性。

    本教程调度配置相关参数保持默认即可,您可以在离线同步任务配置页面右侧单击调度配置。调度配置中参数的详细说明,详情可参见调度配置

    • 调度参数:本教程已在工作流调度参数中统一配置,工作流内部节点无需配置,在任务或代码中可直接使用。

    • 调度策略:您可以在延时执行时间参数中指定子节点在工作流执行后,延迟多久再执行,本教程不设置。

  6. 在节点工具栏单击保存

步骤四:同步数据

  1. 同步数据。

    在工作流工具栏中,单击运行,设置各节点定义的参数变量在本次运行中的取值(本教程使用20250223,您可以按需修改),单击确定后,等待运行完成。

  2. 查询数据同步结果。

    1. Data Studio左侧导航栏单击image,进入数据开发页面,然后在个人目录区域,单击image,创建一个后缀为.sql的文件(文件名称自定义即可)。

    2. 在页面底部如下位置确认语言模式是否为MaxCompute SQLimage

    3. 在节点编辑窗口中输入如下SQL语句,查看导入ods_raw_log_d_odpsods_user_info_d_odps的记录数,确认同步数据是否写入到目标端。

      -- 此处您需要修改分区过滤条件为您当前操作的实际业务日期。本教程中,前文配置的调试参数bizdate(业务日期)为20250223。
      SELECT count(*) FROM ods_user_info_d_odps WHERE dt='业务日期'; 
      SELECT count(*) FROM ods_raw_log_d_odps WHERE dt='业务日期';
      • 上述命令查询存在数据,即表示同步数据已配置完成。

      • 如果没有数据,请确保运行工作流时,配置的本次运行值与此处查询时dt指定的业务日期一致,您可以单击工作流,单击右侧的运行历史,在运行记录右侧操作列单击查看,然后在工作流的运行日志中确认运行工作流时业务日期的取值(partition=[pt=xxx])。

后续步骤

完成数据的同步配置后,您可以继续下一教程,学习如何对同步数据进行计算与分析。详情请参见加工数据