全部产品
大数据开发套件

步骤3:配置数据同步任务

更新时间:2017-09-06 10:18:06   分享:   

根据前文的操作,您已经成功 配置 RDS 数据源,本文将为您介绍如何配置数据同步任务,以将 RDS 数据源中的数据同步至 MaxCompute 中。

操作步骤

  1. 以开发者身份进入 大数据开发套件管理控制台,单击对应项目操作栏中的 进入工作区

  2. 单击顶部菜单栏中的 数据集成,导航至 数据同步 页面。

  3. 单击 向导模式,新建一个同步任务。

  4. 选择来源。

    选择 mysql 数据源及源头表 hw_test,然后单击 下一步,如下图所示:

    1

    表每天全量更新,每次统计数据时,只需统计数据日期为昨天完整一天数据。因此数据过滤时,每天自动调度取 datatime 为昨天的日期,可以使用系统参数 ${bdp.system.bizdate} 代替,使任务每天调度执行自动替换字段值,系统参数详情请参见 系统调度参数

  5. 选择目标。

    本示例是将数据导入到 MaxCompute 项目中,所以目标选择默认的数据源 odps_first(odps),此时并未创建目标表,所以需要单击 快速建表 来创建目标表。更多建表方式请参见 创建表

    1

    快速建表弹框中显示系统自动根据源表结构生成的对应 MaxCompute 建表语句:

    1. CREATE TABLE IF NOT EXISTS your_table_name (
    2. house_id STRING COMMENT '*',
    3. house_city STRING COMMENT '*',
    4. house_total_price DOUBLE COMMENT '*',
    5. house_unit_price DOUBLE COMMENT '*',
    6. house_type STRING COMMENT '*',
    7. house_floor STRING COMMENT '*',
    8. house_direction STRING COMMENT '*',
    9. house_deckoration STRING COMMENT '*',
    10. house_area DOUBLE COMMENT '*',
    11. house_community_name STRING COMMENT '*',
    12. house_region STRING COMMENT '*',
    13. proj_name STRING COMMENT '*',
    14. proj_addr STRING COMMENT '*',
    15. period BIGINT COMMENT '*',
    16. property STRING COMMENT '*',
    17. greening_rate STRING COMMENT '*',
    18. property_costs STRING COMMENT '*',
    19. datetime STRING COMMENT '*'
    20. )
    21. COMMENT '*'
    22. PARTITIONED BY (pt STRING);

    注意

    • 自动生成的代码中,表名需要修改成真正的目标表表名,可以与源表表名一致,即 house_basic_info。

    • 自动生成的代码中,源表中 varchar 类型会对应 string 类型,int 类型会对应 bigint 类型。MaxCompute 目前 只支持 6 种数据类型,与常用数据库数据类型有所差异。

    • 自动生成的代码中,字段不能指定默认值、不能指定是否非空默认都是可空、不能指定长度默认每个字段长度上限为 8M。

    • 自动生成的代码会创建分区表,且分区名称为 pt。MySQL 数据库中没有分区概念,MaxCompute 的分区概念与 Hadoop 分区概念类似,详情请参见 分区 。本示例中的目标表可以保留分区设置,以时间作为分区。

    • 既然已经有时间分区,那么源表的 datetime 字段可以不需要同步到目标表,表也可以不需要创建该字段。

    • 常用数据库 SQL 与 MaxCompute SQL 的更多差异请参见 与主流 SQL 的差异

    综上所述,修改弹出框中的建表语句,并单击 提交。MaxCompute 建表语句如下所示:

    1. CREATE TABLE IF NOT EXISTS house_basic_info (
    2. house_id STRING COMMENT '*',
    3. house_city STRING COMMENT '*',
    4. house_total_price DOUBLE COMMENT '*',
    5. house_unit_price DOUBLE COMMENT '*',
    6. house_type STRING COMMENT '*',
    7. house_floor STRING COMMENT '*',
    8. house_direction STRING COMMENT '*',
    9. house_deckoration STRING COMMENT '*',
    10. house_area DOUBLE COMMENT '*',
    11. house_community_name STRING COMMENT '*',
    12. house_region STRING COMMENT '*',
    13. proj_name STRING COMMENT '*',
    14. proj_addr STRING COMMENT '*',
    15. period BIGINT COMMENT '*',
    16. property STRING COMMENT '*',
    17. greening_rate STRING COMMENT '*',
    18. property_costs STRING COMMENT '*'
    19. )
    20. COMMENT '*'
    21. PARTITIONED BY (pt STRING);

    配置目标如下:

    1

    • 分区值保留默认的 ${bdp.system.bizdate},与来源表的过滤条件取的 datetime 数据日期对应,表示该分区存放的数据为源表中 datetime=${bdp.system.bizdate} 的数据。

    • 清理规则保留默认选项,写入前清理已有数据,若是分区表,则只清理当前分区中的数据(若有)。

  6. 字段映射。

    直接保留默认设置即可。源表和目标表字段名都一致会自动对应好,源表 datetime 字段无对应目标字段且不用同步,因此无需做任何处理。

  7. 通道控制。

    本示例中都保留默认设置即可,通道控制各项配置的详细说明请参见 数据同步通道控制参数设置

  8. 保存提交

    • 保存任务时,您可以创建单独的目录进行存放,本示例直接用目标表名称作为任务名称。

    • 提交任务主要是将任务提交到调度系统,使得任务可以按照调度配置进行自动运行。本示例调度配置保留默认配置,调度周期为 调度。

后续步骤

现在,您已经学习了如何配置数据同步任务,您可以继续学习下一个教程。在该教程中您将学习如何执行数据同步任务,将 RDS 中的数据成功导入 MaxCompute 中。详情请参见 执行数据导入任务

本文导读目录
本文导读目录
以上内容是否对您有帮助?