行業(yè)算法版表結構
應用結構
數(shù)據(jù)推送到行業(yè)算法版后會先保存到離線數(shù)據(jù)表中,在此階段,為了方便用戶推送數(shù)據(jù),數(shù)據(jù)表允許用戶根據(jù)實際業(yè)務場景定義多個表(需要指定關聯(lián)字段),并提供了數(shù)據(jù)處理的插件。數(shù)據(jù)處理完畢后會join成一張索引表,這種索引表主要定義搜索屬性,供引擎構建索引及查詢使用。
數(shù)據(jù)表字段
數(shù)據(jù)表主要為數(shù)據(jù)導入時使用,不同的數(shù)據(jù)處理插件對類型有不同的要求。具體字段取值范圍,請參見使用限制-字段相關部分說明。超過取值范圍將溢出或者截斷,請務必保證選擇類型正確。
類型 | 說明 |
INT | int64整型 |
INT_ARRAY | int64整型數(shù)組 |
FLOAT | 浮點型 |
FLOAT_ARRAY | 浮點型數(shù)組 |
DOUBLE | 浮點型 |
DOUBLE_ARRAY | 浮點型數(shù)組 |
LITERAL | 字符串常量,僅支持精確匹配 |
LITERAL_ARRAY | 字符串常量數(shù)組,單個元素僅支持精確匹配 |
SHORT_TEXT | 短文本,長度在100字節(jié)內(nèi),支持若干分詞方式 |
TEXT | 長文本,支持若干分詞方式 |
TIMESTAMP | uint64整型,時間戳數(shù)據(jù) |
GEO_POINT | 字符串常量,經(jīng)緯度字段,格式為:”經(jīng)度 緯度” |
保留字段說明:
[‘service_id’, ‘ops_app_name’, ‘inter_timestamp’, ‘index_name’, ‘pk’, ‘ops_version’, ‘ha_reserved_timestamp’,‘summary’] 這些字段名稱為保留字段,暫時無法作為字段名稱配置。
ARRAY數(shù)組類型說明:
如果應用字段創(chuàng)建為ARRAY類型,數(shù)據(jù)源字段映射時,該字段可以關聯(lián)varchar/string(字符串類型),并使用數(shù)據(jù)源插件說明解析數(shù)據(jù)源字段。
若該ARRAY類型字段使用API/SDK推送,則請按數(shù)組類型推送,不要按string推送。如:String[] literal_array = {“阿里云”,”開放搜索”};
時間戳字段說明:
INT和TIMESTAMP類型可以映射數(shù)據(jù)源字段中的datetime/timestamp字段,會自動將其轉(zhuǎn)化為毫秒數(shù)。搜索時可以通過range,按時間區(qū)間過濾召回。
支持的數(shù)據(jù)源字段類型
數(shù)據(jù)源 | 支持的字段類型 |
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 |
行業(yè)算法版表的字段類型與數(shù)據(jù)庫表的字段類型的對應關系
行業(yè)算法版表 | RDS表 | PolarDB表 | MaxCompute(原odps)表 |
INT | BIGINT,TINYINT,SMALLINT,INTEGER | BIGINT,TINYINT,SMALLINT,INTEGER | BIGINT,TINYINT,SMALLINT,INT |
INT_ARRAY | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 |
FLOAT | FLOAT,NUMERIC,DECIMAL | FLOAT,NUMERIC,DECIMAL | FLOAT,DECIMAL |
FLOAT_ARRAY | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 |
DOUBLE | DOUBLE,NUMERIC,DECIMAL | DOUBLE,NUMERIC,DECIMAL | DOUBLE,DECIMAL |
DOUBLE_ARRAY | VARCHAR等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 |
LITERAL | VARCHAR等字符串類型 | VARCHAR等字符串類型 | VARCHAR、STRING等字符串類型 |
LITERAL_ARRAY | VARCHAR等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 | VARCHAR、STRING等字符串類型,需用數(shù)據(jù)源插件MultiValueSpliter轉(zhuǎn)換 |
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表示經(jīng)度,lat表示緯度,都為double類型,二者之間用空格分隔。lon的范圍: [-180, 180], lat范圍[-90, 90]。 |
注意:
數(shù)據(jù)源字段數(shù)據(jù)類型如果是FLOAT或DOUBLE類型,建議改為DECIMAL類型,否則可能會出現(xiàn)精度不正確的情況。
創(chuàng)建應用結構方式介紹
行業(yè)算法版提供如下4中方式創(chuàng)建應用結構(行業(yè)算法版的表結構):
通過數(shù)據(jù)源的方式創(chuàng)建(RDS、MaxCompute、PolarDB);
手動創(chuàng)建(請參考下面的配置多表JOIN);
配置多表JOIN
這里以手動創(chuàng)建的方式介紹如何配置多表join,以兩張表為例:main(主表)、test_tb_1(輔表):
1.登錄控制臺,點擊配置:
2.選擇主表,設置主表主鍵:
3.設置輔表主鍵:
4.設置主輔表關聯(lián)關系(在主表里設置):
注意:
行業(yè)算法版支持的主輔表數(shù)據(jù)關聯(lián)關系可參考創(chuàng)建多表join;
只有int 或 literal字段類型可以做關聯(lián)字段;
主輔表join時,join的字段必須類型相同,要是int都是int,要是literal都是literal;
輔表join主表時,必須用輔表的主鍵join主表的某個字段,不能用輔表的非主鍵字段join主表;