Updated on 2024-04-29 GMT+08:00

Introduction

Scenario

HBase secondary indexes can accelerate conditional queries with filters. There are local secondary indexes (LSIs, also called HIndexes) and global secondary indexes (GSIs). Compared with LSIs, GSIs have better query performance and are suitable for scenarios that require low read latency.

HBase GSIs use independent index tables to store index data. When a given query condition hits an index, a full table query is converted into an exact range query on an index table. This way, query speed is greatly improved. You do not need to modify your application code to enable HBase GSIs.

HBase GSIs cannot be created for a table that contains data.

Key features of HBase GSIs are as follows:

  • Composite index

    Multiple columns of different column families can be specified as index columns.

  • Covering index

    Multiple columns or column families can be stored in the index table in redundancy to cover all data needed for a query. With covering indexes, you can quickly query non-index columns in index query.

  • Index TTL

    Index table TTL takes effect if data table TTL is enabled. To ensure consistency with the data table, the index table TTL is automatically inherited from the index column and the column to overwrite an index of the data table and cannot be specified.

  • Online index change

    Indexes can be created, deleted, and their status can be modified online without affecting data table read and write.

  • Online index repair

    If the index data hit by a query is invalid, index data rebuilding is triggered to ensure that the final query result is correct.

  • Index tool

    The index tool helps you to check consistency, repair, create, and delete indexes, modify index status, and rebuild index data.