配置Elasticsearch或云搜索服务源端参数 本章节主要介绍配置Elasticsearch或云搜索服务源端参数。 作业中源连接为配置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表示查询条件,例如“lastname:Smith”。 另外,如果查询条件data为带空格的字符串,则需要用双引号包围。如果不指定column,则会对所有字段以data进行匹配。 − 多条查询条件时,可通过连接词组合多个查询条件,格式为column1 :data1 ANDcolumn2:data2。其中,中间的连接词必须用全大写,可以为“AND”、“OR”或“NOT”,且连接词前后要有空格。 例如:“lastname:Smith AND lastname:John”。 − 范围匹配时,可以直接使用条件表达式的方式进行过滤,格式为 column :>data 。其中,操作符支持“>”、“>”、“ 1636905600000 AND time:1637078400000”。也可以配合时间宏变量使用,如“createTime:{timestamp(dateformat(yyyyMMdd,1,DAY))} AND createTime:<{timestamp(dateformat(yyyyMMdd))}”。 − 范围匹配时,也支持使用范围区间语法的方式进行过滤,格式为 column :{data1TOdata2} 。其中,{”、“}”代表不包含该值,“[”、“]”代表包含该值,TO必须大写且前后要有空格,代表所有。 例如:“time:{1636992000000 TO ]”,表示过滤time字段中大于1636992000000的所有数据。也可以配合时间宏变量使用,如“createTime:[{timestamp(dateformat(yyyyMMdd,1,DAY))} TO{timestamp(dateformat(yyyyMMdd))}}”。 暂不支持通过Elasticsearch的query DSL(即DSL语法,Domain Sepcified Language)查询方式对源数据进行过滤。 lastname:Smith 抽取元字段 表示是否抽取索引的元字段,目前只支持(index、type、id、score)例如:index、type、id、score 是 在下一步的字段映射中,源端和目的端均支持配置自定义字段。 详见下图: 配置自定义字段