数据集成提供了 Elasticsearch 的实时写入能力,本文为您介绍 Elasticsearch 实时数据同步当前能力支持情况。
支持版本
目前数据集成支持 Elasticsearch 整库级实时写入,使用实时写入能力需遵循以下版本限制:
类型 | 版本 |
Elasticsearch | 5.x, 6.x, 7.x |
使用限制
目前仅支持 TDSQL-C MySQL > Elasticsearch 一条实时整库链路。
Elasticsearch 主键取值默认生成 _id 值,不允许修改。
当前仅支持文档的 _id 作为分区列。
Elasticsearch 当前采用动态字段映射建表,DDL 变更策略不支持自动修改列类型,不支持删除列,修改列名会变为新增列。
不支持开启 Kerberos 认证的 Elasticsearch。
实时整库写入配置
支持的数据来源
当前支持将以下来源类型的数据实时整库同步到 Elasticsearch 目标端:
数据目标配置
Elasticsearch 6.x 以上(包含)版本和以下版本在配置上有些差异:
6.x 以上(包含)版本配置内容如下:
6.x 以下版本配置内容如下:
参数 | 说明 |
数据去向 | 选择需要同步的目标数据源。 |
ES 版本 | 根据选择的数据源自动显示对应的版本 |
写入模式 | Upsert:更新写入,更新每行记录所有字段(当前仅支持此模式)。 |
索引/类型匹配策略 | ES 中索引以及类型的名称匹配规则: 6.x 以上(包含)版本索引默认与来源表同名;类型默认为_doc,不支持修改; 6.x 以下版本索引默认与来源库同名;类型默认与来源表同名; 自定义:支持使用内置参数和字符串组合生成目标索引/类型名称。 说明: 示例:如来源表名称为 table1,映射规则为 ${table_name_di_src}_inlong,则 table1 的数据将被最终映射写入至 table1_inlong 中。 |
逐渐取值方式 | 当前仅支持默认生成 _id 值 |
日志采集写入节点配置
参数 | 说明 |
数据源 | 选择当前项目中可用的 Elasticsearch 数据源。 |
索引 | Elasticsearch 数据源中的索引名称。 |
type | 根据索引自动识别,7.X 版本的 ElasticSearch 默认 type 为 _doc。 |
写入模式 | ElasticSearch 仅支持按行更新,更新每行记录所有字段。 |
主键取值方式 | 支持三种取值方式: 源表主键: document 的 id 使用源表的主键。 联合主键: document 的 id 使用源表的多个列共同确定。 无主键: 默认生成 _id 值。 |
开启路由 | Elasticsearch 是否开启路由分区索引数据。开启路由功能后,可控制在 ElasticSearch 中使用哪个分区来存储文档。 |
高级设置(可选) | 可根据业务需求配置参数。 |
写入数据类型转换支持
内部类型 | JSON 类型 |
CHAR / VARCHAR / STRING | string |
BOOLEAN | boolean |
BINARY / VARBINARY | string with encoding: base64 |
DECIMAL | number |
TINYINT | number |
SMALLINT | number |
INT | number |
BIGINT | number |
FLOAT | number |
DOUBLE | number |
DATE | string with format: date |
TIME | string with format: time |
TIMESTAMP | string with format: date-time |
TIMESTAMP_WITH_LOCAL_TIME_ZONE | string with format: date-time (with UTC time zone) |
INTERVAL | number |
ARRAY | array |
MAP / MULTISET | object |
ROW | object |