應用結構
資料推送到OpenSearch後會先儲存到離線資料表中,在此階段,為了方便使用者推送資料,資料表允許使用者根據實際業務情境定義多個欄位(需要指定關聯欄位),並提供了資料處理的外掛程式。資料處理完畢後會構建為一張索引表,這種索引表主要定義搜尋屬性,供引擎構建索引及查詢使用。
資料表欄位
資料表主要為資料匯入時使用,不同的資料處理外掛程式對類型有不同的要求。具體欄位取值範圍,請參見使用限制-欄位相關部分說明。超過取值範圍將溢出或者截斷,請務必保證選擇類型正確。
類型 | 說明 |
INT | int64整型 |
INT_ARRAY | int64整型數組 |
FLOAT | 浮點型 |
FLOAT_ARRAY | 浮點型數組 |
DOUBLE | 浮點型 |
DOUBLE_ARRAY | 浮點型數組 |
LITERAL | 字串常量,僅支援精確匹配 |
LITERAL_ARRAY | 字串常量數組,單個元素僅支援精確匹配 |
SHORT_TEXT | 短文本,長度在100位元組內,支援若干分詞方式 |
TEXT | 長文本,支援若干分詞方式 |
TIMESTAMP | uint64整型,時間戳記資料 |
GEO_POINT | 字串常量,經緯度欄位,格式為:”經度 緯度” |
保留欄位說明:
[‘service_id’, ‘ops_app_name’, ‘inter_timestamp’, ‘index_name’, ‘pk’, ‘ops_version’, ‘ha_reserved_timestamp’,‘summary’] 這些欄位名稱為保留欄位,暫時無法作為欄位名稱配置。
ARRAY數群組類型說明:
如果應用欄位建立為ARRAY類型,資料來源欄位對應時,該欄位可以關聯varchar/string(字串類型),並使用資料來源外掛程式說明解析資料來源欄位。
若該ARRAY類型欄位使用API/SDK推送,則請按數群組類型推送,不要按string推送。如:String[] literal_array = {“阿里雲”,”OpenSearch”};
時間戳記欄位說明:
INT和TIMESTAMP類型可以映射資料來源欄位中的datetime/timestamp欄位,會自動將其轉化為毫秒數。搜尋時可以通過Range範圍查詢,按時間區間過濾召回。
支援的資料來源欄位類型
資料來源 | 支援的欄位類型 |
RDS | TINYINT,SMALLINT,INTEGER,BIGINT,FLOAT,REAL,DOUBLE,NUMERIC,DECIMAL,TIME,DATE,TIMESTAMP,VARCHAR |
PolarDB | TINYINT,SMALLINT,INTEGER,BIGINT,FLOAT,REAL,DOUBLE,NUMERIC,DECIMAL,TIME,DATE,TIMESTAMP,VARCHAR |
MaxCompute(原odps) | BIGINT,DOUBLE,BOOLEAN,DATETIME,STRING,DECIMAL,MAP,ARRAY,TINYINT,SMALLINT,INT,FLOAT,CHAR,VARCHAR,DATE,TIMESTAMP,BINARY,INTERVAL_DAY_TIME,INTERVAL_YEAR_MONTH,STRUCT |
OpenSearch表的欄位類型與資料庫表的欄位類型的對應關係
OpenSearch表 | RDS表 | PolarDB表 | MaxCompute(原odps)表 |
INT | BIGINT,TINYINT,SMALLINT,INTEGER | BIGINT,TINYINT,SMALLINT,INTEGER | BIGINT,TINYINT,SMALLINT,INT |
INT_ARRAY | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 |
FLOAT | FLOAT,NUMERIC,DECIMAL | FLOAT,NUMERIC,DECIMAL | FLOAT,DECIMAL |
FLOAT_ARRAY | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 |
DOUBLE | DOUBLE,NUMERIC,DECIMAL | DOUBLE,NUMERIC,DECIMAL | DOUBLE,DECIMAL |
DOUBLE_ARRAY | VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 |
LITERAL | VARCHAR等字串類型 | VARCHAR等字串類型 | VARCHAR、STRING等字串類型 |
LITERAL_ARRAY | VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 | VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換 |
SHORT_TEXT | VARCHAR等字串類型 | VARCHAR等字串類型 | VARCHAR、STRING等字串類型 |
TEXT | VARCHAR等字串類型 | VARCHAR等字串類型 | VARCHAR、STRING等字串類型 |
TIMESTAMP | datetime/timestamp類型 | datetime/timestamp類型 | datetime/timestamp類型 |
GEO_POINT | VARCHAR等字串類型 | VARCHAR等字串類型 | VARCHAR、STRING等字串類型,格式為: lon lat。lon表示經度,lat表示緯度,都為double類型,二者之間用空格分隔。lon的範圍: [-180, 180], lat範圍[-90, 90]。 |
注意:
資料來源欄位資料類型如果是FLOAT或DOUBLE類型,建議改為DECIMAL類型,否則可能會出現精度不正確的情況。
建立應用結構方式介紹
OpenSearch提供如下4中方式建立應用結構(OpenSearch的表結構):
通過資料來源的方式建立(RDS資料來源配置、MaxCompute(原ODPS)資料來源配置、PolarDB資料來源配置);
手動建立;
通過模板建立(應用間遷移);