Adicione um índice de busca a um índice Lastpoint para aplicar filtros multidimensionais, consultas geográficas e agregações aos dados mais recentes de séries temporais. Essas operações não são possíveis apenas com o índice Lastpoint.
Por que usar um índice de busca em um índice Lastpoint
Um índice Lastpoint armazena apenas o ponto de dados mais recente de cada série temporal. Em um cenário de Internet dos Veículos (IoV), por exemplo, o índice Lastpoint contém uma linha por veículo com as últimas coordenadas GPS reportadas, velocidade, status e quilometragem.
A tabela a seguir apresenta dados de amostra de um índice Lastpoint para uma frota de veículos:
|
_#h |
_m_name |
_data_source |
_tags |
_time |
gps |
speed |
status |
total_mileage |
remaining_mileage |
|
4c#PlatformA#07 |
Platform A |
sensor1 |
["region=hangzhou","car_model=sedan","number_plate=ZheA D7512*","color=white"] |
1730423400000000 |
30.245853,120.178564 |
0 |
Idle |
20000 |
450 |
|
25#PlatformA#ae |
Platform A |
sensor2 |
["region=hangzhou","car_model=suv","number_plate=ZheC 72B2*","color=black"] |
1730779800000000 |
30.245853,120.213654 |
80 |
Active |
15050 |
250 |
|
b2#PlatformB#4b |
Platform B |
sensor3 |
["region=hangzhou","car_model=sedan","number_plate=ZheB 121*9","color=blue"] |
1730862600000000 |
30.246022,120.124460 |
0 |
Idle |
18230 |
270 |
Sem um índice de busca, você só pode recuperar uma linha pela chave primária (_#h). Para responder a perguntas como "quais veículos estão ociosos no momento com mais de 300 km de autonomia restante", seria necessário varrer todas as linhas e filtrar na camada da aplicação. Esse processo é lento e caro em grande escala.
Um índice de busca criado sobre um índice Lastpoint oferece suporte a índices invertidos e armazenamento colunar, permitindo:
Consultas sem chave primária: filtre por qualquer coluna de atributo, como status do veículo ou autonomia restante.
Buscas booleanas, aproximadas e de texto completo: combine condições com os operadores AND, OR e NOT.
Consultas geográficas: localize registros dentro de uma área geográfica específica.
Consultas vetoriais k-vizinhos mais próximos (KNN): busque por similaridade em campos vetoriais.
-
Agregações: calcule estatísticas de máximo, mínimo, contagem e agrupamento nos pontos de dados mais recentes.
NotaEste tópico apresenta um cenário de exemplo de uso de um índice de busca para recuperar dados de um índice Lastpoint. Para mais detalhes, consulte Appendix: Sample scenario. Para saber mais sobre os recursos e as capacidades dos índices de busca, veja Search index.
Pré-requisitos
Antes de começar, verifique se você já criou um índice Lastpoint para a tabela de séries temporais. Para mais informações, consulte Create a LastPoint index.
Gerenciar índices de busca e consultar dados
Gerencie os índices de busca e consulte dados na seção LastPoint Index da página Manage Time Series Table.
Criar um índice de busca
-
Acesse a página Instance Management.
Faça login no console do Tablestore.
Na barra de navegação superior, selecione um grupo de recursos e uma região.
Na página Overview, clique em nome da instância ou em Manage Instance na coluna Actions.
-
Acesse a página Manage Time Series Table.
Na página Instance Management, clique em aba Time Series Tables.
Na aba Time Series Tables, clique em nome da tabela de séries temporais ou em Manage Data na coluna Actions.
-
Crie um índice de busca para o índice Lastpoint.
Na seção LastPoint Index da aba Basic Information, clique em Create Search Index na coluna Search Index do índice Lastpoint.
-
Na caixa de diálogo Create Search Index, configure os parâmetros do índice de busca.
Neste exemplo, o nome da tabela é demo_lastpoint e o nome do índice é demo_lastpoint_search_index. Os campos gerados automaticamente são:
_#h(String)_m_name(String)_data_source(String)cpu_sys(Double)cpu_usage(Double)_time(Long)
Mantenha o nome padrão do índice ou insira um nome conforme sua necessidade.
-
Selecione o método de geração de esquema.
ImportanteOs valores de Field Name e Field Type devem corresponder exatamente aos nomes e tipos dos campos no índice Lastpoint. Para visualizar o mapeamento entre tipos de campo em índices Lastpoint e índices de busca, consulte Data types.
Se você definir Schema Generation Type como Manual, insira o nome do campo, selecione o tipo e especifique se deseja ativar Array.
Se você definir Schema Generation Type como Auto Generate, o sistema usará os campos do índice Lastpoint como campos de índice. Selecione o tipo de campo e especifique se deve ativar Array conforme necessário.
NotaColunas virtuais permitem mapear colunas da tabela para uma ou mais colunas virtuais em um índice de busca sem alterar o esquema da tabela. Use-as para acelerar consultas ou aplicar diferentes métodos de tokenização. Para mais informações, consulte Virtual columns.
-
Para configurar o tempo de vida (TTL), a chave de roteamento e a pré-ordenação, ative Advanced Settings. A tabela a seguir descreve esses parâmetros.
Parâmetro
Descrição
Chave de roteamento
Campos de roteamento usados para controlar a distribuição de dados. Selecione uma ou mais colunas de chave primária. Registros com os mesmos valores de campo de roteamento ficam na mesma partição de dados. Geralmente, um único campo de roteamento é suficiente. Se você especificar vários campos, seus valores serão concatenados para formar a chave de partição.
Tempo de vida
Período de retenção dos dados no índice de busca. Unidade: segundos. Valor padrão: -1 (os dados nunca expiram).
O TTL deve ser de pelo menos 86.400 segundos (um dia) ou -1. O Tablestore exclui automaticamente os dados que excedem o TTL.
Pré-ordenação
Ordem de classificação padrão para os dados retornados. Valores válidos: Default (ordenado pela chave primária) e Custom (ordenado por um campo especificado por você).
ImportanteÍndices de busca que contêm campos Nested não suportam pré-ordenação.
Clique em OK.
Consultar dados usando um índice de busca
Na seção LastPoint Index da aba Basic Information, clique em Manage Data na coluna Search Index do índice Lastpoint.
-
Na caixa de diálogo Search, consulte os dados.
-
Por padrão, o sistema retorna todas as colunas. Para retornar apenas colunas de atributos específicas, desative All Columns no parâmetro Columns to Return e insira as colunas desejadas. Separe múltiplas colunas por vírgulas (,).
NotaTodas as colunas de chave primária do índice Lastpoint são sempre retornadas.
-
Escolha um operador lógico: And, Or ou Not.
O operador And retorna linhas que atendem a todas as condições. O operador Or com uma única condição retorna linhas correspondentes; com múltiplas condições, retorna linhas que satisfazem pelo menos uma delas. O operador Or devolve linhas que não cumprem a condição especificada.
-
Selecione um campo de índice, clique em Not e configure os parâmetros Add e Query Type.
NotaPara especificar vários valores para um mesmo campo, clique novamente em Value no mesmo campo e defina um Add diferente.
A ordenação vem desativada por padrão. Para classificar resultados por um campo específico, ative Value, adicione os campos de ordenação e configure a ordem desejada.
A coleta de estatísticas também permanece desativada inicialmente. Para coletar estatísticas de um campo, ative Sort, adicione os campos e ajuste as configurações estatísticas.
-
Clique em Collect Statistics.
Os resultados da consulta e as estatísticas aparecem na seção Yes da aba Basic Information.
-
Gerenciar índices de busca
A tabela a seguir descreve as operações disponíveis para índices de busca.
|
Operação |
Descrição |
|
Visualizar detalhes do índice de busca |
Para visualizar informações básicas, métricas de uso, chave de roteamento, campos de índice e detalhes de pré-ordenação de um índice de busca:
|
|
Excluir um índice de busca |
Exclua um índice de busca quando ele não for mais necessário.
|
Integração com SDK
Use os seguintes SDKs do Tablestore para trabalhar com índices de busca em índices Lastpoint:
Faturamento
A criação de um índice Lastpoint é gratuita. Apenas o armazenamento e as operações de leitura nos dados do índice Lastpoint são cobrados. Para mais detalhes, consulte Billable items of the TimeSeries model.
Consultar um índice Lastpoint por meio de um índice de busca gera taxas referentes ao índice de busca. Para mais informações, veja Billable items of search indexes.
Perguntas frequentes
Apêndice: Cenário de exemplo
No cenário de Internet dos Veículos (IoV), sensores veiculares enviam dados de séries temporais para a nuvem. As aplicações armazenam, consultam e analisam essas informações para casos de uso como monitoramento de status do veículo, localização de frota e exibição de trajetórias.
A tabela a seguir mostra dados de amostra em uma tabela de séries temporais.
Neste exemplo, _m_name, _data_source e _tags são identificadores de séries temporais que especificam, respectivamente, o nome da medição, a source de dados e as informações de tag. _time representa o timestamp de reporte dos dados. Os campos gps, speed, status, total_mileage e remaining_mileage correspondem aos dados da série temporal e indicam coordenadas GPS, velocidade, status do veículo, quilometragem total e autonomia restante.
|
_m_name |
_data_source |
_tags |
_time |
gps |
speed |
status |
total_mileage |
remaining_mileage |
|
Platform A |
sensor1 |
["region=hangzhou","car_model=sedan","number_plate=ZheA D7512*","color=white"] |
1730422800000000 |
30.245853,120.178564 |
0 |
Idle |
20000 |
450 |
|
Platform A |
sensor1 |
["region=hangzhou","car_model=sedan","number_plate=ZheA D7512*","color=white"] |
1730423400000000 |
30.245853,120.178564 |
0 |
Idle |
20000 |
450 |
|
Platform A |
sensor2 |
["region=hangzhou","car_model=suv","number_plate=ZheC 72B2*","color=black"] |
1730779200000000 |
30.245278,120.150269 |
50 |
Active |
15000 |
300 |
|
Platform A |
sensor2 |
["region=hangzhou","car_model=suv","number_plate=ZheC 72B2*","color=black"] |
1730779800000000 |
30.245853,120.213654 |
80 |
Active |
15050 |
250 |
|
Platform B |
sensor3 |
["region=hangzhou","car_model=sedan","number_plate=ZheB 121*9","color=blue"] |
1730862000000000 |
30.246013,120.124470 |
60 |
Active |
18200 |
300 |
|
Platform B |
sensor3 |
["region=hangzhou","car_model=sedan","number_plate=ZheB 121*9","color=blue"] |
1730862600000000 |
30.246022,120.124460 |
0 |
Idle |
18230 |
270 |
O Tablestore sincroniza automaticamente o ponto de dados mais recente de cada série temporal para o índice Lastpoint. Os dados resultantes no índice Lastpoint aparecem na tabela da seção anterior.
Diante dos requisitos de consulta listados abaixo, crie um índice de busca sobre o índice Lastpoint para aproveitar todos os seus recursos de consulta.
Localizar veículos atualmente ociosos com mais de 300 km de autonomia restante.
Identificar veículos dentro de uma área geográfica específica.
Descobrir a velocidade máxima entre os veículos ativos no momento.
Crie um índice de busca contendo os seguintes campos:
gps,speed,statuseremaining_mileage.Use o índice de busca para consultar os dados. A tabela a seguir relaciona cada requisito à sua implementação.
|
Requisito de consulta |
Implementação |
|
Localizar veículos atualmente ociosos com mais de 300 km de autonomia restante |
Execute uma consulta de termo em |
|
Identificar veículos dentro de uma área geográfica específica |
Realize uma consulta geográfica no campo |
|
Descobrir a velocidade máxima entre os veículos ativos no momento |
Faça uma consulta de correspondência em |