Les index de recherche dans les tables larges Lindorm présentent les limites suivantes.
Types de données pris en charge
Les colonnes d'index de recherche prennent en charge les types de données suivants : BOOLEAN, BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, STRING, CHAR, BINARY, TIMESTAMP et JSON.
Les types TIMESTAMP et JSON sont pris en charge uniquement à partir de la version 2.6.5 de Lindorm. Pour plus d'informations sur les versions et les instructions de mise à niveau, consultez les Notes de version de LindormTable ainsi que la section relative à la Mise à jour des versions mineures.
Limite de longueur des chaînes STRING
La longueur maximale d'une valeur STRING est de 8 191 caractères :
| Tokenisation | Limite appliquée à |
|---|---|
| Désactivée | La valeur STRING complète |
| Activée | Chaque terme résultant |
Si une valeur dépasse cette limite, qu'il s'agisse de la chaîne d'origine ou d'un terme tokenisé, la valeur de la colonne est exclue de l'index de recherche.
Pour en savoir plus sur la tokenisation, consultez la section relative aux Requêtes de tokenisation.
Nombre d'index de recherche par table
Par défaut, chaque table large prend en charge un seul index de recherche. Pour créer plusieurs index de recherche sur la même table, reportez-vous à la documentation sur les Index de recherche multiples pour une seule table (Public Preview).
Time to Live (TTL)
Le comportement du TTL pour les index de recherche dépend de la configuration du TTL de la table de base au moment de la création de l'index de recherche :
| TTL de la table de base lors de la création | Comportement de l'index de recherche |
|---|---|
| Configuré | Hérite du TTL de la table de base lors de sa création |
| Non configuré | Adopte le TTL de la table de base lorsque vous définissez un TTL sur celle-ci pour la première fois |
Dans les deux cas, les modifications ultérieures apportées au TTL de la table de base n'affectent pas le TTL de l'index de recherche. Pour modifier le TTL d'un index de recherche indépendamment, contactez le support technique Lindorm (ID DingTalk : s0s3eg3).
L'expiration du TTL est gérée par un processus en arrière-plan ; les données expirées peuvent donc persister brièvement après l'échéance de leur TTL.
Versions de données multiples
Les index de recherche ne prennent pas en charge plusieurs versions pour les données contenues dans les colonnes clés d'index.
Horodatages personnalisés
Par défaut, Lindorm génère un horodatage en millisecondes pour chaque ligne de données, qui sert de version des données.
Avant d'écrire des données avec des horodatages personnalisés dans une table large dotée d'un index de recherche, définissez l'attribut MUTABILITY de la table sur MUTABLE_ALL.
Pour configurer l'attribut MUTABILITY :
-
HBase Shell :
ALTER 'testTable', MUTABILITY=> 'MUTABLE_ALL' -
Lindorm SQL :
ALTER TABLE testTable SET 'MUTABILITY' = 'MUTABLE_ALL';
La valeur par défaut de MUTABILITY est MUTABLE_LATEST. Pour plus de détails sur les types de mutabilité, consultez les Concepts clés.
Après avoir défini MUTABILITY sur MUTABLE_ALL, spécifiez un horodatage personnalisé lors de l'écriture des données :
-
Client 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);
Les méthodes disponibles pour spécifier des horodatages personnalisés varient selon le client utilisé.
En cas de problème, soumettez un ticket.