
# MySQL同步到Elasticsearch作业配置（内测）
#### 支持的源端和目的端数据库版本
表1支持的数据库版本 
| 源端数据库                   | 目的端数据库                        |
|:---|:---|
| MySQL数据库（5.6、5.7、8.x版本） | Elasticsearch数据库（7.x版本、6.x版本） |
   
#### 数据库账号权限要求
在使用Migration进行同步时，源端和目的端所使用的数据库账号需要满足以下权限要求，才能启动实时同步任务。不同类型的同步任务，需要的账号权限也不同，详细可参考[表2](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7668.html#dataartsstudio_01_7668__table1161035318319)进行赋权。
表2数据库账号权限 
| 类型名称      | 权限要求                                                                                                                                                                                                                                         |
|:---|:---|
| 源数据库连接账号  | 需要具备如下最小权限：SELECT、SHOW DATABASES、REPLICATION SLAVE、REPLICATION CLIENT，即执行SQL： ``` GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '用户名'@'资源组网段', '用户名'@'代理CDM集群IP'; ``` |
| 目标数据库连接账号 | 暂不支持CSS安全模式集群、不支持CSS开启"HTTPS访问"。                                                                                                                                                                                                             |
   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
- 建议创建单独用于Migration任务连接的数据库账号，避免因为数据库账号密码修改，导致的任务连接失败。
- 连接源和目标数据库的账号密码修改后，请同步修改管理中心对应的连接信息，避免任务连接失败后自动重试，导致数据库账号被锁定影响使用。
 
#### 支持的同步对象范围
在使用Migration进行同步时，不同类型的链路，支持的同步对象范围不同，详细情况可参考[表3]。
 表3同步对象范围 
| 类型名称   | 使用须知                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|
| 同步对象范围 | - 支持同步DML：包括INSERT、UPDATE、DELETE。  - 支持同步DDL：仅支持新增列。  - 仅支持同步MyISAM和InnoDB表。  - 不支持同步视图、外键、存储过程、触发器、函数、事件、虚拟列、唯一约束和唯一索引。  - 运行时自动创建Elasticsearch索引，暂不支持复杂mapping结构的创建，不支持复杂数据类型的创建，包括Json、Object、Nested、Array等。  - 对于已有索引，不支持写出数据到结构定义较为复杂的索引字段，需要保证字段定义Json体的第一级中包含type属性，否则字段会被忽略。  - 不支持同步的索引字段名中包含特殊字符，如.和\*等。  - 不支持同步对象中存在包含CASCADE、SET NULL、SET DEFAULT之类引用操作的外键。这些关联操作会导致更新或删除父表中的行，影响子表对应的记录，并且子表的相关操作并不记录Binlog。   |
   
#### 注意事项
除了数据源版本、连接账号权限及同步对象范围外，您还需要注意的事项请参见[表4]。
 表4注意事项 
| 类型名称  | 使用和操作限制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|
| 数据库限制 | - 源端数据库中的库名、表名、字段名不能包含：.\<'\>/\\"以及非ASCII字符，建议尽量使用常规字符避免任务失败。  - 目标数据库中的库名、表名、字段名仅支持数字、字母和下划线，且字段名必须以字母或下划线开头，建议尽量使用常规字符避免任务失败。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 使用限制  | 通用： - 实时同步过程中，不支持IP、端口、账号、密码修改。  - 不允许源数据库进行恢复操作。  - 源库需开启Binlog日志，并确保binlog_row_image的参数值为full。  - 建议MySQL Binlog保留3天以上，不支持强制清理Binlog。 异常/暂停恢复作业时，记录的Binlog位点过期会导致作业恢复失败，需要关注作业异常/暂停时长及Binlog保留时长。   - 实时同步过程中，不允许源数据库MySQL跨大版本升级，否则可能导致数据不一致或者同步任务失败（跨版本升级后数据、表结构、关键字等信息均可能会产生兼容性改变），建议在该场景下重建同步任务。  - MySQL分库分表垂直分割模式下最多只支持源端20张表分表。  - MySQL分库分表垂直分割模式下，由于涉及分表联动数据变更，需要源端自行保证分表数据变更的事务一致性。例如，删除某条数据时，需要确保源端所有分表都已删除该条数据。   全量同步阶段： 任务启动和全量数据同步阶段，请不要在源数据库执行DDL操作，否则可能导致任务异常。 增量同步阶段： - 增量同步过程中，不支持指定位置加列的DDL操作（例如ALTER TABLE ddl_test ADD COLUMN c2 AFTER/FIRST c1;），Migration会删除AFTER/FIRST属性，可能会导致列顺序不一致。  - 增量同步过程中，执行不幂等的DDL可能导致数据不一致（例如ALTER TABLE ddl_test ADD COLUMN c3 timestamp default now();），Migration会因数据库函数执行结果不幂等导致最终数据不一致。  - 目前仅支持同步新增列的DDL操作。若需进行其他Elasticsearch索引结构的变更，必须先停止实时作业，然后在Elasticsearch服务端手动完成索引映射的修改。  - 对于已有索引，不支持写出数据到结构定义较为复杂的索引字段，需要保证字段定义Json体的第一级中包含type属性，否则字段会被忽略。  - 不支持同步对象中存在包含CASCADE、SET NULL、SET DEFAULT之类引用操作的外键。这些关联操作会导致更新或删除父表中的行影响子表对应的记录，并且子表的相关操作并不记录Binlog。  - 不支持将位点设置在作业涉及的表发生修改与新增列等涉及表结构变更的DDL之前。   备库抽取： 备库抽取需确认备库节点上执行SHOW MASTER STATUS能够返回值，否则在作业异常、暂停恢复场景下存在数据作业异常和数据丢失风险。 常见故障排查： 在任务创建、启动、全量同步、增量同步、结束等过程中，如有遇到问题，可先参考[常见问题](https://support.huaweicloud.com/dataartsstudio_faq/dataartsstudio_03_7594.html)章节进行排查。 |
| 其他限制  | 支持目标数据库中的表比源数据库多列场景，但是需要避免以下场景可能导致的任务失败。 目标数据库多的列要求非空且没有默认值，源数据库insert数据，同步到目标数据库后多的列为null，不符合目标数据库要求。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
#### 操作步骤
本小节以RDS for MySQL到Elasticsearch的实时同步为示例，介绍如何配置Migration实时集成作业。配置作业前请务必阅读[使用前自检概览](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7621.html)， 确认已做好所有准备工作。
1. 参见[新建实时集成作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1603.html)创建一个实时集成作业并进入作业配置界面。
2. 选择数据连接类型：源端选MySQL，目的端选Elasticsearch。 
   图1选择数据连接类型   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002356131242.png "点击放大")
   
   
