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 la tabella di streaming
Usa questo argomento per scoprire come lo streaming table 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 dallo Schema Registry ai tipi di Apache Iceberg come segue: AWS Glue
| 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 maximum o ExclusiveMaximum <= 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 JSON Schema diventano colonne obbligatorie (non annullabili) nella tabella Iceberg. Se in un record manca un campo obbligatorio, il record viene inviato alla coda per le lettere morte.
Colonna chiave di partizione
La tabella deve includere una timestamptz colonna che può essere utilizzata per il partizionamento orario basato sul tempo (la trasformazione). TIME_HOUR Nello AWS Glue
schema Schema Registry, questo è un string campo con il date-time formato associato al tipo Iceberg. timestamptz
La colonna sorgente a cui fa riferimento la partizione viene automaticamente contrassegnata come obbligatoria, indipendentemente dal fatto che appaia nell'array dello schema. required I record privi del 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 sul campo
La tabella di streaming gestisce le discrepanze tra i record in ingresso 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 morte.
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à della tabella gestite
La tabella di streaming gestisce automaticamente le proprietà della tabella Iceberg. Queste proprietà vengono impostate al momento della creazione della tabella e non devono essere modificate esternamente. Streaming table 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 i servizi di AWS analisi e qualsiasi motore di query Apache Iceberg compatibile. Per ulteriori informazioni sui bucket di tabelle 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 dell'istantanea: 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 spazio di archiviazione.
Scadenza del record
Puoi configurare un periodo di scadenza dei 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 di formato
La tabella di streaming utilizza le seguenti specifiche di formato per le tabelle Iceberg:
-
Versione in formato Iceberg: v2
-
Versione con specifiche Iceberg: 1.9.0
-
Formato del file: Apache Parquet