Las organizaciones que crean lagos de datos a escalera de petabytes enfrentan desafíos cada vez mayores a medida que crecen sus datos. Las actualizaciones por lotes y las eliminaciones de cumplimiento crean una proliferación de archivos de matanza posicionales, lo que ralentiza los canales de datos posteriores y aumenta los costos de almacenamiento. El seguimiento de los cambios de datos para pistas de auditoría y procesamiento incremental requiere implementaciones personalizadas y específicas del motor que añaden complejidad y carga de mantenimiento. A medida que los volúmenes de datos aumentan, estos desafíos se agravan, lo que deja a los equipos de datos haciendo malabares con soluciones personalizadas y aumentando los costos operativos solo para amparar la modernización y el cumplimiento de los datos.
Apache Iceberg V3 aborda estos desafíos con dos nuevas capacidades: vectores de matanza y género de filas. AWS ahora ofrece estas capacidades en todo Apache Spark en Amazon EMR 7.12, Pegamento AWS, Amazon SageMaker cuadernos, Tablas de Amazon S3y el Catálogo de datos de AWS Gluebrindándole una experiencia V3 completa e integrada sin implementación personalizada. Esto significa escrituras más rápidas, menores costos de almacenamiento, pistas de auditoría integrales y procesamiento incremental efectivo, todo funcionando a la perfección en toda la inmueble del balsa de datos.
En esta publicación, lo guiaremos a través de las nuevas capacidades de Iceberg V3, explicaremos cómo los vectores de matanza y el género de filas abordan estos desafíos, exploramos casos de uso del mundo vivo en todas las industrias y brindamos orientación ejercicio sobre la implementación de funciones de Iceberg V3 en los servicios de investigación, catálogos y almacenamiento de AWS.
¿Qué hay de nuevo en Iceberg V3?
Iceberg V3 introduce nuevas capacidades y tipos de datos. Dos capacidades secreto que abordan los desafíos discutidos anteriormente son los vectores de matanza y el género de filas.
Los vectores de matanza reemplazan los archivos de matanza posicional con un formato binario efectivo almacenado como Archivos de frailecillos. En circunstancia de crear archivos de matanza separados para cada operación de matanza, el vector de matanza consolida estas referencias de matanza en un único vector de matanza por archivo de datos, en circunstancia de un archivo de relato de matanza por fila eliminada. Durante la ejecución de la consulta, los motores filtran de guisa efectivo las filas eliminadas utilizando estos vectores compactos, lo que mantiene el rendimiento de la consulta y elimina la carencia de fusionar varios archivos eliminados.
Esto evita la amplificación de escritura a partir de actualizaciones por lotes aleatorias y eliminaciones de cumplimiento del RGPD, lo que reduce significativamente la sobrecarga de amparar datos actualizados. Las cargas de trabajo de modernización de inscripción frecuencia pueden ver mejoras inmediatas en el rendimiento de escritura y costos de almacenamiento reducidos al eliminar menos archivos pequeños. Adicionalmente, tener menos archivos de matanza pequeños reduce los costos de mantenimiento de la mesa para las operaciones de compactación.
El género de filas permite un seguimiento preciso de los cambios a nivel de fila con total auditabilidad. El género de filas agrega campos de metadatos a cada archivo de datos que rastrean cuándo se crearon y modificaron por última vez las filas. El _row_id El campo identifica de forma única cada fila y el _last_updated_sequence_number El campo rastrea la instantánea de cuándo se modificó la fila por última vez. Estos campos permiten consultas eficientes de seguimiento de cambios sin escanear tablas enteras, y la determinación Iceberg los mantiene automáticamente sin carencia de código personalizado.
Antiguamente del género de filas, el seguimiento de cambios en Iceberg proporcionaba solo los cambios netos entre instantáneas, lo que dificultaba el seguimiento de las modificaciones de registros individuales. Ahora se pueden consultar los campos de metadatos de género de filas para devolver todos los cambios incrementales, lo que le brinda total fidelidad para auditar modificaciones de datos y cumplimiento normativo. Para las transformaciones de datos, sus sistemas posteriores pueden procesar los cambios de forma incremental, acelerando los flujos de datos y reduciendo los costos informáticos para los flujos de trabajo de captura de datos modificados (CDC). El género de filas es independiente del motor, interoperable y está integrado en la determinación Iceberg V3, lo que alivia la carencia de implementaciones de seguimiento de cambios personalizadas y específicas del motor.
Casos de uso del mundo vivo
Las nuevas capacidades de Iceberg V3 abordan desafíos críticos en múltiples industrias:
- Organizaciones de servicios de marketing y publicidad. – Ahora puede manejar de guisa efectivo las solicitudes de derecho al olvido del RGPD y las eliminaciones de cumplimiento normativo sin la amplificación de escritura que anteriormente degradaba el rendimiento de la canalización. Row Lineage proporciona pistas de auditoría completas para las modificaciones de datos, cumpliendo con estrictos requisitos reglamentarios para la diligencia de datos.
- Plataformas de comercio electrónico que procesan millones de actualizaciones de productos y cambios de inventario diariamente – Puede amparar la modernización de los datos y al mismo tiempo sujetar los costos de almacenamiento. Los vectores de matanza permiten operaciones de inserción más rápidas, lo que ayuda a los equipos a cumplir con los estrictos requisitos de SLA durante los períodos de maduro actividad comercial.
- Empresas de lozanía y ciencias biológicas – Puede realizar un seguimiento de las modificaciones de los datos de los pacientes con precisión para fines de cumplimiento mientras procesa de guisa efectivo conjuntos de datos genómicos a gran escalera. El género de filas proporciona el historial de cambios detallado necesario para las auditorías de ensayos clínicos y las presentaciones regulatorias.
- Proveedores de medios y entretenimiento que gestionan grandes catálogos de datos de visualización de usuarios. – Puede procesar de guisa efectivo cambios incrementales para motores de recomendación. El género de filas permite que los sistemas de investigación posteriores procesen solo registros modificados, lo que reduce los costos de procesamiento en escenarios de procesamiento incremental.
Comience con Iceberg V3
Para servirse los vectores de matanza para escrituras optimizadas y el género de filas para el seguimiento de cambios integrado en Iceberg V3, establezca la propiedad de la tabla format-version = 3 durante la creación de la tabla. Alternativamente, establecer esta propiedad en una tabla Iceberg V2 existente actualiza atómicamente la tabla sin reescritura de datos. Antiguamente de crear o modernizar tablas V3, asegúrese de que los motores Iceberg de su decisión sean compatibles con V3. Referirse a Apache Iceberg V3 en AWS para más detalles.
Cree una nueva tabla V3 con Apache Spark en Amazon EMR 7.12
El ulterior código crea una nueva tabla indicación customer_data. Establecer la propiedad de la tabla format-version = 3 crea una tabla V3. si el format-version La propiedad de la tabla no está establecida explícitamente, se crea una tabla V2. V2 es actualmente la traducción de tabla predeterminada de Iceberg. Configuración write.delete.mode, write.update.modey write.merge.mode a merge-on-read configura Spark para escribir vectores de matanza para declaraciones de matanza, modernización o fusión realizadas en la tabla.
Ejecute el ulterior código para insertar registros en el customer_data mesa:
Eliminar un registro donde customer_id = 5 para gestar un archivo de matanza:
La modernización de un registro con la ulterior enunciación de modernización además genera un archivo de matanza:
La última parte de este ejemplo consulta la tabla de metadatos del manifiesto para comprobar que se produjeron los archivos eliminados:
Esta consulta generará tres registros, como se muestra en la ulterior captura de pantalla. El added_delete_files_count para la primera instantánea que inserta registros debe ser 0. Las siguientes dos instantáneas de las declaraciones de matanza y modernización correspondientes deberían tener 1 cada uno para added_delete_files_count valencia.

