Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comportements des icebergs pour la table de streaming
Utilisez cette rubrique pour découvrir comment le streaming de tables mappe les données des schémas du AWS Glue Schema Registry vers les tables Apache Iceberg, y compris le mappage des types, la gestion des champs, la maintenance des tables et les spécifications de format.
AWS Glue Mappage entre le registre de schémas et le type Iceberg
La table de streaming mappe les types de AWS Glue schéma JSON du Schema Registry aux types Apache Iceberg comme suit :
| Type de schéma JSON | Type Iceberg | Remarques |
|---|---|---|
string(simple) |
string |
Mappage de chaînes par défaut. |
stringavec format date-time |
timestamptz |
Horodatage avec fuseau horaire. |
stringavec format date |
date |
Date du calendrier. |
stringavec format time |
time |
Heure du jour. |
stringavec format uuid |
uuid |
Identifiant unique universel. |
stringavec encodage byte ou base64 |
binary |
Données binaires codées en base64. |
integer(32 bits ou moins) |
int |
Valeurs avec maximum ou ExclusiveMaximum <= 2^31. |
integer(supérieur à 32 bits) |
long |
Valeurs dépassant la plage de 32 bits. |
number avec multipleOf |
decimal |
Fixed-point décimal avec une précision dérivée de MultipleOf. |
number(simple) |
double |
Virgule flottante à double précision IEEE 754. |
boolean |
boolean |
Vrai ou faux. |
objectavec des propriétés nommées |
struct |
Les champs nommés sont mappés pour structurer les champs. |
object avec additionalProperties |
map |
Key-value carte avec touches de chaîne. |
array |
list |
Collection ordonnée d'éléments. |
enum |
string |
Valeurs d'énumération stockées sous forme de chaînes. |
Colonnes obligatoires
Les champs répertoriés dans le required tableau JSON Schema deviennent des colonnes obligatoires (non nullables) dans la table Iceberg. Si un champ obligatoire est absent d'un enregistrement, celui-ci est envoyé dans la file d'attente des lettres mortes.
Colonne clé de partition
Votre tableau doit inclure une timestamptz colonne qui peut être utilisée pour le partitionnement temporel par heure (la TIME_HOUR transformation). Dans le AWS Glue
schéma du Schema Registry, il s'agit d'un string champ dont le date-time format correspond au timestamptz type Iceberg.
La colonne source référencée par la partition est automatiquement marquée comme requise, qu'elle apparaisse ou non dans le required tableau du schéma. Les enregistrements ne contenant pas la valeur de la clé de partition sont envoyés dans la file d'attente de lettres mortes.
Vous pouvez activer une tâche d'expiration d'enregistrement Amazon S3 Tables en fonction de la colonne de partition de la table. Pour de plus amples informations, veuillez consulter Expiration du record.
Manipulation du terrain
La table de streaming gère les incohérences entre les enregistrements entrants et le schéma de la table Iceberg comme suit :
-
Champs supplémentaires : les champs présents dans l'enregistrement mais non définis dans le schéma sont supprimés et ne sont pas écrits dans la table Iceberg.
-
Champs facultatifs manquants — Les champs facultatifs absents de l'enregistrement sont écrits comme
nulldans la table Iceberg. -
Champs obligatoires manquants — Si un champ obligatoire est absent d'un enregistrement, l'ensemble de l'enregistrement est envoyé dans la file d'attente des lettres mortes.
Limite de nidification
La table de streaming prend en charge une profondeur d'imbrication maximale de 16 niveaux pour les types complexes (structures, cartes et listes). Les schémas qui dépassent 16 niveaux d'imbrication sont rejetés au moment de la création de la livraison.
Propriétés des tables gérées
La table Streaming gère automatiquement les propriétés de la table Iceberg. Ces propriétés sont définies lors de la création de la table et ne doivent pas être modifiées de manière externe. La table de streaming utilise ces propriétés pour contrôler le comportement d'écriture, le compactage et la gestion des métadonnées.
Comme la table est gérée par Amazon Kinesis Data Streams, vous ne devez pas mettre à jour son schéma, modifier ses propriétés, écrire ou supprimer directement ses données. Vous pouvez interroger la table à l'aide des services AWS d'analyse et de tout moteur de requête Apache Iceberg compatible. Pour plus d'informations sur les compartiments de tables gérés, consultez la section Utilisation de compartiments de tables AWS gérés dans le guide de l'utilisateur Amazon S3.
Maintenance de S3 Tables
Lors de la diffusion vers des tables de streaming sur Apache Iceberg avec S3 Tables, les opérations de maintenance suivantes sont gérées automatiquement :
-
Compactage : les petits fichiers de données sont régulièrement compactés en fichiers plus volumineux afin d'améliorer les performances des requêtes et de réduire la charge de métadonnées.
-
Expiration des instantanés : les instantanés expirés sont nettoyés pour récupérer le stockage des métadonnées et réduire la taille des métadonnées des tables.
-
Nettoyage des fichiers non référencés : les fichiers de données orphelins qui ne sont plus référencés par aucun snapshot sont supprimés pour récupérer de l'espace de stockage.
Expiration du record
Vous pouvez configurer une période d'expiration des enregistrements pour votre table Iceberg. Lorsque cette option est activée, Amazon S3 Tables supprime automatiquement les enregistrements antérieurs à la période de rétention spécifiée pendant les opérations de maintenance, en fonction de la colonne de timestamptz partition de la table. Pour plus d'informations, consultez la section Gestion de l'expiration des enregistrements Amazon S3 Tables dans le guide de l'utilisateur Amazon S3.
Spécifications du format
La table de streaming utilise les spécifications de format suivantes pour les tables Iceberg :
-
Version au format Iceberg — v2
-
Version des spécifications d'Iceberg — 1.9.0
-
Format de fichier — Apache Parquet