Lindorm的搜尋索引(SearchIndex)服務在使用過程中存在一些限制,本文介紹搜尋索引的使用限制。
搜尋索引(SearchIndex)服務在使用過程中存在以下限制:
資料類型
索引列支援的資料類型包括:BOOLEAN,BYTE,SHORT,INT,LONG,FLOAT,DOUBLE,STRING,CHAR,BINARY,TIMESTAMP,JSON。
索引數量
單個寬表中預設只能建立一個搜尋索引,如需建立多個搜尋索引,請參見單表多搜尋索引(公測中)。存留時間(Time-To-Live,簡稱TTL)
若主表配置了TTL:建立搜尋索引時,搜尋索引的TTL將與主表保持一致,後續修改主表TTL不會影響搜尋索引的TTL。
若主表沒有配置TTL:建立搜尋索引後,首次修改主表TTL將會同時修改搜尋索引的TTL;主表的後續TTL修改不會影響搜尋索引的TTL。
如需單獨修改搜尋索引的TTL,請聯絡Lindorm支援人員(DingTalk號:s0s3eg3)處理。
搜尋索引的TTL通過定期清理到期資料實現,無法保證TTL即時精確生效。
資料多版本
搜尋索引不支援索引列資料的多版本。
自訂時間戳記
預設情況下,Lindorm服務端會為每行資料產生一個毫秒時間戳記,相當於資料版本。如果在寫資料時自訂時間戳記,那麼服務端會以應用端的時間戳記為準。不同用戶端自訂時間戳記的方法如下:
HBase用戶端按照下面的介面實現自訂時間戳記。
public Put(byte[] row, long ts) public Put addColumn(byte[] family, byte[] qualifier, long ts, byte[] value)Lindorm SQL用戶端按照下面的介面實現自訂時間戳記。
UPSERT INTO testTable (pk,c1,c2,_l_ts_) values('1','2','3',1640966400000);
如果Lindorm寬表建立了搜尋索引,在自訂時間戳記寫入的情境中,需要提前修改表屬性。修改語句如下:
通過HBase Shell修改表屬性。
ALTER 'testTable', MUTABILITY=> 'MUTABLE_ALL'通過Lindorm SQL修改表屬性。
ALTER TABLE testTable SET 'MUTABILITY' = 'MUTABLE_ALL';
說明MUTABILITY屬性的預設值為
MUTABLE_LATEST,有關Mutability分類的說明請參見基本概念。
如果您在使用過程中遇到任何問題,請提交工單處理,工單連結為提交工單。