Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Comportamenti iceberg per lo streaming table
Usa questo argomento per scoprire come lo streaming delle tabelle mappa i dati dagli schemi di AWS Glue Schema Registry alle tabelle Apache Iceberg, inclusa la mappatura dei tipi, la gestione dei campi, la manutenzione delle tabelle e le specifiche di formato.
AWS Glue Mappatura dei tipi da Schema Registry a Iceberg
La tabella di streaming mappa i tipi di schema JSON da AWS Glue Schema Registry ai tipi Apache Iceberg, come illustrato nella tabella seguente.
| Tipo di schema JSON | Tipo Iceberg | Note |
|---|---|---|
string(semplice) |
string |
Mappatura predefinita delle stringhe. |
stringcon formato date-time |
timestamptz |
Timestamp con fuso orario. |
stringcon formato date |
date |
Data del calendario. |
stringcon formato time |
time |
Ora del giorno. |
stringcon formato uuid |
uuid |
Identificatore univoco universale. |
stringcon codifica o byte base64 |
binary |
Dati binari codificati come base64. |
integer(32 bit o meno) |
int |
Valori con valore massimo o esclusivo <= 2^31. |
integer(maggiore di 32 bit) |
long |
Valori che superano l'intervallo di 32 bit. |
number con multipleOf |
decimal |
Fixed-point decimale con precisione derivata da MultipleOf. |
number(semplice) |
double |
Virgola mobile a doppia precisione IEEE 754. |
boolean |
boolean |
Vero o falso. |
objectcon proprietà denominate |
struct |
I campi denominati vengono mappati per strutturare i campi. |
object con additionalProperties |
map |
Key-value mappa con chiavi a stringa. |
array |
list |
Raccolta ordinata di elementi. |
enum |
string |
Valori Enum memorizzati come stringhe. |
Colonne obbligatorie
I campi elencati nell'requiredarray dello schema JSON diventano colonne obbligatorie (non annullabili) nella tabella Iceberg. Se in un record manca un campo obbligatorio, il record viene inviato alla coda delle lettere non scritte.
Colonna chiave di partizione
La tabella deve includere una timestamptz colonna che può essere utilizzata per il partizionamento orario per ora (la trasformazione). TIME_HOUR Nello AWS Glue
schema Schema Registry, questo è un string campo con il date-time formato, che corrisponde al tipo Iceberg. timestamptz
La colonna di origine a cui fa riferimento la partizione viene automaticamente contrassegnata come obbligatoria, indipendentemente dal fatto che sia presente nell'array dello schema. required I record che non contengono il valore della chiave di partizione vengono inviati alla coda delle lettere morte.
Puoi abilitare un processo di scadenza dei record di Amazon S3 Tables in base alla colonna di partizione della tabella. Per ulteriori informazioni, consulta Scadenza del record.
Gestione dei campi
La tabella di streaming gestisce le discrepanze tra i record in entrata e lo schema della tabella Iceberg come segue:
-
Campi aggiuntivi: i campi presenti nel record ma non definiti nello schema vengono eliminati e non scritti nella tabella Iceberg.
-
Campi opzionali mancanti: i campi opzionali non presenti nel record vengono scritti come
nullnella tabella Iceberg. -
Campi obbligatori mancanti: se in un record manca un campo obbligatorio, l'intero record viene inviato alla coda delle lettere non scritte.
Limite di nidificazione
La tabella di streaming supporta una profondità di nidificazione massima di 16 livelli per tipi complessi (strutture, mappe ed elenchi). Gli schemi che superano i 16 livelli di nidificazione vengono rifiutati al momento della creazione della consegna.
Proprietà delle tabelle gestite
La tabella di streaming gestisce automaticamente le proprietà delle tabelle Iceberg. Queste proprietà vengono impostate al momento della creazione della tabella e non devono essere modificate esternamente. La tabella di streaming utilizza queste proprietà per controllare il comportamento di scrittura, la compattazione e la gestione dei metadati.
Poiché la tabella è gestita da Amazon Kinesis Data Streams, non è necessario aggiornarne lo schema, modificarne le proprietà o scrivere o eliminare direttamente i dati. Puoi interrogare la tabella con servizi di AWS analisi e qualsiasi motore di query Apache Iceberg compatibile. Per ulteriori informazioni sui bucket di tabella gestiti, consulta Using AWS managed table bucket nella Amazon S3 User Guide.
Manutenzione di Tabelle S3
Durante la distribuzione a tabelle di streaming su Apache Iceberg supportate da S3 Tables, le seguenti operazioni di manutenzione vengono gestite automaticamente:
-
Compattazione: i file di dati di piccole dimensioni vengono periodicamente compattati in file più grandi per migliorare le prestazioni delle query e ridurre il sovraccarico dei metadati.
-
Scadenza delle istantanee: le istantanee scadute vengono pulite per recuperare lo spazio di archiviazione dei metadati e ridurre le dimensioni dei metadati delle tabelle.
-
Pulizia dei file senza riferimenti: i file di dati orfani a cui non fa più riferimento alcuna istantanea vengono rimossi per recuperare lo spazio di archiviazione.
Scadenza del record
Puoi configurare un periodo di scadenza record per la tua tabella Iceberg. Se abilitato, Amazon S3 Tables rimuove automaticamente i record più vecchi del periodo di conservazione specificato durante le operazioni di manutenzione, in base alla colonna di timestamptz partizione della tabella. Per ulteriori informazioni, consulta la sezione Gestione della scadenza dei record di Amazon S3 Tables nella Amazon S3 User Guide.
Specifiche del formato
La tabella di streaming utilizza le seguenti specifiche di formato per le tabelle Iceberg:
-
Versione in formato Iceberg — v2
-
Versione specifica Iceberg — 1.9.0
-
Formato del file: Apache Parquet