配置Elasticsearch或云搜索服務源端參數
更新時間 2024-11-15 09:47:33
最近更新時間: 2024-11-15 09:47:33
分享文章
本章節主要介紹配置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表示查詢條件,例如“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 | 是 |
在下一步的字段映射中,源端和目的端均支持配置自定義字段。
詳見下圖: 配置自定義字段
