本文以MySQL为源端,Hive为目标端场景为例,为您介绍如何把MySQL整个数据库的数据离线同步到Hive。
使用限制
本实践仅支持使用独享数据集成资源组。
前提条件
已完成来源数据源、去向数据源的配置。
本实践以MySQL作为来源数据源,以Hive作为去向数据源,因此您需要在DataWorks的工作空间的数据源管理页面新增MySQL数据源和Hive数据源,两个数据源支持的数据同步能力请参见MySQL数据源、Hive数据源。
已购买独享数据集成资源组,并为资源组绑定工作空间、完成网络连通配置。
本实践仅支持使用独享数据集成资源组,您需购买并配置独享资源组,保障资源组与MySQL数据源、Hive数据源网络连通,独享数据集成资源组的购买与配置操作请参见新增和使用独享数据集成资源组。
创建同步任务
登录并进入数据集成子模块页面,单击同步任务进入同步任务页面,在页面中单击新增任务,开始配置同步任务。
配置同步任务基本信息。
任务名称:自定义。
同步类型:来源数据源选择MySQL,去向数据源选择Hive;根据同步场景需要同步类型与同步步骤。
若您需要进行一次性全量或周期性全量同步,此处请勾选全量同步。
若您需要进行一次性增量或周期性增量同步,此处请勾选增量同步。
若您需要进行一次性全量周期性增量同步,此处请同时勾选全量同步和增量同步。
网络与资源配置:在下拉框中分别选择已创建的MySQL数据源、Hive数据源、独享数据集成资源组,单击测试所有连通性,保障资源组与数据源之间的网络连通性。
配置任务个性化信息。
根据界面提示选择要同步的MySQL表。当前支持通过正则表达式进行表名搜索过滤。
配置目标库属性。此操作会影响通过数据集成新建表的表结构,已有表的表格式不受影响。
新建表存储方式:可以选择内表、外表,决定新建目标表格式是内表还是外表。
新建表格式:可以选择parquet、orc、txt, 决定新建目标表的存储格式。
写入模式:决定任务在写入时,是清空目标表还是保留历史数据。
分区初始化设置:决定新建表的分区初始化值,默认只有一级分区,您可以通过配置按钮进行修改。
配置全增量控制:
配置任务的全增量类型。
如果您的同步步骤勾选了全量同步和增量同步,此处默认展示一次性全量,周期性增量,不可更改。
如果您的同步步骤选择了全量同步,在全增量控制面板页面,可以选择任务的类型是一次性全量还是周期性全量。
如果您的同步步骤选择了增量同步,在全增量控制面板页面,可以选择任务的类型为一次性增量还是周期性增量。
说明以下以一次性全量周期性增量为例,为您示例后续的配置要点。
配置周期调度参数。
如果您的任务涉及周期性同步,则可单击周期调度参数配置进行配置。
配置目标表映射。
全选目标表映射框中的表信息,点击批量刷新表映射按钮,进行表映射刷新。
根据界面提示配置增量条件、周期配置等参数,配置要点如下。
表粒度周期性调度参数配置以及增量条件配置:支持批量修改/单表定制化修改。
增量条件:对源端进行where字句过滤,此处只需写where子句,不需要写出where关键字。如果启用了周期性配置,可以使用系统参数变量。例如:
STR_TO_DATE('${bizdate}', '%Y-%m-%d') <= columnName AND columnName < DATE_ADD(STR_TO_DATE('${bizdate}', '%Y-%m-%d'), interval 1 day)
其中
${bizdate}
为配置的调度参数。
分区字段赋值:您可以单击批量修改中的目标表字段赋值来对分区字段进行赋值。
设置目标表名映射自定义和表粒度高级参数。
目标表名映射自定义:可以使用内置变量和手动输入的字符串拼接成为最终目标表名。
自定义高级参数: 可以支持定制化设置,每张表的高级参数配置,如每张表读取的并发数。
完成上述所有任务配置后,单击完成配置,完成同步任务的配置。
任务运维
启动同步任务
完成配置之后,界面会自动跳转到任务列表页面,您可以单击对应任务的操作列的启动按钮,启动同步任务。
查看任务详情
您可以单击任务名称,查看任务详情。任务详情包含以下几个部分。
基本信息:包括任务的数据源信息,绑定的资源组以及同步方案。
执行状态:MySQL到Hive的离线整库同步任务细分后的同步步骤详情。
如果您的任务同步类型为全量同步,此处展示结构迁移以及全量同步。
如果您的任务同步类型为增量同步,此处展示结构迁移以及增量同步。
如果您的任务同步类型为全量同步、增量同步,此处展示结构迁移、全量同步以及增量同步。
详细信息:针对"结构迁移"以及"全量同步"、"增量同步"的信息执行步骤。
任务重跑
直接重跑:不修改任务配置,直接点击重跑操作。
效果:重跑一次性任务、周期性任务属性做更新。
修改后重跑(增减表场景):编辑任务,进行增减表的操作, 单击完成。这个时候任务的操作会变成"应用更新",单击应用更新会直接触发修改后的任务重跑。
效果:新增的表才会进行同步,之前同步过的表不会再同步。
修改后重跑(修改表名信息):编辑任务,进行目标表的名称修改或者切换同步的目标表,点击完成。这个时候任务的操作会变成"应用更新",单击应用更新会直接触发修改后的任务重跑。
效果:同步修改过的表,没有修改的表不会再进行同步
数据开发相关场景
如果您有下游数据依赖,需要进行数据开发操作的场景,可以参考配置调度依赖,进行节点上下游的设置,对应的周期任务节点信息可以在周期配置中查看。