3. 选择集成作业类型：同步类型默认为实时，同步场景包含整库和分库分表场景。 
   分库分表包含水平分割和垂直分割。
   - 水平分割：指源端按照数据行将一张表拆分为多张分库分表。不同库中的表可聚合为一个表，在同步时统一写入目标表。匹配的分库分表需保证结构一致。
   
   - 垂直分割：指源端按照表结构列将一张大表拆分为多张分库分表。不同库中的表可聚合为一个表，在同步时统一写入目标表。匹配的分库分表必须确保所有匹配表的主键相同，数据根据主键对应匹配，目标表的结构为所有匹配表结构的并集。
     图2选择集成作业类型   
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002389613233.png "点击放大")
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
     同步场景相关介绍请参见[同步场景](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1601.html#dataartsstudio_01_1601__section1644461120563)。
     
   
   
   
   
4. 配置网络资源：选择已创建的MySQL、Elasticsearch数据连接和已配置好网络连接的migration资源组。 
   图3选择数据连接及migration资源组   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002389694017.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   无可选数据连接时，可单击"新建"跳转至管理中心数据连接界面，单击"创建数据连接"创建数据连接，详情请参见[配置DataArts Studio数据连接参数](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0009.html)进行配置。
   无可选migration资源组时，可单击"新建"跳转至购买migration资源组页面创建migration资源组配置，详情请参见[购买创建数据集成资源组增量包](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0145.html)进行配置。
   
   
5. 检测网络连通性：数据连接和migration资源组配置完成后需要测试整个迁移任务的网络连通性，可通过以下方式进行数据源和migration资源组之间的连通性测试。 
   - 单击展开"源端配置"触发连通性测试，会对整个迁移任务的连通性做校验。
   
   - 单击源端和目的端数据源和migration资源组中的"测试"按钮进行检测。
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
     网络连通性检测异常可先参考[数据源和资源组网络不通如何排查？](https://support.huaweicloud.com/dataartsstudio_faq/dataartsstudio_03_7595.html)章节进行排查。
     
   
   
   
   
6. 配置源端参数。 
   各同步场景下选择需要同步库表的方式请参考[表5](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7668.html#dataartsstudio_01_7668__table1560101101915)。
   表5选择需要同步的库表 
   | 同步场景 | 配置方式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   |:---|:---|
   | 整库   | 选择需要迁移的MySQL库表。 图4选择库表 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002389741513.png "点击放大") 库与表均支持自定义选择，即可选择一库一表，也可选择多库多表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 分库分表 | 添加逻辑表。 - 逻辑表名：即最终写入到Elasticsearch的表名。  - 源库过滤条件：支持填入正则表达式，在所有MySQL实例中通过该正则表达式过滤出要写入目标端汇聚表的所有分库。  - 源表过滤条件：支持填入正则表达式，在过滤出的源端分库中再次过滤出要写入目标端Elasticsearch汇聚表的所有分表。  - 在进行分库分表同步时，配置的库表过滤条件应确保在每个选定的实例连接中至少有一个库表能满足该条件，否则可能导致同步失败。 图5添加逻辑表 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002660979401.png "点击放大")  已添加的逻辑表支持预览表结构及来源库表，单击"操作"列的预览即可。预览逻辑表时，源表数量越多，等待时间可能越长，请耐心等待。 图6逻辑表预览 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002500583069.png "点击放大")     |
      
   
   
