O recurso de índice secundário permite consultar dados com base na chave primária de uma tabela de dados e nas colunas de índice do índice secundário criado para essa tabela. Para consultar dados usando as colunas de atributo de uma tabela de dados, crie um índice secundário para a tabela e acelere as consultas. Ao criar um índice secundário para uma tabela de dados, defina as colunas de índice ou as colunas de atributo do índice secundário como as colunas predefinidas que você especificou ao criar a tabela de dados. Após criar o índice secundário, use-o para consultar dados.
-
Os índices secundários se classificam em índices secundários globais e índices secundários locais. Para obter mais informações sobre o recurso de índice secundário, consulte Visão geral.
-
É possível criar uma ou mais tabelas de índice ao criar uma tabela de dados chamando a operação CreateTable. Para obter mais informações, consulte Criar uma tabela de dados.
Pré-requisitos
-
Uma instância do OTSClient foi inicializada. Para obter mais informações, consulte Inicializar uma instância do OTSClient.
-
Uma tabela de dados com o parâmetro max_version definido como 1 foi criada. O parâmetro time_to_live da tabela de dados deve atender a uma das seguintes condições: Para obter mais informações, consulte Criar uma tabela de dados.
-
O parâmetro time_to_live da tabela de dados está definido como -1, o que significa que os dados na tabela nunca expiram.
-
O parâmetro time_to_live da tabela de dados está definido com um valor diferente de -1, e operações de atualização na tabela de dados são proibidas.
-
-
Colunas predefinidas foram especificadas para a tabela de dados.
Observações sobre o uso
-
O nome de uma tabela de índice deve ser diferente do nome de uma tabela de séries temporais ou tabela de dados existente.
-
Ao criar um índice secundário, o Tablestore adiciona automaticamente as colunas de chave primária da tabela de dados que não foram especificadas como colunas de índice ao índice secundário, como colunas de chave primária do índice secundário.
-
Ao criar um índice secundário local, a primeira coluna de chave primária da tabela de índice deve ser igual à primeira coluna de chave primária da tabela de dados.
Parâmetros
|
Parâmetro |
Descrição |
|
main_table_name |
O nome da tabela de dados. |
|
index_meta |
As informações de esquema da tabela de índice. O esquema contém os seguintes itens:
|
|
include_base_data |
Especifica se os dados existentes da tabela de dados devem ser incluídos na tabela de índice. Se você definir o parâmetro include_base_data como true, a tabela de índice incluirá os dados existentes. Se definir como false, a tabela de índice não incluirá os dados existentes. |
Exemplos
Criar um índice secundário global
O código de exemplo a seguir demonstra como criar um índice secundário para uma tabela de dados. Neste exemplo, as colunas de chave primária da tabela de dados são pk1 e pk2. As colunas de chave primária especificadas para o índice secundário são definedcol1 e pk1. As colunas de atributo especificadas para o índice secundário são definedcol2 e definedcol3.
# Specify the metadata of the index table.
# Specify the name, primary key columns, and attribute columns of the index table in sequence.
index_meta = SecondaryIndexMeta('<INDEX_NAME>', ['definedcol1', 'pk1'], ['definedcol2', 'definedcol3'])
# Specify the name of the data table and specify that the index table does not include the existing data of the data table.
client.create_secondary_index('<TABLE_NAME>', index_meta, False)
# Specify the name of the data table and specify that the index table includes the existing data of the data table.
# After you create the index table, the existing data of the data table is synchronized to the index table. After the existing data is synchronized, you can use the index table to query all data in the data table. The time that is required for synchronization varies based on the amount of data to synchronize.
# client.create_secondary_index('<TABLE_NAME>', index_meta, True)
Criar um índice secundário local
O código de exemplo a seguir demonstra como criar um índice secundário para uma tabela de dados. Neste exemplo, as colunas de chave primária da tabela de dados são pk1 e pk2. As colunas de chave primária especificadas para o índice secundário são definedcol1 e pk1. As colunas de atributo especificadas para o índice secundário são definedcol2 e definedcol3.
# Specify the metadata of the index table.
# Specify the name, primary key columns, attribute columns, and type of the index table in sequence.
# The first primary key column of a local secondary index must be the same as the first primary key column of the data table.
index_meta = SecondaryIndexMeta('<INDEX_NAME>', ['pk1', 'definedcol1'], ['definedcol2', 'definedcol3'],index_type= SecondaryIndexType.LOCAL_INDEX)
# Specify the name of the data table and specify that the index table does not include the existing data of the data table.
client.create_secondary_index('<TABLE_NAME>', index_meta, False)
# Specify the name of the data table and specify that the index table includes the existing data of the data table.
# After you create the index table, the existing data of the data table is synchronized to the index table. After the existing data is synchronized, you can use the index table to query all data in the data table. The time that is required for synchronization varies based on the amount of data to synchronize.
# client.create_secondary_index('<TABLE_NAME>', index_meta, True)
Referências
-
Após criar um índice secundário, use-o para ler uma única linha de dados ou dados cuja chave primária esteja dentro de um intervalo específico. Para obter mais informações, consulte Usar um índice secundário para ler dados.
-
É possível excluir um índice secundário que não é mais utilizado. Para obter mais informações, consulte Excluir um índice secundário.