應用結構
資料推送到行業演算法版後會先儲存到離線資料表中,在此階段,為了方便使用者推送資料,資料表允許使用者根據實際業務情境定義多個表(需要指定關聯欄位),並提供了資料處理的外掛程式。資料處理完畢後會join成一張索引表,這種索引表主要定義搜尋屬性,供引擎構建索引及查詢使用。
資料表欄位
資料表主要用於資料匯入,不同的資料處理外掛程式對類型有不同的要求。具體欄位取值範圍,請參見使用限制-欄位相關部分說明。超過取值範圍將溢出或者截斷,請務必保證選擇類型正確。
|
類型 |
說明 |
|
INT |
int64整型 |
|
INT_ARRAY |
int64整型數組 |
|
FLOAT |
浮點型 |
|
FLOAT_ARRAY |
浮點型數組 |
|
DOUBLE |
浮點型 |
|
DOUBLE_ARRAY |
浮點型數組 |
|
LITERAL |
字串常量,僅支援精確匹配 |
|
LITERAL_ARRAY |
字串常量數組,單個元素僅支援精確匹配 |
|
SHORT_TEXT |
短文本,長度在100位元組內,支援若干分詞方式 |
|
TEXT |
長文本,支援若干分詞方式 |
|
TIMESTAMP |
uint64整型,時間戳記資料 |
|
GEO_POINT |
字串常量,經緯度欄位,格式為:”經度 緯度” |
|
用於表示JSON對象數組,採用扁平化(Flattened)儲存,丟失對象邊界。 |
|
|
用於表示JSON對象數組,採用主子文檔隔離儲存區 (Isolated Storage),保留對象完整性。 |
保留欄位說明:
-
[‘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 |
行業演算法版表的欄位類型與資料庫表的欄位類型的對應關係
|
行業演算法版表 |
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類型,否則可能會出現精度不正確的情況。
建立應用結構方式介紹
行業演算法版提供如下4種方式建立應用結構(行業演算法版的表結構):
-
通過資料來源的方式建立(RDS、MaxCompute、PolarDB);
-
手動建立(請參考下面的配置多表JOIN);
配置多表JOIN
這裡以手動建立的方式介紹如何配置多表join,以兩張表為例:main(主表)、test_tb_1(輔表):
-
登入控制台,點擊配置:在Ha3引擎頁面的應用列表中,找到目標應用,單擊其操作列的配置。
-
選擇主表,設定主表主鍵:

-
設定輔表主鍵:

-
設定主輔表關聯關係(在主表裡設定):

-
行業演算法版支援的主輔表資料關聯關係可參考建立多表join。
-
只有int 或 literal欄位類型可以做關聯欄位。
-
主輔表join時,join的欄位必須類型相同,要是int都是int,要是literal都是literal。
-
輔表join主表時,必須用輔表的主鍵join主表的某個欄位,不能用輔表的非主鍵欄位join主表。