O recurso de índice secundário permite consultar dados pelas colunas de chave primária de uma tabela de dados e pelas colunas de índice de um índice secundário. Para acelerar consultas em colunas de atributo, crie um índice secundário para a tabela de dados. Ao criar um índice secundário, defina suas colunas de índice ou colunas de atributo como colunas predefinidas especificadas durante a criação da tabela.
Os índices secundários dividem-se em globais e locais. Para mais informações, consulte Visão geral.
Você também pode criar tabelas de índice ao criar uma tabela de dados chamando a operação CreateTable. Para mais informações, consulte Criar tabelas de dados.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
-
Uma tabela de dados com
maxVersionsdefinido como1. O parâmetrotimeToLiveda tabela de dados deve atender a uma das seguintes condições:timeToLivedefinido como-1, indicando que os dados nunca expiram.timeToLivedefinido com um valor diferente de-1e operações de atualização proibidas na tabela de dados.
Colunas predefinidas especificadas para a tabela de dados.
Observações de uso
O Tablestore SDK for .NET oferece suporte apenas a índices secundários globais. Para criar um índice secundário local, use o Tablestore SDK para outra linguagem de programação, o console do Tablestore ou o Tablestore CLI.
O nome da tabela de índice deve ser diferente de qualquer nome existente de tabela de séries temporais ou tabela de dados.
Ao criar um índice secundário, o Tablestore adiciona automaticamente as colunas de chave primária da tabela de dados não especificadas como colunas de índice ao índice secundário como colunas de chave primária.
Parâmetros
|
Parâmetro |
Descrição |
|
mainTableName |
Nome da tabela de dados. |
|
indexMeta |
Esquema da tabela de índice. Este parâmetro contém os seguintes campos:
|
Exemplos
O exemplo a seguir cria um índice secundário global que exclui dados existentes da tabela de dados. A tabela de dados possui duas colunas de chave primária: pk1 e pk2. A coluna de índice é col1 e a coluna de atributo é col2. A tabela de índice resultante terá três colunas de chave primária (col1, pk1 e pk2) e uma coluna de atributo (col2).
public static void CreateGlobalIndex(OTSClient otsClient, String TableName, String IndexName)
{
Console.WriteLine("Start create globalIndex...");
IndexMeta indexMeta = new IndexMeta(IndexName);
// Specify a primary key column for the index table.
indexMeta.PrimaryKey = new List<string>() { "col1" };
// Specify an attribute column for the index table.
indexMeta.DefinedColumns = new List<string>() { "col2" };
//indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
//indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;
CapacityUnit reservedThroughput = new CapacityUnit(0, 0);
CreateGlobalIndexRequest request = new CreateGlobalIndexRequest(TableName, indexMeta);
otsClient.CreateGlobalIndex(request);
Console.WriteLine("Global Index is created,tableName: " + TableName + ",IndexName:" + IndexName);
}
Próximos passos
Após criar um índice secundário, leia uma única linha ou um intervalo de linhas usando o índice. Para mais informações, consulte Usar um índice secundário para ler dados.
Para remover um índice secundário desnecessário, consulte Excluir um índice secundário.