Ir al contenido principal
Producto

Acelera las consultas de búsqueda con índices de búsqueda de texto completo en Databricks

Los índices de búsqueda de texto completo pueden acelerar las consultas 100 veces o más en tablas de formato abierto, sin cambiar el diseño de las tablas

por Yu Xu, Yingyi Bu y Ivan Vezilić

  • Databricks presenta los índices de búsqueda de texto completo en versión Beta: crea un índice con una instrucción SQL y tus consultas de subcadenas y palabras clave se acelerarán, sin necesidad de sugerencias de consulta ni cambios en la aplicación.
  • Los equipos que ejecutan búsquedas de texto completo en sus entornos de producción están experimentando una aceleración de más de 100 veces en las consultas de búsqueda de subcadenas en tablas a escala de petabytes, lo que ha desbloqueado nuevos casos de uso en Databricks.
  • Ya disponible en Databricks Runtime 18.2 para tablas administradas por Unity Catalog, con mantenimiento automático de índices a través de Predictive Optimization a partir de la versión 18.3.

Todos los equipos de datos se enfrentan al mismo desafío a medida que las tablas crecen a cientos de gigabytes, terabytes o más: las consultas de búsqueda de texto se vuelven extremadamente lentas, ya sea al buscar un mensaje de error en terabytes o petabytes de registros de aplicaciones, al encontrar una dirección IP sospechosa en datos de seguridad o al localizar contenido específico en un conjunto de datos de cumplimiento normativo. Estas consultas pueden terminar escaneando muchos más datos de los necesarios, lo que dificulta las búsquedas rápidas y dirigidas a gran escala. Hoy nos complace anunciar una solución a estos desafíos: los índices de búsqueda de texto completo ya están disponibles en versión Beta en Databricks Runtime 18.2.

A menudo, los equipos se ven obligados a buscar soluciones alternativas: mantener tablas duplicadas, crear sistemas de búsqueda externos como Elasticsearch o Splunk, o sobrediseñar la estructura de las tablas para optimizar un patrón de consulta a expensas de otros.

image2.png

¿Qué son los índices de búsqueda de texto completo?

Un índice de búsqueda de texto completo acelera las consultas de subcadenas y palabras clave en columnas de texto. Una vez que creas uno, el motor de consultas lo utiliza automáticamente, por lo que las búsquedas que antes escaneaban una tabla entera ahora solo leen una pequeña fracción de ella. (A continuación explicamos cómo funciona).

Los índices de búsqueda de texto completo son ideales para búsquedas de alta cardinalidad y para buscar en muchas columnas de texto a la vez. Algunos ejemplos comunes son:

  • Análisis de registros y SIEM (gestión de eventos e información de seguridad): búsqueda de mensajes de error, direcciones IP o patrones sospechosos en terabytes de registros de seguridad y aplicaciones.
  • Investigaciones de Confianza y Seguridad: búsqueda de contenido específico en conjuntos masivos de datos de moderación de contenido.
  • Auditoría de cumplimiento normativo: localización de registros que contienen términos específicos en datos de informes regulatorios.

Comienza con solo una instrucción SQL:

A partir de ahí, las consultas se aceleran automáticamente:

El motor de consultas detecta el índice de búsqueda y lo utiliza para omitir la gran mayoría de los archivos, lo que a menudo acelera las consultas en varios órdenes de magnitud.

Cómo funciona internamente

Los índices de búsqueda de texto completo se almacenan por separado de la tabla base. Cuando creas un índice, Databricks tokeniza el contenido del texto y crea un índice interno: una estructura de búsqueda compacta que asigna tokens a las filas coincidentes. En el momento de la consulta, el motor consulta este índice para identificar qué archivos podrían contener filas coincidentes y luego lee solo esos archivos.

image3.png

Esta arquitectura ofrece varias ventajas clave:

  • Impacto cero en el rendimiento de escritura: los índices se mantienen de forma asíncrona. La escritura en la tabla base nunca se ralentiza por la indexación.
  • Optimización automática de consultas: el motor de consultas de Databricks evalúa los índices disponibles y selecciona la mejor ruta de acceso, sin necesidad de sugerencias de consulta.
  • Precisión garantizada: incluso cuando un índice está desactualizado (por detrás de la tabla base), se preserva la precisión de la consulta. Databricks escanea tanto las partes indexadas como las no indexadas de la tabla según sea necesario, por lo que los resultados siempre son completos y precisos.
  • Funciona con Delta e Iceberg: los índices de búsqueda de texto completo admiten tablas Delta e Iceberg administradas por Unity Catalog tanto en computación serverless como clásica.

¿Cómo se relacionan los índices de búsqueda de texto completo con Liquid Clustering?

Liquid Clustering y los índices de búsqueda de texto completo resuelven problemas diferentes. Liquid Clustering organiza tus datos físicamente para que las consultas que filtran por la clave de clustering puedan omitir grandes bloques de datos de manera eficiente. El clustering ayuda con los filtros de igualdad y rango en los valores de las columnas, pero no puede ayudar a localizar una subcadena o palabra clave dentro de un campo.

Por el contrario, los índices de búsqueda de texto completo buscan dentro del texto de los valores de las columnas, lo que permite realizar búsquedas rápidas de subcadenas y palabras clave. Esto significa que los índices de búsqueda de texto completo aceleran las consultas incluso en columnas en las que ya has aplicado clustering, ya que el clustering por sí solo no puede encontrar una coincidencia dentro del contenido de un campo.

En resumen, Liquid Clustering optimiza el filtrado por valores de columna; los índices de búsqueda de texto completo optimizan la búsqueda dentro de los valores de columna. Se complementan entre sí y funcionan juntos en la misma tabla.

Resultados de rendimiento de los clientes

Un equipo de Confianza y Seguridad adoptó los índices de búsqueda de texto completo para realizar investigaciones en una tabla a escala de petabytes.

Una búsqueda de subcadena que antes tenía que escanear toda la tabla ahora se ejecuta más de 100 veces más rápido, lo que hace que las investigaciones interactivas sean viables por primera vez.

Estamos trabajando activamente en diseños de índices más eficientes y otras optimizaciones para ofrecer una velocidad aún mayor en las próximas versiones.

Primeros pasos

Los índices de búsqueda de texto completo están disponibles en versión Beta en Databricks Runtime 18.2. Para comenzar, consulta la documentación de los índices de búsqueda de texto completo.

Próximos pasos

El próximo hito para los índices de búsqueda de texto completo es la versión 18.3, en la que puedes esperar:

  • Integración total con Unity Catalog con herencia automática de permisos.
  • Mantenimiento automático a través de Predictive Optimization: se acabó el REFRESH INDEX manual. Tus índices se mantienen actualizados automáticamente.

Queremos conocer tus comentarios durante el período Beta. Prueba hoy mismo los índices de búsqueda de texto completo en tus cargas de trabajo y ayúdanos a dar forma al lanzamiento de la versión Public Preview.

(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original

Recibe las últimas publicaciones en tu bandeja de entrada

Suscríbete a nuestro blog y recibe las últimas publicaciones directamente en tu bandeja de entrada.