使用场景
将Mysql数据导入到Hive表中,如将业务系统生产的Mysql数据同步到Hive表,供离线分析使用。
注意事项
如果未找到Mysql数据源信息,请在项目管理中配置对应的Mysql数据源
新建任务
- 在任务开发首页,点击“新建任务”
- 在项目下,左侧目录结构中,右键新建任务

任务设置

数据源信息
- 数据源来源:分为自定义数据源和CDC数据源,CDC数据源可选非直连模式
- 数据源名称:数据源管理中注册的数据源
- 数据库:数据源所属的仓库名;
- 数据表:数据源所属的表名,数据表可以进行多选,支持分表导入;
- Mysql唯一索引字段:如果Mysql表做了分表,唯一索引字段推荐使用“分表字段+主键”;如果无分表,唯一索引字段推荐使用“主键”
目标信息
- Hive表所在的数据库
- Hive目标表
- 分区字段从hive表自动获取
字段信息
字段映射在选好数据来源和目标后,自动填充,来源于hive的表结构
数据库直连:
- 适用于小表模式(表数据量在百万行以下)
- 适用于对在线业务访问latency不敏感(每次导入直接从mysql拉取数据)
- 任务频率为小时级时, 如有批量重跑或实例耗时超过1小时的情况, 对Mysql从库可能有较大压力,请谨慎评估相关操作对DB的负载影响
非数据库直连:
- 适用于数据量较大的表
- 首次导入数据时,从mysql直接拉取(首次导入的业务时间可在调度设置中调整,首次导入业务时间的实例会拉取mysql全量数据)
- 后续执行通过“binlog操作日志+目的表前一分区数据”结合的方式,往目标分区中写入数据,即后续导入对db无影响
- 非数据库直连新增或修改hive字段后的处理方法:新增或修改hive字段后需要重跑一次全量。重跑全量可以通过修改调度设置-调度属性-首次导入的业务时间,然后将任务上线重跑首次导入的业务时间到今天的实例。
- 需要注意,如果更新了唯一索引字段,且需要重新全量dump,请至少等1天以后,否则有可能出现数据增多。
- 增量同步需要先接入CDC任务,详见CDC任务说明

数据处理高级参数
- 忽略mysql的删除操作(仅支持非直连模式): spark.mysql.remain_deleted 设置为 true ,谨慎设置,此种模式下,数据量可能会增长很快。
- 在非直连模式下,如果当天的分区不需要合并历史数据:spark.dimer.ignore_history 设置为 true。