一、支持版本
目前数据集成支持 Elasticsearch 整库级实时写入,使用实时写入能力需遵循以下版本限制:
| 类型 | 版本 |
| Elasticsearch | 5.x, 6.x, 7.x |
二、使用限制
·目前仅支持 TDSQL-C MySQL > Elasticsearch 一条实时整库链路。
·Elasticsearch 主键取值默认生成 _id 值,不允许修改。
·当前仅支持文档的 _id 作为分区列。
·Elasticsearch 当前采用动态字段映射建表,DDL 变更策略不支持自动修改列类型,不支持删除列,修改列名会变为新增列。
·不支持开启 Kerberos 认证的 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 |