Ir para o conteúdo principal
Produto

Acelere consultas de busca com índices de busca em texto completo no Databricks

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ć

  • O Databricks apresenta os índices de busca em texto completo em Beta: crie um índice com uma instrução SQL e suas consultas de substring e palavras-chave serão aceleradas, sem a necessidade de dicas de consulta (query hints) ou alterações no aplicativo.
  • As equipes que executam a busca em texto completo em seus ambientes de produção estão observando uma aceleração de mais de 100 vezes nas consultas de busca de substring em tabelas em escala de petabytes, o que liberou novos casos de uso no Databricks.
  • Disponível agora no Databricks Runtime 18.2 para tabelas gerenciadas pelo Unity Catalog, com manutenção automática de índices via Predictive Optimization prevista para a versão 18.3.

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.

image2.png

O que são índices de busca em texto completo?

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:

  • Análise de logs e SIEM (Security Information and Event Management): busca por mensagens de erro, endereços IP ou padrões suspeitos em terabytes de logs de segurança e de aplicativos.
  • Investigações de Trust and Safety: localização de conteúdo específico em conjuntos de dados massivos de moderação de conteúdo.
  • Auditoria de conformidade: localização de registros que contêm termos específicos em dados de relatórios regulatórios.

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.

Como funciona por baixo dos panos

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.

image3.png

Essa arquitetura oferece várias vantagens importantes:

  • Impacto zero no desempenho de gravação: os índices são mantidos de forma assíncrona. A gravação na tabela base nunca é desacelerada pela indexação.
  • Otimização automática de consultas: o mecanismo de consulta do Databricks avalia os índices disponíveis e seleciona o melhor caminho de acesso, sem a necessidade de dicas de consulta (query hints).
  • Exatidão garantida: mesmo quando um índice está desatualizado (atrás da tabela base), a exatidão da consulta é preservada. O Databricks verifica as partes indexadas e não indexadas da tabela conforme necessário, para que os resultados sejam sempre completos e precisos.
  • Funciona com Delta e Iceberg: os índices de busca em texto completo oferecem suporte a tabelas Delta e Iceberg gerenciadas pelo Unity Catalog em computação serverless e clássica.

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.

Resultados de desempenho dos clientes

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.

Primeiros passos

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:

  • Integração total com o Unity Catalog com herança automática de permissões.
  • Manutenção automática via Predictive Optimization: sem a necessidade de REFRESH INDEX manual. Seus índices são mantidos atualizados automaticamente.

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

Receba os posts mais recentes na sua caixa de entrada

Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.