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à.
Una tabella S3 è una sottorisorsa di un bucket di tabelle. Questa risorsa memorizza le tabelle nel Apache Iceberg
formato in modo da poterle utilizzare utilizzando motori di query e altre applicazioni che supportano Apache Iceberg. Amazon S3 ottimizza continuamente le tabelle per contribuire a ridurre i costi di storage e migliorare le prestazioni delle query di analisi.
Quando si crea una tabella, Amazon S3 genera automaticamente la relativa posizione nel warehouse. Si tratta di una posizione di S3 univoca in cui è possibile leggere e scrivere oggetti associati alla tabella. Nell'esempio seguente viene illustrato il formato di una posizione del warehouse:
s3://63a8e430-6e0b-46f5-k833abtwr6s8tmtsycedn8s4yc3xhuse1b--table-s3
Il nome della risorsa Amazon (ARN) per le tabelle ha il seguente formato:
arn:aws:s3tables:
Region
:OwnerAccountID
:bucket/bucket-name
/table/tableID
Per impostazione predefinita, puoi creare fino a 10.000 tabelle in un bucket da tavolo. Per richiedere un aumento della quota per i bucket di tabelle o le tabelle, contattare Supporto
Puoi creare una tabella utilizzando l'API REST di Amazon S3, l' AWS SDK o i motori di AWS CLI query integrati.
Per ulteriori informazioni sui nomi di tabella validi, consulta Regole di denominazione per tabelle e spazi dei nomi.
Prerequisiti per la creazione di tabelle
Per creare una tabella, devi prima fare quanto segue:
Creare uno spazio dei nominel secchio da tavolo.
Assicurati di disporre delle autorizzazioni IAM per
s3tables:CreateTable
e.s3tables:PutTableData
Questo esempio mostra come creare una tabella con uno schema utilizzando AWS CLI e specificando i metadati della tabella con JSON. Per utilizzare questo esempio, sostituiscili user input placeholders
con le tue informazioni.
aws s3tables create-table --cli-input-json file://
mytabledefinition.json
mytabledefinition.json:
{ "tableBucketARN": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
", "namespace": "your_namespace
", "name": "example_table
", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [ {"name": "id
", "type": "int
","required": true
}, {"name": "name
", "type": "string
"}, {"name": "value
", "type": "int
"} ] } } } }
Puoi creare una tabella in un motore di query supportato collegato ai bucket di tabella Amazon S3, ad esempio in un Apache Spark sessione su Amazon EMR.
Questo esempio mostra come creare una tabella con Spark utilizzando CREATE
istruzioni e aggiungendo dati di tabella utilizzando INSERT o leggendo i dati da un file esistente. Per utilizzare questo comando, sostituisci user input placeholders
con le tue informazioni.
spark.sql( " CREATE TABLE IF NOT EXISTS s3tablesbucket.
example_namespace
.`example_table
` ( id INT, name STRING, value INT ) USING iceberg " )
Dopo aver creato la tabella, puoi caricare i dati nella tabella. Scegli tra i seguenti metodi:
Aggiungere dati nella tabella utilizzando il comando
INSERT
.spark.sql( """ INSERT INTO s3tablesbucket.
my_namespace
.my_table
VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """)Caricare un file di dati esistente.
Leggere i dati in Spark.
val data_file_location = "
Path such as S3 URI to data file
" val data_file = spark.read.parquet(data_file_location
)Scrivere i dati in una tabella Iceberg.
data_file.writeTo("s3tablesbucket.
my_namespace
.my_table
").using("Iceberg").tableProperty ("format-version", "2").createOrReplace()