L'implémentation des index secondaires via l'API HBase présente des limites connues et n'est pas recommandée. Privilégiez l'utilisation des index secondaires par le biais de Lindorm SQL.
ApsaraDB for HBase Performance-enhanced Edition propose des index secondaires natifs, qui vous permettent d'interroger les données d'une table sur n'importe quelle colonne sans effectuer de balayage complet de la table.
Limites des requêtes basées uniquement sur la rowkey
HBase stocke les lignes dans l'ordre binaire selon la rowkey (clé primaire). Cette approche rend les balayages de lignes, les balayages par préfixe et les balayages par plage rapides et efficaces, tant que votre requête s'appuie sur la rowkey.
Lorsque vous devez interroger une colonne autre que la rowkey, HBase ne dispose d'aucun chemin direct vers les lignes correspondantes. En l'absence d'index secondaire, la base de données applique soit un filtre pour restreindre la plage de rowkeys, soit elle balaye l'intégralité de la table. Un balayage complet gaspille des ressources d'E/S, augmente le temps de réponse et s'adapte mal à la croissance du volume de données.
Approches pour les requêtes multicolumnes
Avant la disponibilité des index secondaires natifs, deux solutions de contournement étaient couramment utilisées :
| Approche | Fonctionnement | Inconvénient |
|---|---|---|
| Table d'index manuelle | Créez une table distincte indexée par la colonne de requête | Vous devez maintenir la synchronisation entre la table d'index et la table principale à chaque écriture |
| Moteur de recherche externe (Solr, Elasticsearch) | Exportez les données vers un cluster externe pour l'indexation | Consommation élevée de ressources pour des requêtes courantes portant sur un petit nombre de colonnes |
ApsaraDB for HBase Performance-enhanced Edition remédie à ces deux inconvénients grâce aux index secondaires natifs intégrés à ApsaraDB for HBase, offrant ainsi des coûts inférieurs à ceux des solutions de moteurs de recherche externes.
Fonctionnement des index secondaires natifs
Lorsque vous créez un index secondaire sur une colonne, les requêtes portant sur cette colonne sont résolues via l'index plutôt que par le balayage de toutes les lignes.
Les index secondaires natifs d'ApsaraDB for HBase sont conçus pour offrir un débit élevé et gérer des volumes de données importants. Cette implémentation est utilisée en production au sein du groupe Alibaba, y compris lors des festivals d'achat Double 11, depuis de nombreuses années.
Étapes suivantes
Présentation de Lindorm SQL — la méthode recommandée pour créer et utiliser des index secondaires