同构异IP数据源批量抽取主要是为了解决数据在分库分表时,数据源类型相同、ip不同、库表名称符合特定规律、表结构一致的场景。在此场景下,如果需要抽取各分公司相同表结构的业务表时,需要重复创建几百个仅数据源名称不同的传输任务,极大影响了开发人员的开发效率,通过逻辑数据源的方式能够很好的解决这一问题。

背景

此案例中共准备400张表,分别存在4个同构异IP数据源中,每个数据源下分别有10个库,每个库下分别有10张表(每张表有100条记录)。库名和表名的命名特征如下:设m∈{1,2,3,4},n∈{0,1,2,3,4,5,6,7,8,9},l∈{0,1,2,3,4,5,6,7,8,9},数据源名称:physical_mysqlm,库名:ndi_m_n,表名:t_sharding_m_n_l。需要每天读取4个MySQL数据源下所有分库分表的全量数据,并覆盖写入Hive表。上述4个数据源可事先在数据源管理中完成登记。

示例如下:

数据源名称 库名 表名
physical_mysql1 ndi_1_0 t_sharding_1_0_0
t_sharding_1_0_1
t_sharding_1_0_2
t_sharding_1_0_3
t_sharding_1_0_4
t_sharding_1_0_5
t_sharding_1_0_6
t_sharding_1_0_7
t_sharding_1_0_8
t_sharding_1_0_9
physical_mysql1 ndi_1_1 t_sharding_1_1_0
t_sharding_1_1_1
t_sharding_1_1_2
t_sharding_1_1_3
t_sharding_1_1_4
t_sharding_1_1_5
t_sharding_1_1_6
t_sharding_1_1_7
t_sharding_1_1_8
t_sharding_1_1_9

配置步骤

本实践案例主要包括逻辑数据源的登记离线同步任务的创建,其它步骤同普通的数据传输任务配置方法一样因此不再重复。首先,在数据源当中将同构异IP的物理数据源登记为逻辑数据源;其次,在数据传输时,选择逻辑数据源并填写库名和表名的正则表达式;最后,在离线开发中心完成传输任务的调度配置。

登记逻辑数据源

在登记数据源前,首先要在安全中心-权限管理-功能权限中配置相应的登记权限,如下图所示:
同构异IP数据源批量抽取实践 - 图1

项目配置中,点击项目中心(新)前往数据源管理页面,在该页面中选择登记逻辑数据源按钮进入数据源选择页面。
同构异IP数据源批量抽取实践 - 图2

数据源类型选择MySQL,进入基础信息配置页面。根据业务规划完成数据源名称数据源标识归属项目负责人管理员的填写。

添加物理数据源一栏中,点击添加按钮。
同构异IP数据源批量抽取实践 - 图3

搜索数据源名称,并勾选需要添加的数据源。
同构异IP数据源批量抽取实践 - 图4

添加完成后,点击保存。保存成功之后,可在数据源列表页查看逻辑数据源详情,确认无误后请前往数据传输。
同构异IP数据源批量抽取实践 - 图5

创建离线同步任务

离线同步任务配置之前,需要确认是否具有数据传输新建任务的权限以及数据源读写权限。可前往安全中心-权限管理-功能权限中进行配置。

数据传输-离线同步任务页面,点击新建任务按钮。进入任务配置页面。
同构异IP数据源批量抽取实践 - 图6

首先配置基本信息,根据实际情况填写。在数据来源中将数据源切换成逻辑数据源
同构异IP数据源批量抽取实践 - 图7

选择数据源类型MySQL,并选择已登记的逻辑数据源logic_distmysql。在库名和表名中分别填写正则表达式如下:
同构异IP数据源批量抽取实践 - 图8

点击解析按钮,预览正则匹配命中的前10张表。
同构异IP数据源批量抽取实践 - 图9

数据去向中,完成数据源类型等配置。
同构异IP数据源批量抽取实践 - 图10

配置完数据来源和去向之后,字段映射会根据同名映射规则进行配置,确认无误后可点击确定按钮完成任务的整体配置,后续步骤同普通的传输任务,可参考手册相关章节。