作业中源连接为配置Elasticsearch/云搜索服务(CSS)连接时,源端作业参数如下表所示。
表 Elasticsearch或云搜索服务作为源端时的作业参数
参数名 | 说明 | 取值样例 |
---|---|---|
索引 | Elasticsearch的索引,类似关系数据库中的数据库名称。索引名称只能全部小写,不能有大写。 | index |
类型 | Elasticsearch的类型,类似关系数据库中的表名称。类型名称只能全部小写,不能有大写。 | type |
拆分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 ANDcolumn2*:data2。其中,中间的连接词必须用全大写,可以为“AND”、“OR”或“NOT”,且连接词前后要有空格。 例如:“last_name:Smith 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 | 是 |
在下一步的字段映射中,源端和目的端均支持配置自定义字段。
详见下图: 配置自定义字段