7. 配置目的端参数。 
   - 源库表和目标匹配策略。 各同步场景下源端库表和目标端库表的匹配策略请参考[表6](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7668.html#dataartsstudio_01_7668__table8930181182519)。
     表6源库表和目标匹配策略 
     | 同步场景 | 配置方式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
     |:---|:---|
     | 整库   | - 索引匹配策略。 - 与来源表同名：数据将同步至与来源MySQL表名相同的Elasticsearch表中。  - 自定义：数据将同步至自行指定的Elasticsearch表中。 图7整库场景下索引匹配策略 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002389741549.png "点击放大") 说明： 自定义匹配策略时，支持用内置变量#{source_table_name}标志来源的表名，且必须包含#{source_table_name}。     - 目标数据源配置。 - ES版本：支持7.x版本、6.x版本。  - 索引属性全局配置："索引全局配置"作用于所有索引，"全局配置"优先级低于"索引属性编辑"中的配置。 当前支持的配置项请参考[表7]。      |
     | 分库分表 | - 索引匹配策略：默认与源端配置中填写的逻辑表同名。    - 在进行分库分表同步时，配置的库表过滤条件应确保在每个选定的实例连接中至少有一个库表能满足该条件，否则可能导致同步失败。 图8分库分表场景下源库表和目标匹配策略 ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002500635317.png "点击放大")      - 目标数据源配置。 - ES版本：支持7.x版本、6.x版本。  - 索引属性全局配置："索引全局配置"作用于所有索引，"全局配置"优先级低于"索引属性编辑"中的配置。 当前支持的配置项请参考[表7]。                                                                                                                   |
        
      表7Elasticsearch目的端支持的配置项 
     | 参数名                              | 参数类型   | 默认值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 单位     | 参数说明                                                                                                                                                           |
     |:---|:---|:---|:---|:---|
     | sink.server.timezone             | string | 系统时区                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | -      | 写入时区。用户期望时间数据(timestamp)写入Elasticsearch时的时区设置，默认为当前系统时区，如 UTC+8。 全局配置。                                                  |
     | es.num.shards                    | int    | 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | -      | 分片数。指定索引创建时的分片数。 全局配置或单索引配置。                                                                                         |
     | es.num.replicas                  | int    | 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | -      | 副本数。指定索引创建时的副本数。 全局配置或单索引配置。                                                                                          |
     | es.primary.key                   | string | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | -      | 主键字段。定义索引的主键字段，支持联合主键，主键之间通过主键分割符分割。 单索引配置。                                                                             |
     | document-id.key-delimiter        | string | 英文半角逗号                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -      | 主键分割符。定义联合主键中不同字段的分割符。 全局配置或单索引配置。                                                                                      |
     | sink.keyby.mode                  | string | TABLE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | -      | 写入并发模式。在作业配置多并发时，定义数据根据何种条件并发写入Elasticsearch，以提高写效率。支持按主键并发（配置PK）和按表名并发（TABLE）。                                                                                |
     | sink.http.connect.timeout.millis | long   | 1000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 毫秒(ms) | 连接创建超时时间。定义首次连通Elasticsearch的超时时间。 全局配置。                                                                             |
     | sink.http.socket.timeout.millis  | long   | 30000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 毫秒(ms) | 写入响应超时时间。定义在等待Elasticsearch服务端写入完成的超时时间。 全局配置。                                                                        |
     | sink.bulk-flush.max-actions      | long   | 1000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 条(rec) | 写入最大缓存数据条数。在缓存数据量超过这里定义的条数上限值时主动进行数据flush，立即向Elasticsearch服务发起写入请求。 全局配置。                                            |
     | sink.bulk-flush.max-size         | string | 2mb                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -      | 写入最大缓存数据大小。在缓存数据量超过这里定义的缓存占用上限时主动进行数据flush，立即向Elasticsearch服务发起写入请求。 全局配置。                                           |
     | sink.bulk-flush.interval         | int    | 10                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 秒(sec) | flush数据时间间隔。周期进行数据flush的时间间隔，默认每10秒进行一次数据写入，将缓存中的数据清空。 全局配置。                                                          |
     | es.dynamic-index.ddl.strategy    | enum   | LATEST_INDEX                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | -      | DDL生效索引范围。在开启了动态索引名后缀时，会有规律地动态生成一系列的索引，在同步DDL时通过本参数指定DDL生效的索引范围。LATEST_INDEX：DDL作用于最新的索引；ALL_INDEXES：DDL作用于所有索引。 全局配置。 |
     | index.time.format                | string | yyyy-MM-dd HH:mm:ss.SSSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSS\|\|yyyy-MM-dd HH:mm:ss.SSS\|\|yyyy-MM-dd HH:mm:ss.SS\|\|yyyy-MM-dd HH:mm:ss.S\|\|yyyy-MM-dd HH:mm:ss\|\|yyyy-MM-dd HH:mm:ss.SSSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSS\|\|yyyy-MM-dd HH:mm:ss.SSS\|\|yyyy-MM-dd HH:mm:ss.SS\|\|yyyy-MM-dd HH:mm:ss.S\|\|yyyy-MM-dd HH:mm:ss\|\|yyyy-MM-dd\|\|HH:mm:ss.SSSSSS\|\|HH:mm:ss.SSSSS\|\|HH:mm:ss.SSSS\|\|HH:mm:ss.SSS\|\|HH:mm:ss.SS\|\|HH:mm:ss.S\|\|HH:mm:ss\|\|yyyy | -      | 作业运行时进行索引创建时，源端时间类字段映射到目的端索引的date类型字段的默认format。 全局配置或单索引配置。                                                          |
     | index.time.format.for.datetime   | string | yyyy-MM-dd HH:mm:ss.SSSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSS\|\|yyyy-MM-dd HH:mm:ss.SSS\|\|yyyy-MM-dd HH:mm:ss.SS\|\|yyyy-MM-dd HH:mm:ss.S\|\|yyyy-MM-dd HH:mm:ss                                                                                                                                                                                                                                                                                                                                  | -      | 作业运行时进行索引创建时，源端datetime类型字段映射到目的端索引的date类型字段的默认format。 全局配置或单索引配置。                                                    |
     | index.time.format.for.timestamp  | string | yyyy-MM-dd HH:mm:ss.SSSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSSS\|\|yyyy-MM-dd HH:mm:ss.SSSS\|\|yyyy-MM-dd HH:mm:ss.SSS\|\|yyyy-MM-dd HH:mm:ss.SS\|\|yyyy-MM-dd HH:mm:ss.S\|\|yyyy-MM-dd HH:mm:ss                                                                                                                                                                                                                                                                                                                                  | -      | 作业运行时进行索引创建时，源端timestamp类型字段映射到目的端索引的date类型字段的默认format。 全局配置或单索引配置。                                                   |
     | index.time.format.for.date       | string | yyyy-MM-dd                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | -      | 作业运行时进行索引创建时，源端date类型字段映射到目的端索引的date类型字段的默认format。 全局配置或单索引配置。                                                        |
     | index.time.format.for.time       | string | HH:mm:ss.SSSSSS\|\|HH:mm:ss.SSSSS\|\|HH:mm:ss.SSSS\|\|HH:mm:ss.SSS\|\|HH:mm:ss.SS\|\|HH:mm:ss.S\|\|HH:mm:ss                                                                                                                                                                                                                                                                                                                                                                                                               | -      | 作业运行时进行索引创建时，源端time类型字段映射到目的端索引的date类型字段的默认format。 全局配置或单索引配置。                                                        |
     | index.time.format.for.year       | string | yyyy                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | -      | 作业运行时进行索引创建时，源端year类型字段映射到目的端索引的date类型字段的默认format。 全局配置或单索引配置。                                                       |
        
     
   
   
   
   
