云原生多模数据库 Lindorm的搜索索引(SearchIndex)服务在使用过程中存在一些限制,本文介绍搜索索引的使用限制。
搜索索引(SearchIndex)服务在使用过程中存在以下限制:
数据类型
索引列支持的数据类型包括:BOOLEAN,BYTE,SHORT,INT,LONG,FLOAT,DOUBLE,STRING,CHAR,BINARY,TIMESTAMP,JSON。
生存时间(Time-To-Live,简称TTL)
搜索索引的TTL默认与主表保持一致,索引会定期清理历史数据,无法保证TTL的实时生效。
重要搜索引擎Elasticsearch兼容版本暂不支持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分类的说明请参见基本概念。
如果您在使用过程中遇到任何问题,请提交工单处理,工单链接为提交工单。
文档内容是否对您有帮助?