このトピックでは、Lindorm が検索インデックスに課す制限について説明します。
検索インデックスには、以下の制限が課されます。
データの型
検索インデックスのカラムは、BOOLEAN、BYTE、SHORT、INT、LONG、FLOAT、DOUBLE、STRING、CHAR、BINARY、TIMESTAMP、JSON のデータの型をサポートしています。
重要JSON と TIMESTAMP のデータの型は、Lindorm 2.6.5 以降のバージョンでのみサポートされています。LindormTable のバージョンを表示およびアップグレードする方法の詳細については、「LindormTable のリリースノート」および「マイナーバージョンの更新」をご参照ください。
インデックス数
デフォルトでは、ワイドテーブルごとに作成できる検索インデックスは 1 つだけです。複数の検索インデックスを作成するには、「単一テーブルに対する複数の検索インデックス (パブリックプレビュー)」をご参照ください。Time-to-live (TTL)
プライマリテーブルに TTL が設定されている場合、検索インデックスは作成時に同じ TTL を継承します。その後のプライマリテーブルの TTL の変更は、検索インデックスの TTL には影響しません。
プライマリテーブルに TTL が設定されていない場合、プライマリテーブルに初めて TTL を設定すると、検索インデックスの TTL もそれに合わせて更新されます。その後のプライマリテーブルの TTL の変更は、検索インデックスの TTL には影響しません。
検索インデックスの TTL のみを変更する場合は、DingTalk ID: s0s3eg3 にて Lindorm のテクニカルサポートまでご連絡ください。
検索インデックスの 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 ワイドテーブルに対して検索インデックスが作成されており、データにカスタムタイムスタンプを使用したい場合は、ワイドテーブルにデータを書き込む前に、テーブルの MUTABILITY 属性を変更する必要があります。次のいずれかの文を実行して、MUTABILITY 属性を変更できます。
HBase Shell を使用してテーブルプロパティを変更できます。
ALTER 'testTable', MUTABILITY=> 'MUTABLE_ALL'Lindorm SQL を使用してテーブルプロパティを変更できます。
ALTER TABLE testTable SET 'MUTABILITY' = 'MUTABLE_ALL';
説明MUTABILITY プロパティのデフォルト値は
MUTABLE_LATESTです。可変性の分類の詳細については、「用語」をご参照ください。
問題が発生した場合は、するか、チケットを送信してください。