Consulta de los conjuntos de datos de Apache Hudi
Apache HudiUpsert
se refiere a la capacidad de insertar registros en un conjunto de datos si aún no existen o de actualizarlos en caso de que ya estén presentes.
Hudi gestiona los eventos de inserción y actualización de datos sin crear muchos archivos pequeños que pueden causar problemas de rendimiento para el análisis. Apache Hudi realiza un seguimiento automático de los cambios y fusiona los archivos, para que permanezcan en un tamaño óptimo. Esto evita la necesidad de crear soluciones personalizadas que monitoreen y reescriban muchos archivos pequeños en menos archivos grandes.
Los conjuntos de datos de Hudi son adecuados para los siguientes casos de uso:
-
Cumplir con las regulaciones de privacidad, como el Reglamento General de Protección de Datos
(RGPD) y la Ley de Privacidad del Consumidor de California (CCPA) que velan por el derecho de las personas a eliminar su información personal o cambiar la forma en que se utilizan sus datos. -
Trabajo con datos de transmisión desde sensores y otros dispositivos del Internet de las cosas (IoT) que requieren eventos específicos de inserción y actualización de datos.
-
Implementar un sistema de captura de datos modificados (CDC, change data capture)
.
Los conjuntos de datos administrados por Hudi se almacenan en Amazon S3 mediante formatos de almacenamiento abierto. Actualmente, Athena puede leer conjuntos de datos Hudi compactados, pero no puede escribir datos Hudi. Athena admite hasta la versión 0.8.0 de Hudi con la versión 2 del motor de Athena, y hasta la versión 0.14.0 de Hudi con la versión 3 del motor de Athena. Esto está sujeto a cambios. Athena no puede garantizar la compatibilidad de lectura con tablas que se hayan creado con versiones posteriores de Hudi. Para obtener más información acerca del control de versiones del motor Athena, consulte Control de versiones del motor Athena. Para obtener más información sobre las características y el control de versiones de Hudi, consulte la documentación de Hudi
Un conjunto de datos de Hudi puede tratarse de uno de los siguientes tipos:
-
Copiar al escribir (CoW, Copy on Write): los datos se almacenan en un formato de columnas (Parquet) y cada actualización crea una nueva versión de los archivos durante una escritura.
-
Fusionar al leer (MoR, Merge on Read): los datos se almacenan utilizando un formato que combina columnas (Parquet) y filas (Avro). Las actualizaciones se registran en archivos
delta
basados en filas y se compactan según sea necesario para crear nuevas versiones de los archivos en columnas.
Con los datasets de tipo CoW, cada vez que se produce una actualización de un registro, el archivo que contiene el registro se vuelve a escribir con los valores actualizados. Con un conjunto de datos de tipo MoR, cada vez que hay una actualización, Hudi escribe solo la fila correspondiente al registro modificado. MoR es más adecuado para cargas de trabajo con gran cantidad de escrituras o cambios y menos lecturas. CoW es más adecuado para cargas de trabajo con gran cantidad de lecturas con datos que cambian con menos frecuencia.
Hudi ofrece tres tipos de consulta para acceder a los datos:
-
Consultas de instantáneas: consultas que ven la última instantánea de la tabla a partir de una acción de confirmación o compactación determinada. Para las tablas MoR, las consultas de instantáneas exponen el estado más reciente de la tabla mediante la combinación de los archivos base y delta del segmento de archivos más reciente en el momento de la consulta.
-
Consultas progresivas: consultas que solo ven los nuevos datos escritos en la tabla, desde una confirmación o compactación determinada. Esto proporciona flujos de cambio de manera efectiva para habilitar canalizaciones de datos incrementales.
-
Consultas optimizadas para lectura: para las tablas de MoR, las consultas ven compactados los datos más recientes. Para las tablas CoW, las consultas ven los últimos datos confirmados.
En la siguiente tabla, se muestran los tipos de consulta Hudi posibles para cada tipo de tabla.
Tipo de tabla | Tipos de consultas posibles de Hudi |
---|---|
Copiar al escribir | Instantánea, incremental |
Fusionar al leer | instantánea, incremental, lectura optimizada |
Actualmente, Athena admite consultas de instantáneas y consultas optimizadas de lectura, pero no consultas incrementales. En las tablas MoR, todos los datos expuestos a consultas optimizadas de lectura están compactados. Esto proporciona un buen rendimiento, pero no incluye las últimas confirmaciones delta. Las consultas instantáneas contienen los datos más recientes, pero generan alguna sobrecarga informática, lo que hace que estas consultas sean menos eficientes.
Para obtener más información acerca de las ventajas e inconvenientes de los tipos de tablas y consultas, visite Tipos de tablas y de consultas
Cambio de la terminología de Hudi: las vistas ahora son consultas
A partir de la versión 0.5.1 de Apache Hudi, lo que antes se denominaba vistas ahora se denomina consultas. En la siguiente tabla, se resumen los cambios entre los términos anteriores y los nuevos.
Término antiguo | Término nuevo |
---|---|
CoW: vista optimizada de lectura MoR: vista en tiempo real |
Consultas de instantáneas |
Vista incremental | Consulta incremental |
MoR: vista optimizada de lectura | Consulta optimizada de lectura |