8. 刷新源表和目标表映射，检查映射关系是否正确，同时可根据需求修改表属性、添加附加字段，并通过"自动建表"能力在目的端Elasticsearch数据库中建出相应的表。 
   在采用分库分表-垂直分割模式时，刷新源表与目标表的映射后，需要指定一张表作为该模式下的主表。只有对主表的删除操作同步到目标端时，才会触发目标端对应数据的删除；而对非主表的删除操作同步到目标端时，仅会清空目标表中非主键字段的值。
   图9源表与目标表映射   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002660979553.png "点击放大")
   - 附加字段编辑：单击操作列"附加字段编辑"可为目的端的Elasticsearch索引中增加自定义字段，同时附加字段也会额外加入到Elasticsearch索引的建表中。用户可以在已有的源表字段基础上添加多个附加字段，并自定义字段名、选择字段类型、填写字段值。
     - 字段名称：目的端Elasticsearch索引新增字段的名称。
     
     - 字段类型：目的端Elasticsearch索引新增字段的类型。
     
     - 字段值：目的端Elasticsearch索引新增字段的取值来源。
       表8附加字段取值方式 
       | 类型    | 示例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
       |:---|:---|
       | 常量    | 支持数字、字母、中文、特殊字符。彩色表情字符可能导致作业提交失败，需谨慎使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
       | 内置变量  | - 源端host ip地址：source.host。  - 源端schema名称：source.schema。  - 源端table名称：source.table。  - 目的端schema名称：target.schema。  - 目的端table名称：target.table。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
       | 源表字段  | 源表中的任一字段。 配置附加字段的取值来源于源表字段时，请注意任务运行过程中不能修改对应源表字段的名称，否则可能导致作业异常。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
       | udf方法 | - substring： 截取源端col列的子串, 范围在\[pos, pos+len)。  - date_format： 将源端col列按time_format格式化, 可选转换时区。  - now(\[tz\])： 获取指定时区的当前时间。  - if(cond_exp, str1, str2)： 满足条件表达式cond_exp时返回str1, 否则返回str2。  - concat： 拼接多个参数, 可为源端列或字符串。  - from_unixtime： 将unix时间戳按time_format格式化。  - unix_timestamp： 将时间转成unix时间戳，可显式定义时间格式及转换后精度，time_format时间格式要与源端保持一致。   |
          
       
      
   
   - 索引属性编辑 单击操作列"索引属性编辑"可配置Elasticsearch索引属性，包含索引名，自定义动态索引名后缀及索引自定义属性。
     图10Elasticsearch索引属性配置   
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002355995016.png "点击放大")
     - 索引名：根据索引匹配规则生成的索引名（前缀）。
     
     - 自定义动态索引名后缀：支持用户通过配置UDF动态定义索引名的后缀，UDF的计算结果将拼接到索引名之后生成最终的索引名。通过动态索引名后缀的功能，用户可以将数据分写到不同的索引当中（别名相同）以提升查询效率。当前支持的UDF方法包括：
       - 时间格式化：date_format，col_name为时间字段的字段名。示例：date_format。
       
       - 哈希：hash，示例：hash。
       
       - 一年中的第几周：week_in_year，col_name为时间字段的字段名。示例：week_in_year。
       
       - 字符串截取：substring。示例：substring，截取item_name的前5个字符。
        
     
     - 在配置动态索引名后缀时，请确保生成的索引名符合Elasticsearch索引名命名规范，否则会导致动态索引创建不成功且作业异常。具体的，后缀中不应包含特殊字符，包括但不限于\[ ,",\*,\\,，,\>,\</,?\]\]、中文等；同时不能包含大写字符。
     
     - 索引自定义属性：支持配置单个索引的高级属性，支持的配置项参考[表7]。
      
    
   
   
9. 配置DDL消息处理规则。 
   实时集成作业除了能够同步对数据的增删改等DML操作外，也支持对部分表结构变化（DDL）进行同步。针对支持的DDL操作，用户可根据实际需求配置为正常处理/忽略/出错。
   - 正常处理：Migration识别到源端库表出现该DDL动作时，作业自动同步到目的端执行该DDL操作。
   
   - 忽略：Migration识别到源端库表出现该DDL动作时，作业忽略该DDL，不同步到目的端表中。
   
   - 出错：Migration识别到源端库表出现该DDL动作时，作业抛出异常。
     图11DDL配置   
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002529060393.png "点击放大") 
   
   
   
   
10. 配置任务属性。 
    表9任务配置参数说明 
    | 参数      | 说明                                                                                                                                 | 默认值  |
    |:---|:---|:---|
    | 执行内存    | 作业执行分配内存，跟随处理器核数变化而自动变化。                                                                                                           | 8GB  |
    | 处理器核数   | 范围：2-32。 每增加1处理核数，则自动增加4G执行内存和1并发数。                                | 2    |
    | 并发数     | 作业执行支持并发数。该参数无需配置，跟随处理器核数变化而自动变化。                                                                                                  | 1    |
    | 自动重试    | 作业失败时是否开启自动重试。                                                                                                                     | 否    |
    | 最大重试次数  | "自动重试"为是时显示该参数。                                                                                                                    | 1    |
    | 重试间隔时间  | "自动重试"为是时显示该参数。                                                                                                                    | 120秒 |
    | 添加自定义属性 | 支持通过自定义属性修改部分作业参数及开启部分高级功能，详情可参见[任务性能调优](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7653.html)章节。 | -    |
       
    
    
