跳到主要内容

ElasticSearch

必要条件

必要条件说明
账号权限分配的账号请保证有对ElasticSearch索引查询修改的权限

例:
POST /_security/user/common_user
{
    "cluster": ["all"],
    "index": [
         {
             "names": ["*"],
            "privileges": ["read", "write"]
       }
    ]
}

使用限制与注意点

说明
不支持父子文档 joinCloudCanal 当前仅仅支持 NESTED/OBJECT。NESTED有更好的索引性能,建议用 NESTED,避免 ElasticSearch 侧 join
CloudCanal 写入 ElasticSearch 按照自定义规则生成_id写入 ES 时候 _id 用于唯一标识一个 doc。CloudCanal 数据同步默认遵循以下原则:
  • routing 使用 _id 值
  • 单主键表,会默认使用源端关系表的主键列的列值作为 _id 的值
  • 多主键表,会通过分隔符$连接多个主键列的值,组成唯一的 _id 值
  • 无主键表,会将所有列的值通过$连接,生成唯一的 _id 值

常用对端任务参数

ElasticSearch 相关的默认参数不建议调整

高级功能

自定义分词器

CloudCanal 默认支持以下标准分词器,自定义的分词器用定义的时候请使用名字 "custom" 以便于 CloudCanal 识别。

  • standard
  • simple
  • whitespace
  • stop
  • keyword
  • pattern
  • english
  • fingerprint
  • aliws
  • qq_smart
  • qq_max
  • qq_smart_ner
  • ik_smart
  • ik_max_word
  • smartcn
  • custom

自定义选择类型

  • keyword/text: ElasticSearch 对于 field type 为 keyword 和 text 的索引处理不同,创建任务的时候允许用户自定义选择映射的类型
  • object/nested: 用户可以自定义选择object或者nested

宽表构建

ElasticSearch 结合 CloudCanal 提供的自定义代码功能可以非常容易的构建宽表,具体可以看参考资料中相关文档。

参考资料

链路创建示例

相关案例