Os índices de busca em texto completo podem acelerar as consultas em 100x ou mais em tabelas de formato aberto, sem alterar o layout das tabelas
por Yu Xu, Yingyi Bu e Ivan Vezilić
Toda equipe de dados enfrenta o mesmo desafio à medida que as tabelas crescem para centenas de gigabytes ou terabytes e além: as consultas de busca de texto tornam-se dolorosamente lentas, seja procurando uma mensagem de erro em terabytes ou petabytes de logs de aplicativos, encontrando um endereço IP suspeito em dados de segurança ou localizando conteúdo específico em um conjunto de dados de conformidade. Essas consultas podem acabar verificando muito mais dados do que o necessário, tornando as buscas rápidas e direcionadas um desafio em escala. Hoje, temos o prazer de anunciar uma solução para esses desafios: os índices de busca em texto completo estão disponíveis em Beta no Databricks Runtime 18.2.
As equipes costumam ser forçadas a recorrer a soluções alternativas: manter tabelas duplicadas, criar sistemas de busca externos como Elasticsearch ou Splunk, ou superdimensionar os layouts das tabelas para otimizar um padrão de consulta em detrimento de outros.

Um índice de busca em texto completo acelera consultas de substring e palavras-chave em colunas de texto. Depois de criar um, o mecanismo de consulta o utiliza automaticamente, de modo que as buscas que antes verificavam uma tabela inteira agora leem apenas uma pequena fração dela. (Explicamos como isso funciona abaixo.)
Os índices de busca em texto completo são ideais para buscas de alta cardinalidade e para pesquisar em várias colunas de texto ao mesmo tempo. Exemplos comuns incluem:
Comece a usar com apenas uma instrução SQL:
As consultas são aceleradas automaticamente:
O mecanismo de consulta descobre o índice de busca e o utiliza para ignorar a grande maioria dos arquivos, geralmente acelerando as consultas em ordens de magnitude.
Os índices de busca em texto completo são armazenados separadamente da tabela base. Quando você cria um índice, o Databricks tokeniza o conteúdo do texto e cria um índice interno: uma estrutura de busca compacta que mapeia tokens para as linhas correspondentes. No momento da consulta, o mecanismo consulta esse índice para identificar quais arquivos podem conter linhas correspondentes e, em seguida, lê apenas esses arquivos.

Essa arquitetura oferece várias vantagens importantes:
Qual é a relação entre os índices de busca em texto completo e o Liquid Clustering?
O Liquid Clustering e os índices de busca em texto completo resolvem problemas diferentes. O Liquid Clustering organiza seus dados fisicamente para que as consultas que filtram pela chave de clustering possam ignorar grandes blocos de dados com eficiência. O clustering ajuda com filtros de igualdade e intervalo em valores de coluna, mas não ajuda a localizar uma substring ou palavra-chave dentro de um campo.
Os índices de busca em texto completo, por outro lado, buscam dentro do texto dos valores das colunas, permitindo buscas rápidas de substrings e palavras-chave. Isso significa que os índices de busca em texto completo aceleram as consultas mesmo em colunas nas quais você já aplicou o clustering, pois o clustering por si só não consegue encontrar uma correspondência dentro do conteúdo de um campo.
Em resumo, o Liquid Clustering otimiza a filtragem por valores de coluna; os índices de busca em texto completo otimizam a busca dentro dos valores das colunas. Eles se complementam e trabalham juntos na mesma tabela.
Uma equipe de Trust and Safety adotou índices de busca em texto completo para investigações em uma tabela em escala de petabytes.
Uma busca de substring que antes precisava verificar a tabela inteira agora roda mais de 100 vezes mais rápido, tornando as investigações interativas viáveis pela primeira vez.
Estamos trabalhando ativamente em layouts de índice mais eficientes e outras otimizações para proporcionar uma aceleração ainda maior nos próximos lançamentos.
Os índices de busca em texto completo estão disponíveis em Beta no Databricks Runtime 18.2. Para começar, consulte a documentação dos índices de busca em texto completo.
O que vem a seguir
O próximo marco para os índices de busca em texto completo é a versão 18.3, na qual você pode esperar:
Estamos ansiosos para ouvir seu feedback durante o período Beta. Experimente os índices de busca em texto completo em suas cargas de trabalho hoje mesmo e ajude-nos a moldar o lançamento do Public Preview.
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.