11. 提交并运行任务。 
    作业配置完毕后，单击作业开发页面左上角"提交"，完成作业提交。
    图12提交作业   
    ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002356021602.png "点击放大")
    提交成功后，单击作业开发页面"启动"按钮，在弹出的启动配置对话框按照实际情况配置同步位点参数，单击"确定"启动作业。
    图13启动配置   
    ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002389741569.png "点击放大")
    表10启动配置参数 
    | 参数   | 说明                                                                                                                                                                                                                                                                  |
    |:---|:---|
    | 同步模式 | - 增量同步：从指定时间位点开始同步增量数据。  - 全量+增量：先同步全量数据，随后实时同步增量数据。   |
    | 时间   | 增量同步需要设置该参数，指示增量同步起始的时间位点。 说明： 配置的位点时间早于Binlog日志最早时间点时，默认会以日志最早时间点开始消费。                                                                                                            |
       
    
    
12. 监控作业。 
    通过单击作业开发页面导航栏的"前往监控"按钮，可前往作业监控页面查看运行情况、监控日志等信息，并配置对应的告警规则，详情请参见[实时集成任务运维](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1622.html)。
    图14前往监控   
    ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002356181510.png "点击放大")
    
    
 
#### 性能调优
若链路同步速度过慢，可参见[任务性能调优](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7653.html)章节中对应链路文档进行排查及处理。
#### 其他
该链路分库分表垂直分割模式支持源端一张主表合并和多张辅表一起合并到目的端一张合并表中，主表和辅表的数据是通过主键进行一一对应的。
图15示意图   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002660979597.png "点击放大")
- 垂直分割的多表必须保证主键名称、主键类型、主键数目是一致，Elasticsearch多表合并是根据主键相同的数据进行逐个合并。
- 垂直分割模式不支持附加字段和动态索引。
- 主辅表的数据是按照MySQL分库分表模式划分的，其数据一致性和事务性由源端分库分表插件或者业务数据操作保证。
- 建议一个主表最多关联10个辅表，关联过多辅表可能会导致数据迁移延迟较大。目前最多支持20张表进行合并。
 
