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à.
Creazione di tabelle Iceberg
Per creare una tabella Iceberg da usare in Athena, puoi usare CREATE TABLE
un'istruzione come documentato in questa pagina oppure puoi usare un crawler. AWS Glue
Utilizzo di una dichiarazione CREATE TABLE
Athena crea tabelle Iceberg v2. Per la differenza tra le tabelle v1 e v2, consulta Modifiche al tipo di formato
Athena CREATE TABLE
crea una tabella Iceberg senza dati. È possibile eseguire una query su una tabella da sistemi esterni come Apache Spark direttamente se la tabella utilizza il Catalogo glue open source Iceberg
avvertimento
L'esecuzione di CREATE EXTERNAL TABLE
si traduce nel messaggio di errore External keyword not supported for table type ICEBERG (Parola chiave esterna non supportata per il tipo di tabella ICEBERG)
.
Per creare una tabella Iceberg da Athena, imposta la proprietà della tabella 'table_type'
su 'ICEBERG'
nella clausola TBLPROPERTIES
, come nel seguente riepilogo della sintassi.
CREATE TABLE [db_name.]table_name (col_name data_type [COMMENT col_comment] [, ...] ) [PARTITIONED BY (col_name | transform, ... )] LOCATION 's3://DOC-EXAMPLE-BUCKET/
your-folder
/' TBLPROPERTIES ( 'table_type' ='ICEBERG' [,property_name
=property_value
] )
Per informazioni sui tipi di dati su cui puoi eseguire query nelle tabelle Iceberg, consulta Tipi di dati supportati per tabelle Iceberg in Athena.
Partizionamento
Per creare tabelle Iceberg con partizioni, utilizza la sintassi PARTITIONED BY
. Le colonne utilizzate per il partizionamento devono essere prima specificate nelle dichiarazioni delle colonne. All'interno della clausola PARTITIONED BY
, il tipo di colonna non deve essere incluso. È inoltre possibile definire le trasformazioni delle partizioniCREATE TABLE
. Per specificare più colonne per il partizionamento, separa le colonne con una virgola (,
), come nell'esempio seguente.
CREATE TABLE iceberg_table (id bigint, data string, category string) PARTITIONED BY (category, bucket(16, id)) LOCATION 's3://DOC-EXAMPLE-BUCKET/
your-folder
/' TBLPROPERTIES ( 'table_type' = 'ICEBERG' )
La tabella riportata di seguito mostra le funzioni di trasformazione delle partizioni disponibili.
Funzione | Descrizione | Tipi supportati |
---|---|---|
year(ts) |
Partizione per anno | date , timestamp |
month(ts) |
Partizione per mese | date , timestamp |
day(ts) |
Partizione per giorno | date , timestamp |
hour(ts) |
Partizione per ora | timestamp |
bucket( |
Partizione per valore hash mod N bucket Questo è lo stesso concetto dell'hash bucketing per le tabelle Hive. |
int , long , decimal ,
date , timestamp ,
string , binary
|
truncate( |
Partizione per valore troncato su L |
int , long , decimal ,
string |
Athena supporta il partizionamento nascosto di Iceberg. Per ulteriori informazioni, consulta Partizionamento nascosto di Iceberg
Proprietà tabella
Questa sezione descrive le proprietà della tabella che è possibile specificare come coppie chiave-valore nella clausola TBLPROPERTIES
dell'istruzione CREATE TABLE
. Athena consente solo un elenco predefinito di coppie chiave-valore nelle proprietà della tabella per creare o modificare le tabelle Iceberg. Le tabelle seguenti mostrano le proprietà della tabella che è possibile specificare in anteprima. Per ulteriori informazioni sulle opzioni di compattazione, consulta Ottimizzazione delle tabelle Iceberg più avanti in questo documento. Se si desidera che Athena supporti una specifica proprietà di configurazione della tabella open source, inviare un feedback all'indirizzo athena-feedback@amazon.com
format
Descrizione | Formato dei dati del file |
Valori delle proprietà consentiti | Le combinazioni di formato di file supportati e compressione variano in base alla versione del motore Athena. Per ulteriori informazioni, consulta Supporto per la compressione delle tabelle Iceberg in base al formato di file. |
Valore predefinito | parquet |
write_compression
Descrizione | Codec di compressione dei file |
Valori delle proprietà consentiti | Le combinazioni di formato di file supportati e compressione variano in base alla versione del motore Athena. Per ulteriori informazioni, consulta Supporto per la compressione delle tabelle Iceberg in base al formato di file. |
Valore predefinito |
La compressione di scrittura predefinita varia in base alla versione del motore Athena. Per ulteriori informazioni, consulta Supporto per la compressione delle tabelle Iceberg in base al formato di file. |
optimize_rewrite_data_file_threshold
Descrizione | Configurazione specifica dell'ottimizzazione dei dati Se ci sono meno file di dati che richiedono un'ottimizzazione rispetto alla soglia specificata, i file non vengono riscritti. Ciò consente l'accumulo di più file di dati per produrre file più vicini alle dimensioni di destinazione e saltare i calcoli non necessari per risparmiare sui costi. |
Valori delle proprietà consentiti | Un numero positivo. Deve essere inferiore a 50. |
Valore predefinito | 5 |
optimize_rewrite_delete_file_threshold
Descrizione | Configurazione specifica dell'ottimizzazione dei dati Se a un file di dati sono associati meno file di eliminazione rispetto alla soglia, il file di dati non viene riscritto. Ciò consente l'accumulo di più file di eliminazione per ogni file di dati per risparmiare sui costi. |
Valori delle proprietà consentiti | Un numero positivo. Deve essere inferiore a 50. |
Valore predefinito | 2 |
vacuum_min_snapshots_to_keep
Descrizione |
Numero minimo di snapshot da mantenere sul ramo principale di una tabella. Questo valore ha la precedenza sulla proprietà |
Valori delle proprietà consentiti | Un numero positivo. |
Valore predefinito | 1 |
vacuum_max_snapshot_age_seconds
Descrizione | Età massima degli snapshot da mantenere nel ramo principale. Questo valore viene ignorato se il numero minimo di snapshot rimanenti specificato da vacuum_min_snapshots_to_keep è più vecchio dell'età specificata. Questa proprietà di comportamento della tabella corrisponde alla proprietà nella configurazione di Apache history.expire.max-snapshot-age-ms Iceberg. |
Valori delle proprietà consentiti | Un numero positivo. |
Valore predefinito | 432.000 secondi (5 giorni) |
vacuum_max_metadata_files_to_keep
Descrizione | Il numero massimo di file di metadati precedenti da conservare nel ramo principale della tabella. |
Valori delle proprietà consentiti | Un numero positivo. |
Valore predefinito | 100 |
Istruzione CREATE TABLE (CREA TABELLA) di esempio
Nell'esempio seguente viene creata una tabella Iceberg che ha tre colonne.
CREATE TABLE iceberg_table ( id int, data string, category string) PARTITIONED BY (category, bucket(16,id)) LOCATION 's3://DOC-EXAMPLE-BUCKET/
iceberg-folder
' TBLPROPERTIES ( 'table_type'='ICEBERG', 'format'='parquet', 'write_compression'='snappy', 'optimize_rewrite_delete_file_threshold'='10' )
CREATE TABLE AS SELECT (CTAS)
Per informazioni sulla creazione di una tabella Iceberg utilizzando l'istruzione CREATE TABLE
AS
, consulta CREATE TABLE AS, con particolare attenzione alla sezione Proprietà tabella CTAS.
Utilizzo di un crawler AWS Glue
Puoi usare un AWS Glue crawler per registrare automaticamente le tue tabelle Iceberg in. AWS Glue Data Catalog Se desideri migrare da un altro catalogo Iceberg, puoi creare e pianificare un AWS Glue crawler e fornire i percorsi Amazon S3 in cui si trovano le tabelle Iceberg. Puoi specificare la profondità massima dei percorsi di Amazon S3 che il crawler AWS Glue può attraversare. Dopo aver pianificato un AWS Glue crawler, il crawler estrae le informazioni sullo schema e le aggiorna con le modifiche dello schema ogni volta che viene eseguito. AWS Glue Data Catalog Il AWS Glue crawler supporta la fusione dello schema tra istantanee e aggiorna la posizione più recente del file di metadati in. AWS Glue Data Catalog Per ulteriori informazioni, consulta Data Catalog and crawler in. AWS Glue