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ć
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.

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:
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.
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.

Esta arquitectura ofrece varias ventajas clave:
¿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.
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.
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:
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
Suscríbete a nuestro blog y recibe las últimas publicaciones directamente en tu bandeja de entrada.