Con Predictive Optimization, Databricks permite realizar la ingesta flexible de datos semiestructurados manteniendo un rendimiento de consulta similar al estructurado para lecturas 30 veces más rápidas
por Jonathan Brito, Gene Pang y Harsh Motwani
Durante años, la ingesta de datos semiestructurados como JSON, XML o CSV implicaba un compromiso difícil. Los equipos de datos podían crear canalizaciones ETL para esquematizar los datos y lograr consultas rápidas sacrificando la flexibilidad, o almacenar los datos como cadenas para mantener la flexibilidad y pagar el precio con un rendimiento de consulta lento. Para resolver este dilema, colaboramos con las comunidades de Delta y Spark para introducir el tipo de datos Variant y lo llevamos a las comunidades de Parquet e Iceberg para unificar el lakehouse como un estándar único y abierto para datos semiestructurados.
Nos complace anunciar que Variant ya está disponible de forma general en Databricks. Este lanzamiento incluye Variant Shredding, también disponible de forma general, una optimización de rendimiento que utiliza Predictive Optimization para mejorar automáticamente el rendimiento de las consultas en datos de Variant. Con Variant, los equipos pueden realizar la ingesta de datos semiestructurados de manera flexible sin comprometer el rendimiento de las consultas posteriores.
Más de 5000 equipos escriben Variant usando Databricks. Estos equipos suelen utilizar Variant para realizar la ingesta de eventos desde fuentes de streaming como Kinesis o Event Hub, cargas útiles JSON de API y datos sin esquema de bases de datos como PostgreSQL y MongoDB.
Variant es especialmente útil para gestionar los cambios de esquema de las fuentes de ingesta. Por ejemplo, una aplicación de origen puede cambiar sus tipos de API. Esto obliga a los equipos de destino a apresurarse para actualizar las canalizaciones pertinentes, realizar cargas retrospectivas de datos existentes y gestionar la transición. Peor aún, la mayoría de las empresas cuentan con plataformas de datos y equipos de aplicaciones independientes, lo que hace que estos cambios de esquema sean impredecibles. Con Variant, los usuarios pueden realizar la ingesta de todos sus datos semiestructurados de manera flexible en sus tablas.

Variant elimina el coste inicial de trabajar con datos semiestructurados. Crear canalizaciones para esquematizar datos requiere tiempo, lo que obliga a los ingenieros de datos a justificar su inversión de tiempo. Variant cambia el paradigma: los equipos pueden almacenar los datos primero sin esfuerzo y luego determinar su utilidad para el resto de la empresa.
Los usuarios de Databricks ejecutan más de 500 millones de consultas de Variant al mes en más de 160 TB de datos de Variant. Databricks hace que la lectura de Variant sea tan rápida como la lectura de datos esquematizados en tablas administradas. Mediante el uso de Shredding, Variant almacena campos comunes como columnas en los archivos Parquet subyacentes. Predictive Optimization se entrena con la carga de trabajo y los patrones de consulta únicos de un usuario y, mediante el aprendizaje automático, identifica los campos fragmentados más críticos y recopila estadísticas sobre ellos para mejorar la omisión de archivos (file skipping). Como resultado, Databricks solo escanea los archivos y las columnas necesarios para una consulta, lo que evita el trabajo innecesario y mejora el rendimiento.
La fragmentación de Variant (Variant shredding) ofrece lecturas casi 4 veces más rápidas que Variant sin fragmentar, y lecturas 30 veces más rápidas que almacenar JSON como una cadena:

Con Variant, Databricks ofrece un rendimiento ultrarrápido a escala:
Necesitamos consultar registros de seguridad que no son simples registros planos, sino estructuras JSON complejas que son difíciles de buscar de manera eficiente. El soporte de Variant en Databricks, combinado con la fragmentación, permite realizar consultas de alto rendimiento de atributos profundamente anidados, incluso a escala de petabytes.

— Russell Leighton, arquitecto jefe
Con Databricks, puedes usar Variant en toda tu infraestructura de datos.
Nuestros usuarios suelen utilizar dos herramientas para realizar la ingesta de datos semiestructurados como Variant:
Ambos enfoques de ingesta escriben datos en Delta o Iceberg, lo que permite que cualquier cliente interactúe con los datos en el lakehouse. Para simplificar la configuración, utiliza Genie Code en el editor de Lakeflow Pipelines para generar fácilmente canalizaciones de ingesta de Auto Loader mediante lenguaje natural.

A continuación, los equipos pueden consumir directamente los datos de Variant en el Lakehouse. Dado que los datos se fragmentan de forma inteligente durante el proceso de ingesta, los paneles de control y los informes pueden consultar los datos directamente con la misma rapidez que los datos estructurados.
En un futuro cercano, planeamos expandir aún más el soporte de Variant para incluir Liquid Clustering por campos de Variant, funciones SQL ampliadas y más integraciones de características.
Con Variant, ya no tienes que elegir entre flexibilidad y rendimiento al utilizar datos semiestructurados. Databricks utiliza Predictive Optimization, que realiza un seguimiento de la carga de trabajo y los patrones de consulta, para escribir automáticamente datos de Variant y obtener el mejor rendimiento en todos los productos.
Comenzar a usar Variant es fácil: pruébalo aquí.
(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.