Cómo funciona la replicación de tablas de S3
La replicación de tablas de S3 crea réplicas de solo lectura de las tablas de Apache Iceberg en todas las regiones y Cuentas de AWS. El servicio de tablas de S3 mantiene las tablas de réplica automáticamente y contienen los datos completos, los metadatos y el historial de instantáneas de la tabla de origen, lo que permite consultarlas mediante cualquier motor compatible con Iceberg para operaciones de análisis y viajes en el tiempo.
Al configurar la replicación de una tabla, las tablas de S3:
-
Crean una tabla de réplica de solo lectura en cada bucket de tabla de destino con el mismo nombre y espacio de nombres que la tabla de origen.
-
Rellenan la réplica con el estado más reciente de la tabla de origen.
-
Supervisan la tabla de origen en busca de nuevas actualizaciones.
-
Confirman todas las actualizaciones en las réplicas en el mismo orden que el origen para mantener la coherencia.
Para obtener más información, consulte las siguientes secciones.
Temas
Qué se replica
Se replican los siguientes componentes de la tabla:
-
Instantáneas de la tabla: todas las instantáneas, incluidas las compactadas, se replican en orden cronológico, manteniendo las relaciones principal-secundaria y los números de secuencia de la tabla de origen. Esto garantiza que las tablas de réplica proporcionen las mismas capacidades de viaje en el tiempo que las tablas de origen.
-
Datos de tabla: todos los archivos de datos a los que hacen referencia las instantáneas de las tablas se replican en la región de destino. Esto incluye:
-
Archivos de metadatos: archivos de metadata.json de tablas, manifiestos, listas de manifiestos, estadísticas de particiones y estadísticas de tablas.
-
Eliminar archivos: todos los archivos eliminados se replican para mantener la precisión de los datos en las tablas de réplica.
-
Archivos de datos: se replican todos los archivos de datos a los que hacen referencia los manifiestos.
-
-
Metadatos de tablas: replicación completa de los metadatos, incluida la información del esquema (actual e histórica), las especificaciones de las particiones, los criterios de clasificación y las propiedades de las tablas.
-
Información del esquema: se replican todos los esquemas de las tablas, incluidas las versiones del esquema actual y del esquema histórico. Esto garantiza que las consultas realizadas en las tablas de réplica utilicen las definiciones de columnas, los tipos de datos y las asignaciones de campos correctos. El proceso de replicación mantiene el historial de evolución del esquema, lo que permite que las consultas sobre viajes en el tiempo funcionen correctamente en las tablas de réplica.
-
Especificaciones de partición: las especificaciones de partición actuales e históricas se replican, lo que garantiza que las tablas de réplica mantengan la misma estrategia de partición que las tablas de origen.
-
Órdenes de clasificación: los órdenes de clasificación de las tablas se replican para mantener las optimizaciones del rendimiento de las consultas.
-
Cómo se replican los datos
La replicación determina un estado válido para las tablas de réplica comparando los metadatos de las tablas de Apache Iceberg entre las tablas de origen y réplica. La replicación procesa los metadatos en tres categorías para actualizar la tabla de réplica.
Para los metadatos de una tabla
Para los campos de metadatos versionados, la replicación combina los valores de la tabla de origen en las matrices de la tabla de réplicas para los siguientes campos:
-
snapshots: combina todas las instantáneas de la tabla de origen en la matriz de instantáneas de la tabla de réplicas por snapshot-id. -
snapshot-log: combina los registros de instantáneas de la tabla de origen en la matriz de registros de instantáneas de la tabla de réplicas, ordenados por marcas temporales e ID de instantáneas. -
sort-orders: combina las definiciones de orden de clasificación de la tabla de origen con la matriz de órdenes de clasificación de la tabla de réplicas por ID de pedido. -
partition-specs: combina las especificaciones de partición de la tabla de origen con la matriz de especificaciones de particiones de la tabla de réplicas mediante el ID de especificación.
Para configuración de tabla
Para los campos que representan la configuración de la tabla, la replicación copia los valores directamente de la tabla de origen:
-
properties -
partition-statistics -
statistics
El estado actual de la tabla también se transfiere desde la tabla de origen:
-
current-snapshot-id -
current-schema-id -
last-column-id -
last-partition-id -
last-sequence-number -
default-sort-order-id -
next-row-id(Iceberg V3) -
encryption-keys(Iceberg V3)
Estado específico de la réplica
Los siguientes campos se calculan a partir de datos combinados y se actualizan para la tabla de réplicas:
-
locationse actualiza durante la replicación para apuntar a la ubicación correcta del archivo en el bucket de la tabla de réplicas, lo que garantiza que todas las referencias a los archivos sean válidas en el entorno de destino. -
metadata-logcontiene todos los nombres de los archivos de metadatos de destino y se actualiza después de cada replicación correcta con el nombre de archivo de metadatos actual. -
Todas las rutas de los archivos se modifican para que apunten a las ubicaciones de las tablas de réplicas.
Replicación de instantáneas
La replicación de tablas de S3 mantiene un historial completo de instantáneas en todas las regiones al replicar todas las instantáneas de las tablas en el mismo orden de confirmación que la tabla de origen. Las relaciones principal-secundaria de la tabla de origen se conservan en la tabla de réplica.
Retención de instantáneas
Puede configurar un periodo de retención de instantáneas personalizado para las tablas replicadas que difiera del periodo de retención del origen. Esto significa que, incluso si las instantáneas han caducado y ya no están disponibles en la tabla de origen, se pueden conservar en réplicas.
Por ejemplo, si la tabla de origen tiene un periodo de retención de instantáneas de 30 días, pero la tabla de réplicas está configurada con un periodo de retención de 90 días, la réplica conservará las instantáneas de los dos meses anteriores que ya no estén disponibles en la tabla de origen.
Las instantáneas que caducaron manualmente en la tabla de origen también se conservan en la tabla de réplicas. Por ejemplo, si ha caducado las instantáneas de febrero en la tabla de origen mediante un procedimiento de Spark, aún puede viajar en el tiempo hasta las instantáneas de la tabla de réplicas.
Consideraciones y limitaciones
Las siguientes consideraciones se aplican a las tablas replicadas:
-
Las tablas de S3 replican las tablas V2 y V3 de Iceberg. Sin embargo, no se admite la replicación de tablas actualizadas (V2 → V3).
-
No se admiten archivos de metadatos de más de 500 MB.
-
Aunque las actualizaciones de las tablas suelen replicarse en cuestión de minutos, la replicación puede tardar más en función del tamaño de la actualización de la tabla que se va a replicar, por ejemplo, cuando la replicación comienza a rellenarse.
-
No se admiten tablas con etiquetas o ramas.
-
No se admite la replicación para las tablas de metadatos de Amazon S3 ni otras tablas del sistema generadas por AWS.
-
Todas las instantáneas de las tablas, incluidas las compactadas, se replican desde la tabla de origen. Como resultado, no se admite la compactación en las tablas de réplica.