Modifique dinamicamente o esquema de um índice de pesquisa para adicionar, atualizar ou excluir colunas, bem como alterar sua chave de roteamento e o método de pré-classificação. Essa flexibilidade permite adaptar-se a novos requisitos de negócios ou otimizar o desempenho. O processo consiste em criar um índice canário com o esquema modificado, sincronizar dados, executar testes A/B com ponderação de tráfego, trocar os esquemas dos índices de origem e canário e, por fim, excluir o índice canário.
Como funciona
As tabelas de dados do Tablestore não possuem esquema fixo, mas o índice de pesquisa exige um esquema rígido. Ao criar esse índice, defina quais colunas serão indexadas para consulta. A modificação do esquema é frequentemente necessária para suportar mudanças nos negócios ou ajustes de desempenho. Os cenários comuns incluem:
Adicionar colunas de índice: À medida que o negócio evolui, consulte colunas adicionais conforme necessário.
Atualizar colunas de índice: Altere propriedades como tipo de coluna, colunas virtuais, configurações de array, analisadores ou formatos de data.
Excluir colunas de índice: Remova colunas desnecessárias para consultas.
Modificar a chave de roteamento: Uma chave de roteamento bem definida reduz a amplificação de leitura e melhora o desempenho da consulta.
Modificar a pré-classificação: Se a ordem de classificação dos dados na consulta corresponder à configuração de pré-classificação do índice, a velocidade da consulta aumentará.
Fluxo de trabalho
Devido ao comportamento dinâmico, não utilize este índice temporário para consultas. Caso este recurso não atenda às suas necessidades, envie um ticket para entrar em contato conosco.
A figura a seguir ilustra o fluxo de trabalho para modificar dinamicamente um esquema. Todo o processo é transparente para sua aplicação, permitindo alterar o esquema sem modificar o código da aplicação.
A tabela a seguir descreve as principais etapas para modificar o esquema de um índice de pesquisa.
|
Etapa |
Ações |
Descrição |
|
1 |
Criar um índice canário |
Crie um índice canário para o índice de origem e defina seu novo esquema adicionando, modificando ou excluindo colunas conforme necessário. |
|
2 |
Verificar o progresso de sincronização do índice |
Antes de prosseguir, aguarde até que todos os dados existentes e incrementais sejam sincronizados e o progresso do índice canário corresponda ao do índice de origem. |
|
3 |
Definir pesos para testes A/B |
Os testes A/B permitem distribuir o tráfego de consultas entre os índices de origem e canário para validar o novo esquema. Redirecione gradualmente o tráfego para o índice canário até que ele processe 100% do tráfego de consultas. |
|
4 |
Trocar esquemas de índice |
Após redirecionar todo o tráfego de consultas para o índice canário, troque os esquemas do índice de origem e do índice canário. Após a troca, o nome do índice de origem aponta para o novo esquema, enquanto o nome do índice canário aponta para o antigo. Todo o tráfego de consultas passa a ser direcionado ao nome do índice de origem, que agora utiliza o novo esquema. |
|
5 |
Excluir o índice canário |
Depois de trocar os esquemas e verificar se o índice funciona conforme o esperado, aguarde um período de estabilização (por exemplo, um dia) antes de excluir o índice canário. |
Procedimento
-
Acesse a aba Indexes.
Faça login no console do Tablestore.
Na barra de navegação superior, selecione uma região e um grupo de recursos.
Na página Overview, clique em no nome da instância ou em Manage Instance na coluna Actions.
Na aba Instance Details, na área Tables, clique em no nome da tabela de dados ou em Indexes na coluna Actions.
-
Crie um índice canário com base no índice de origem.
Na aba Indexes, localize o índice de pesquisa e clique em Change Schema na coluna Actions.
-
Na caixa de diálogo Reindex, adicione, modifique ou exclua campos de índice conforme necessário.
A caixa de diálogo Reindex contém os seguintes itens de configuração:
Informações básicas do índice: Index Type (por exemplo, índice de pesquisa), Instance Name, Table Name (por exemplo,
exampletable), Index Name (por exemplo,exampletable_index) e Canary Index Name (por exemplo,exampletable_index_reindex).Tabela de configuração de campos: Cada linha permite definir as propriedades Field Name, Field Type, Index Parameters, Array, Highlight e Virtual Column. Clique em no botão + para adicionar um campo ou no ícone de exclusão para remover um campo.
Na parte inferior, está disponível o alternador Advanced Settings. Após concluir a configuração, clique em OK.
-
Para modificar a chave de roteamento ou o método de pré-classificação, ative Advanced Settings e configure os parâmetros descritos na tabela a seguir.
Parâmetro
Descrição
Chave de roteamento
Especifica campos de roteamento personalizados. Selecione uma ou mais colunas de chave primária como campos de roteamento.
Quando os dados são gravados no índice, o sistema usa o valor da chave de roteamento para determinar a distribuição dos dados. Registros com o mesmo valor de chave de roteamento são indexados na mesma partição. Para obter mais informações, consulte Usar campos de roteamento em um índice de pesquisa.
Pré-classificação
Método de classificação padrão para dados no índice de pesquisa. A pré-classificação determina a ordem padrão em que os resultados da consulta são retornados. Para obter mais informações, consulte Pré-classificação de índice.
-
Para classificar por chave primária, selecione Default.
-
Para classificar por valores de campo ou uma combinação de colunas de chave primária, selecione Custom e defina as configurações.
-
Selecione um tipo de classificação, como Primary Key Pre-sorting ou Field Pre-sorting, e clique em Add.
-
Selecione o nome do campo e a ordem de classificação.
As ordens de classificação suportadas são ascendente e descendente.
ImportanteA seleção de um nome de campo é obrigatória apenas se você escolher Field Pre-sorting.
Ao usar a classificação personalizada, configure tanto a pré-classificação por chave primária quanto a pré-classificação por campo conforme necessário.
-
-
Clique em OK.
Na caixa de diálogo Index Comparison, revise a comparação da chave de roteamento, pré-classificação e esquema entre os índices de origem e canário. Após confirmar que as informações estão corretas, clique em Yes.
-
Verifique as informações de sincronização do índice.
-
Clique em no ícone
ao lado do índice de origem ou clique em no nome do índice de origem.O índice canário correspondente ao índice de origem será exibido.
-
Clique em Use Gray Index na coluna Actions do índice canário.
ImportanteO índice canário passa por uma fase de sincronização completa de dados e uma fase de sincronização incremental de dados.
Antes da conclusão da sincronização de dados, ao passar o ponteiro sobre o botão Use Gray Index na coluna Actions, uma dica de ferramenta indicando Yes, but the operation may cause security risks. aparece e a troca fica desabilitada.
Quando o índice canário estiver sincronizado com o índice de origem, ao passar o ponteiro sobre o botão Use Gray Index na coluna Actions, uma dica de ferramenta indicando Yes. The operation is secure. aparece. Nesse momento, prossiga com as próximas etapas.
-
Na caixa de diálogo Use Gray Index, visualize as informações de sincronização do índice.
A parte superior da caixa de diálogo exibe o Data Status (Synchronizing) e o Switchover Status (Safe to switch). As informações do índice aparecem em duas colunas, referentes ao índice de origem e ao índice canário. Cada coluna contém os seguintes campos:
Sync Status
Rows
Created At
Last Sync Time
Sync Latency
Data Lifecycle
Na parte inferior, na área Actions, use os controles deslizantes para ajustar os pesos de tráfego do source index e do canary index. Em seguida, clique em Set Weight para salvar a configuração ou em Switch Index para concluir a troca de índice.
-
-
Após a conclusão da sincronização, execute testes A/B definindo pesos de tráfego.
Utilize testes A/B para validar o novo esquema distribuindo o tráfego de consultas entre os índices de origem e canário. É necessário redirecionar todo o tráfego para o índice canário antes de prosseguir para a próxima etapa.
Na seção Operations da caixa de diálogo Use Gray Index, arraste o controle deslizante para ajustar os pesos dos índices de origem e canário e clique em Set Weight.
Na caixa de diálogo Set Weight, revise os dados de peso e a comparação de esquemas.
Após confirmar que as informações estão corretas, clique em Set Weight.
Na caixa de diálogo de confirmação exibida, clique em Yes.
-
Depois de redirecionar todo o tráfego de consultas para o índice canário, troque os esquemas dos índices de origem e canário.
Após a troca, o nome do índice de origem aponta para o novo esquema, e o nome do índice canário aponta para o antigo. Todo o tráfego de consultas passa a ser direcionado ao nome do índice de origem, que agora utiliza o novo esquema.
Na caixa de diálogo Use Gray Index, confirme se o status dos dados é In canary release, o status de troca é Yes. The operation is secure., o peso do índice de origem é 0 e o peso do índice canário é 100. Em seguida, clique em Switch Index.
Na seção Operations da caixa de diálogo Use Gray Index, clique em Switch Index.
Na caixa de diálogo Switch Index, revise a comparação da chave de roteamento, pré-classificação e esquema entre os índices de origem e canário. Após confirmar que as informações estão corretas, clique em Confirm Switch.
-
Depois de trocar os esquemas e verificar se o índice funciona conforme o esperado, aguarde um período de estabilização (por exemplo, um dia) antes de excluir o índice canário.
Confirme se a caixa de diálogo Use Gray Index mostra o status dos dados como Released, o status de troca como Yes. The operation is secure., e a área Actions mostra o tráfego do source index em 100 e o tráfego do canary index em 0.
Na caixa de diálogo Use Gray Index, clique em Delete Canary Release.
Na caixa de diálogo Are you sure you have completed the canary release and want to delete the old index?, confirme se as informações sobre o índice canário a ser excluído estão corretas. Em seguida, na caixa de texto, insira
I have confirmed that the new index data has been synchronized and has been in canary release for a period of time.Clique em Yes.
Salvaguardas
Para garantir a segurança operacional, o Tablestore oferece um mecanismo de reversão e alertas de troca para minimizar riscos durante a modificação do índice.
-
Mecanismo de reversão
Etapas fundamentais no processo de modificação dinâmica de esquema suportam reversões.
Após criar um índice canário, caso identifique que seu esquema está incorreto, exclua-o e crie um novo.
Durante os testes A/B, redirecione gradualmente o tráfego para o índice canário ajustando os pesos de tráfego. Se encontrar problemas, redirecione o tráfego de volta para o índice de origem a qualquer momento redefinindo os pesos.
Após trocar os esquemas, caso encontre problemas, execute uma operação de Cancel Switchover a qualquer momento para reverter para o esquema do índice de origem. As operações Switch Index e Cancel Switchover são inversas entre si.
-
Alertas de troca
Redirecionar o tráfego para o índice canário antes que ele esteja totalmente sincronizado com o índice de origem pode fazer com que as consultas retornem dados desatualizados. O Tablestore determina se é "seguro trocar" com base no status de sincronização e na última hora de sincronização de ambos os índices.
O Tablestore determina que uma troca é Yes. The operation is secure. nas seguintes condições:
O índice de origem está na fase de sincronização completa e o índice canário está na fase completa ou incremental, indicando que o índice canário alcançou o índice de origem.
Tanto o índice de origem quanto o canário estão na fase de sincronização incremental, e a última hora de sincronização do índice canário não está mais de 60 segundos atrasada em relação à última hora de sincronização do índice de origem.
Faturamento
Não há cobrança pela criação de índices canário ou pela gravação de dados neles. A cobrança refere-se ao armazenamento consumido por ambos os índices e a quaisquer CUs de leitura reservadas provisionadas para eles. Para obter mais informações, consulte Itens faturáveis de índices de pesquisa.
Documentos relacionados
Para consultar novos campos ou tipos de dados sem alterar a estrutura da tabela, modifique o esquema do índice de pesquisa ou utilize o recurso de colunas virtuais ao criar um novo índice de pesquisa. Para obter mais informações, consulte Colunas virtuais.
O Tablestore suporta vários tipos de consulta para diferentes cenários, incluindo Consulta MatchAll, Consulta Match, Consulta Match Phrase, Consulta Term, Consulta Terms, Consulta Wildcard, Consulta Prefix, Consulta Suffix, consulta wildcard baseada em tokenização, Consulta Range, Consulta Bool, Consulta Nested, Consulta Geo-distance, Consulta Geo-bounding box, Consulta Geo-polygon, Consulta Exists, Collapse (distinct) e Colunas virtuais para consultar seus dados.
Para consultar rapidamente dados de diferentes tipos em um índice de pesquisa usando instruções SQL, utilize o recurso de consulta SQL. Para obter mais informações, consulte Consulta SQL, Criar tabelas de mapeamento para índices de pesquisa, Consultar dados, Pesquisa de texto completo, Tipo Array, Tipo Nested e Colunas virtuais.
Utilize o recurso de agregação de índice de pesquisa para realizar análises de dados, como encontrar mínimos, máximos, somas e médias, contar linhas, realizar contagens distintas, calcular percentis, agrupar por valor de campo, intervalo, geolocalização ou condições de filtro, criar histogramas ou executar consultas aninhadas. Para obter mais informações, consulte Agregação.