View a markdown version of this page

Comportamenti iceberg per la tabella di streaming - Flusso di dati Amazon Kinesis

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

Mappatura da Schema Registry a Iceberg
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 null nella 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