Consultar género de filas para seguimiento de cambios
El género de filas se habilita automáticamente en las tablas V3. El ulterior ejemplo incluye campos de metadatos de género de fila y un ejemplo de cómo consultar cambios en la tabla posteriormente de un número de secuencia de género de fila:
Al ejecutar esta consulta posteriormente de las instrucciones de inserción, modernización y matanza anteriores, se devuelven cuatro registros, como se muestra en la ulterior captura de pantalla. El registro eliminado se elimina. El _last_updated_sequence_number es 3 para la modernización de customer_id = 2.

Renovar una tabla V2 existente
Puede modernizar sus tablas V2 existentes a V3 con el ulterior comando:
Cuando actualiza una tabla de V2 a V3, se producen varias operaciones importantes de forma atómica:
- Se crea una nueva instantánea de metadatos de forma atómica, lo que no produce pérdida de datos.
- Los archivos de datos de Parquet existentes se reutilizan sin modificaciones.
- Campos de género de filas (
_row_idy_last_updated_sequence_number) se agregan a los metadatos de la tabla. - La ulterior operación de compactación eliminará los archivos de matanza posicional V2 antiguos. Si se generan nuevos archivos vectoriales de matanza ayer de que se ejecute la compactación, fusionarán los archivos de matanza posicional V2 existentes.
- Las nuevas modificaciones utilizarán automáticamente los archivos vectoriales de matanza de V3.
- La modernización no realiza un reabastecimiento histórico de los registros de seguimiento de cambios de género de filas.
El proceso de modernización es sincrónico y se completa en segundos para la mayoría de las tablas. Si la modernización rotura, se devuelve inmediatamente un mensaje de error y la tabla permanece en su estado V2.
Aprovechando al mayor Iceberg V3
En esta sección, compartimos los aspectos secreto que hemos aprendido de los clientes que ya utilizan estas funciones.
Conozca su patrón de carga de trabajo
Los vectores de matanza funcionan mejor cuando se realizan muchas escrituras, como actualizaciones de inscripción frecuencia, eliminaciones por lotes o cargas de trabajo CDC que realizan actualizaciones aleatorias que no son solo para ampliar. Si escribe más de lo que lee, los vectores de matanza le brindarán mejoras de rendimiento inmediatas. Para desbloquear estos beneficios, configure su tabla en modo de combinación en leída para operaciones de matanza, modernización y combinación.
Deje que AWS se encargue de la compactación
Habilite la compactación cibernética a través del catálogo de datos o use tablas S3 (activadas de forma predeterminada). Obtendrá una optimización manos libres sin crear trabajos de mantenimiento personalizados. Los vectores de matanza producen menos archivos de matanza que las eliminaciones posicionales en Iceberg V2. Transmitido un patrón similar y una cantidad de registros modificados, la compactación V3 debería ser más rápida y costar menos que la V2.
Comprender la importancia del género de filas al utilizar el registro de cambios V2
con la chispa registro de cambios procedimiento en Iceberg V2, si se inserta una fila y luego se elimina entre instantáneas, desaparece de su fuente de cambios; nunca la ve. El género de filas Iceberg V3 captura ambas operaciones porque _last_updated_sequence_number actualizaciones sobre cada modificación. Esta fidelidad total es importante para las pistas de auditoría y el cumplimiento normativo, donde es necesario demostrar lo que sucedió con cada registro. En cuanto al rendimiento, el registro de cambios V2 requiere escanear y fusionar archivos eliminados para calcular los cambios; ese es el cálculo por el que paga por cada leída. El género de filas V3 almacena campos de metadatos directamente en cada fila, por lo que filtrar por _last_updated_sequence_number es un escaneo de metadatos simple.
Pruebe ayer de modernizar
Las actualizaciones de Iceberg V3 son atómicas y rápidas, pero pruébelas primero en explicación. Asegúrese de que todos sus motores de consulta sean compatibles con Iceberg V3 ayer de modernizar las tablas compartidas; mezclar motores V2 y V3 causa dolores de cabecera. Luego de la modernización, conserve temporalmente algunas instantáneas de la traducción 2 para consultas sobre viajes en el tiempo mientras valida el rendimiento.
Conclusión
La compatibilidad con Iceberg V3 en los servicios de investigación, catálogo y almacenamiento de AWS marca un avance significativo en las capacidades del balsa de datos. Al combinar la optimización de escritura de los vectores de matanza con el seguimiento integral de cambios del género de filas, puede crear lagos de datos a escalera más eficientes, auditables y rentables. La perfecta interoperabilidad entre los servicios de AWS garantiza que la inmueble de su balsa de datos siga siendo flexible y esté preparada para el futuro.
Para obtener más información sobre la compatibilidad de AWS con Iceberg V3, consulte Usando Apache Iceberg en AWS.
Para obtener más información sobre cómo crear lagos de datos modernos con Iceberg en AWS, consulte Disección en AWS.
Sobre los autores