更新时间:2024-08-05 GMT+08:00

配置Elasticsearch/云搜索服务源端参数

作业中源连接为Elasticsearch连接参数说明云搜索服务(CSS)连接参数说明时,源端作业参数如表1所示。

表1 Elasticsearch/云搜索服务作为源端时的作业参数

参数类型

参数名

说明

取值样例

基本参数

索引

Elasticsearch的索引,类似关系数据库中的数据库名称。索引名称只能全部小写,不能有大写。

index

类型

Elasticsearch的类型,类似关系数据库中的表名称。类型名称只能全部小写,不能有大写。

说明:

Elasticsearch搜索引擎7.x及以上版本不支持自定义类型,只能使用_doc类型。此处即使自定义也不会生效。

_doc

高级属性

拆分nested类型字段

可选参数,选择是否将nested字段的json内容拆分,例如:将“a:{ b:{ c:1, d:{ e:2, f:3 } } }”拆成三个字段“a.b.c”“a.b.d.e”“a.b.d.f”

过滤条件

可选参数,CDM只迁移满足过滤条件的数据。
  • 当前仅支持通过Elasticsearch的query string(即q语法)方式对源数据进行过滤。q语法使用方式介绍如下:
    • 精确匹配时,直接使用column:data格式进行匹配过滤。其中column表示字段名,data表示查询条件,例如“last_name:Smith”。

      另外,如果查询条件data为带空格的字符串,则需要用双引号包围。如果不指定column,则会对所有字段以data进行匹配。

    • 多条查询条件时,可通过连接词组合多个查询条件,格式为column1:data1 AND column2:data2其中,中间的连接词必须用全大写,可以为“AND”、“OR”或“NOT”,且连接词前后要有空格。

      例如:“first_name:Alec AND last_name:John”。

    • 范围匹配时,可以直接使用条件表达式的方式进行过滤,格式为column:>data。其中,操作符支持“>”、“>=”、“<”或“<=”。

      例如:“time:>=1636905600000 AND time:<1637078400000”。也可以配合时间宏变量使用,如“createTime:>=${timestamp(dateformat(yyyyMMdd,-1,DAY))} AND createTime:< ${timestamp(dateformat(yyyyMMdd))}”。

    • 范围匹配时,也支持使用范围区间语法的方式进行过滤,格式为column:{data1 TO data2}。其中,“{”、“}”代表不包含该值,“[”、“]”代表包含该值,TO必须大写且前后要有空格,*代表所有。

      例如:“time:{1636992000000 TO *]”,表示过滤time字段中大于1636992000000的所有数据。也可以配合时间宏变量使用,如“createTime:[${timestamp(dateformat(yyyyMMdd,-1,DAY))} TO ${timestamp(dateformat(yyyyMMdd))}}”。

  • 暂不支持通过Elasticsearch的query DSL(即DSL语法,Domain Sepcified Language)查询方式对源数据进行过滤。

last_name:Smith

抽取元字段

表示是否抽取索引的元字段,目前只支持(_index、_type、_id、_score)例如:_index、_type、_id、_score

分页大小

Elasticsearch分页查询,用来设置分页size的大小。

1000

ScrollId超时时间配置

Elasticsearch scroll查询时会记录一个scroll_id,超时或者scroll查询结束后会清除请求的srcoll_id,通过设置这个超时时间配置,来指定scroll_id超时时间。

5