全部產品
Search
文件中心

OpenSearch:資料來源過濾條件(RDS/PolarDB)

更新時間:Jul 13, 2024

使用介紹

  • 支援的欄位類型:TINYINT,SMALLINT,INTEGER,BIGINT,FLOAT,REAL,DOUBLE,NUMERIC,DECIMAL,TIME,TIMESTAMP

  • 支援的比較符:<、>、<=、>=、=、!= 、<> 【注意:=、!= 、<>數實值型別和字元類型均適用】

  • 支援的值:NULL 與非NULL

情境舉例

1.字元類型的過濾field_string='a'field_string!='b' 注,寫單引號、雙引號或者不寫引號均可;以下舉例值為空白和null的寫法:

field = ''
field != ''
field <> ''
field = 'null'
field = 'NULL'
field != 'null'
field != 'NULL'
field <> 'null'
field <> 'NULL'

2.NULL值過濾:注,數實值型別和字元類型均適用

#以下寫法均正確
field = null 
field = NULL
field != null
field != NULL
field <> null
field <> NULL

3.date或datetime欄位類型條件過濾:createtime>'2021-02-05 00:00:00'

4.多條件過濾:status=1,literal_id='abcd',createtime>'2021-02-05 00:00:00'

注意事項

  • 目前資料來源過濾功能可用在RDS、PolarDB資料來源中;

  • 資料來源過濾條件中的欄位,需填寫為資料庫表欄位,而不是OpenSearch應用結構中的欄位名;

  • 資料來源過濾條件生效後,只能拉取符合該條件的記錄(全量和增量資料均生效)。例:配置了status=1的過濾條件後,rds中某一條原先status=1的文檔改為了status=2,那麼此時這條文檔會在OpenSearch中被刪除;

  • 目前串連符只支援AND,暫不支援OR;AND文法由英文逗號代替;

##sql語句where內容為:
where status=1 and type=2

#在OpenSearch資料來源過濾處配置
where status=1 and type=2 #錯誤寫法
status=1 and type=2 #錯誤寫法
status=1,type=2 #正確寫法
  • 關於null判斷,is null 和 is not null 均為錯誤寫法,正確用法請參考情境舉例中關於null值支援;

  • 如果需要根據db表中的date或datetime欄位進行過濾,假設db欄位名為createtime,則資料來源過濾條件中的時間格式必須需為:createtime>'2018-03-01 00:00:00'

  • 暫時不支援函數和運算式判斷這類複雜操作,例:in(type,1,2,3) 或 length(title)>10

  • 暫時不支援like,not like 例:like '%aaa' 或 not like '%bbb'

  • 暫時不支援恒等式,例:1=1;

  • 如果資料來源處配置了主輔表,建議主表和輔表均使用資料來源過濾功能,以免輔表資料佔用不必要的儲存空間;