Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Comportamientos de iceberg para la tabla de streaming
Utilice este tema para obtener información sobre cómo la tabla de streaming asigna los datos de los AWS Glue esquemas de Schema Registry a las tablas de Apache Iceberg, incluida la asignación de tipos, la gestión de campos, el mantenimiento de las tablas y las especificaciones de formato.
AWS Glue El registro de esquemas y el mapeo de tipos Iceberg
La tabla de transmisión asigna los tipos de AWS Glue esquemas JSON desde Schema Registry a los tipos de Apache Iceberg de la siguiente manera:
| Tipo de esquema JSON | Tipo Iceberg | Notas |
|---|---|---|
string(sencillo) |
string |
Mapeo de cadenas predeterminado. |
stringcon formato date-time |
timestamptz |
Marca de tiempo con zona horaria. |
stringcon formato date |
date |
Fecha del calendario. |
stringcon formato time |
time |
Hora del día. |
stringcon formato uuid |
uuid |
Identificador único universal. |
stringcon codificación byte o base64 |
binary |
Datos binarios codificados en base64. |
integer(32 bits o menos) |
int |
Valores con un máximo máximo o exclusivo <= 2^31. |
integer(más de 32 bits) |
long |
Valores que superan el rango de 32 bits. |
number por multipleOf |
decimal |
Fixed-point decimal con precisión derivada de MultipleOf. |
number(plano) |
double |
Punto flotante de doble precisión IEEE 754. |
boolean |
boolean |
Verdadero o falso. |
objectcon propiedades con nombre |
struct |
Los campos con nombre se asignan para estructurar los campos. |
object por additionalProperties |
map |
Key-value mapa con claves de cadena. |
array |
list |
Colección ordenada de elementos. |
enum |
string |
Los valores de enumeración se almacenan como cadenas. |
Columnas obligatorias
Los campos que figuran en la required matriz del esquema JSON se convierten en columnas obligatorias (no anulables) en la tabla Iceberg. Si falta un campo obligatorio en un registro, el registro se envía a la cola de mensajes muertos.
Columna de clave de partición
La tabla debe incluir una timestamptz columna que pueda usarse para particionar por horas en función del tiempo (la TIME_HOUR transformación). En el AWS Glue
esquema del registro de esquemas, se trata de un string campo con el date-time formato que se asigna al tipo Icebergtimestamptz.
La columna de origen a la que hace referencia la partición se marca automáticamente como obligatoria, independientemente de si aparece en la required matriz del esquema. Los registros a los que les falta el valor de la clave de partición se envían a la cola de mensajes muertos.
Puede habilitar un trabajo de caducidad de registros de Amazon S3 Tables basándose en la columna de particiones de la tabla. Para obtener más información, consulte Caducidad del registro.
Manejo de campo
La tabla de streaming gestiona las discrepancias entre los registros entrantes y el esquema de la tabla Iceberg de la siguiente manera:
-
Campos adicionales: los campos presentes en el registro pero no definidos en el esquema se eliminan y no se escriben en la tabla Iceberg.
-
Faltan campos opcionales: los campos opcionales que no están presentes en el registro se escriben como
nullen la tabla Iceberg. -
Faltan campos obligatorios: si falta un campo obligatorio en un registro, el registro completo se envía a la cola de correo no deseado.
Límite de anidación
La tabla de transmisión admite una profundidad máxima de anidación de 16 niveles para tipos complejos (estructuras, mapas y listas). Los esquemas que superen los 16 niveles de anidamiento se rechazan en el momento de la creación de la entrega.
Propiedades de tablas administradas
Streaming Table administra automáticamente las propiedades de las tablas Iceberg. Estas propiedades se establecen al crear la tabla y no deben modificarse externamente. La tabla de transmisión usa estas propiedades para controlar el comportamiento de escritura, la compactación y la administración de metadatos.
Dado que la tabla la administra Amazon Kinesis Data Streams, no debe actualizar su esquema, modificar las propiedades de la tabla ni escribir en sus datos ni eliminarlos directamente. Puede consultar la tabla con los servicios de AWS análisis y cualquier motor de consultas compatible con Apache Iceberg. Para obtener más información sobre los grupos de tablas administrados, consulte Uso de grupos de tablas AWS administrados en la Guía del usuario de Amazon S3.
Mantenimiento de Tablas de S3
Al realizar entregas a tablas de streaming en Apache Iceberg respaldadas por S3 Tables, las siguientes operaciones de mantenimiento se gestionan automáticamente:
-
Compactación: los archivos de datos pequeños se compactan periódicamente en archivos más grandes para mejorar el rendimiento de las consultas y reducir la sobrecarga de metadatos.
-
Caducidad de las instantáneas: las instantáneas caducadas se limpian para recuperar el almacenamiento de metadatos y reducir el tamaño de los metadatos de la tabla.
-
Limpieza de archivos sin referencia: los archivos de datos huérfanos a los que ya no hace referencia ninguna instantánea se eliminan para recuperar el almacenamiento.
Caducidad del registro
Puedes configurar un período de caducidad de registros para tu tabla Iceberg. Cuando está habilitada, Amazon S3 Tables elimina automáticamente los registros con una antigüedad superior al período de retención especificado durante las operaciones de mantenimiento, en función de la columna de timestamptz particiones de la tabla. Para obtener más información, consulte Cómo administrar la caducidad de los registros de las tablas de Amazon S3 en la guía del usuario de Amazon S3.
Especificaciones de formato
La tabla de streaming utiliza las siguientes especificaciones de formato para las tablas Iceberg:
-
Versión en formato Iceberg: v2
-
Versión con especificaciones de Iceberg: 1.9.0
-
Formato de archivo: Apache Parquet