Los índices de búsqueda en las tablas anchas de Lindorm tienen a continuación los siguientes límites.
Tipos de datos compatibles
Las columnas del índice de búsqueda admiten estos tipos de datos: BOOLEAN, BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, STRING, CHAR, BINARY, TIMESTAMP y JSON.
TIMESTAMP y JSON solo son compatibles con Lindorm 2.6.5 y versiones posteriores. Para obtener información sobre la versión y las instrucciones de actualización, consulte Release notes of LindormTable y Minor version update.
Longitud máxima de STRING
La longitud máxima para un valor STRING es de 8,191 caracteres:
|
Tokenización |
El límite aplica a |
|
Deshabilitada |
El valor STRING completo |
|
Habilitada |
Cada término resultante |
Si un valor supera este límite, ya sea como cadena original o como término tokenizado, el valor de la columna se excluye del índice de búsqueda.
Para obtener más información sobre la tokenización, consulte Tokenization queries.
Cantidad de índices de búsqueda por tabla
De forma predeterminada, cada tabla ancha admite un índice de búsqueda. Para crear varios índices de búsqueda en la misma tabla, consulte Multiple search indexes for a single table (Public Preview).
Tiempo de vida (TTL)
El comportamiento del TTL de los índices de búsqueda depende de si la tabla base tenía un TTL configurado al momento de crear el índice:
|
TTL de la tabla base al momento de la creación |
Comportamiento del índice de búsqueda |
|
Configurado |
Hereda el TTL de la tabla base durante la creación |
|
No configurado |
Adopta el TTL de la tabla base la primera vez que usted establece un TTL en dicha tabla |
En ambos casos, los cambios posteriores en el TTL de la tabla base no afectan el TTL del índice de búsqueda. Para modificar el TTL de un índice de búsqueda de manera independiente, comuníquese con el soporte técnico de Lindorm (ID de DingTalk: s0s3eg3).
Un proceso en segundo plano se encarga de aplicar la expiración del TTL. Por lo tanto, los datos vencidos pueden permanecer disponibles durante un breve periodo después de que expire su TTL.
Varias versiones de datos
Los índices de búsqueda no admiten varias versiones para los datos de las columnas de clave del índice.
Marcas de tiempo personalizadas
De forma predeterminada, Lindorm genera una marca de tiempo en milisegundos para cada fila de datos. Esta marca funciona como la versión de los datos.
Antes de escribir datos con marcas de tiempo personalizadas en una tabla ancha que tiene un índice de búsqueda, establezca el atributo MUTABILITY de la tabla en MUTABLE_ALL.
Para establecer el atributo MUTABILITY:
-
HBase Shell:
ALTER 'testTable', MUTABILITY=> 'MUTABLE_ALL' -
Lindorm SQL:
ALTER TABLE testTable SET 'MUTABILITY' = 'MUTABLE_ALL';
El valor predeterminado de MUTABILITY es MUTABLE_LATEST. Para conocer los detalles sobre los tipos de mutabilidad, consulte Key concepts.
Después de establecer MUTABILITY en MUTABLE_ALL, especifique una marca de tiempo personalizada al escribir los datos:
-
Cliente de 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);
Los métodos disponibles para especificar marcas de tiempo personalizadas varían según el cliente.
Si encuentra algún problema, envíe un ticket.