Creazione di tabelle Apache Iceberg - AWS Lake Formation

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 Apache Iceberg

AWS Lake Formation supporta la creazione di tabelle Apache Iceberg che utilizzano il formato di dati Apache Parquet AWS Glue Data Catalog con dati che risiedono in Amazon S3. Una tabella nel Data Catalog è la definizione di metadati che rappresenta i dati in un data store. Per impostazione predefinita, Lake Formation crea tabelle Iceberg v2. Per la differenza tra le tabelle v1 e v2, consulta Modifiche al tipo di formato nella documentazione di Apache Iceberg.

Apache Iceberg è un formato a tabella aperta per set di dati analitici di dimensioni molto grandi. Iceberg consente di modificare facilmente lo schema, noto anche come evoluzione dello schema, il che significa che gli utenti possono aggiungere, rinominare o rimuovere colonne da una tabella di dati senza interrompere i dati sottostanti. Iceberg fornisce anche supporto per il controllo delle versioni dei dati, che consente agli utenti di tenere traccia delle modifiche ai dati nel tempo. Ciò abilita la funzionalità Time Travel, che consente agli utenti di accedere e interrogare le versioni storiche dei dati e analizzare le modifiche ai dati tra aggiornamenti ed eliminazioni.

Puoi utilizzare la console Lake Formation o l'CreateTableoperazione nell' AWS Glue API per creare una tabella Iceberg nel Data Catalog. Per ulteriori informazioni, vedere CreateTable action (Python: create_table).

Quando crei una tabella Iceberg nel Data Catalog, devi specificare il formato della tabella e il percorso del file dei metadati in Amazon S3 per poter eseguire letture e scritture.

Puoi usare Lake Formation per proteggere la tua tabella Iceberg utilizzando autorizzazioni di controllo degli accessi granulari quando registri la posizione dati di Amazon S3 con. AWS Lake Formation Per i dati di origine in Amazon S3 e i metadati non registrati con Lake Formation, l'accesso è determinato dalle politiche di autorizzazione IAM per Amazon S3 e dalle azioni. AWS Glue Per ulteriori informazioni, consulta Gestione delle autorizzazioni di Lake Formation.

Nota

Data Catalog non supporta la creazione di partizioni e l'aggiunta di proprietà delle tabelle Iceberg.

Prerequisiti

Per creare tabelle Iceberg nel Data Catalog e configurare le autorizzazioni di accesso ai dati di Lake Formation, devi soddisfare i seguenti requisiti:

  1. Autorizzazioni necessarie per creare tabelle Iceberg senza i dati registrati con Lake Formation.

    Oltre alle autorizzazioni necessarie per creare una tabella nel Data Catalog, il creatore della tabella richiede le seguenti autorizzazioni:

    • s3:PutObjectsulla risorsa arn:aws:s3::: {bucketName}

    • s3:GetObjectsulla risorsa arn:aws:s3::: {bucketName}

    • s3:DeleteObjectsulla risorsa arn:aws:s3::: {bucketName}

  2. Autorizzazioni necessarie per creare tabelle Iceberg con dati registrati con Lake Formation:

    Per utilizzare Lake Formation per gestire e proteggere i dati nel tuo data lake, registra la tua posizione Amazon S3 che contiene i dati per le tabelle con Lake Formation. In questo modo Lake Formation può fornire credenziali a servizi di AWS analisi come Athena, Redshift Spectrum e Amazon EMR per accedere ai dati. Per ulteriori informazioni sulla registrazione di una sede Amazon S3, consulta. Aggiungere una posizione Amazon S3 al tuo data lake

    Un preside che legge e scrive i dati sottostanti registrati con Lake Formation richiede le seguenti autorizzazioni:

    • lakeformation:GetDataAccess

    • DATA_LOCATION_ACCESS

      Un responsabile che dispone delle autorizzazioni di localizzazione dei dati su una sede dispone anche delle autorizzazioni di localizzazione su tutte le sedi dei figli.

      Per ulteriori informazioni sulle autorizzazioni per la localizzazione dei dati, vedere. Controllo sottostante dell'accesso ai dati

Per abilitare la compattazione, il servizio deve assumere un ruolo IAM con le autorizzazioni per aggiornare le tabelle nel Data Catalog. Per maggiori dettagli, consulta Prerequisiti per l'ottimizzazione delle tabelle .

Creazione di una tabella Iceberg

Puoi creare tabelle Iceberg v1 e v2 utilizzando la console Lake Formation o AWS Command Line Interface come documentato in questa pagina. Puoi anche creare tabelle Iceberg usando la console o. AWS Glue Crawler di AWS Glue Per ulteriori informazioni, consulta Data Catalog and Crawlers nella Developer Guide. AWS Glue

Per creare una tabella Iceberg

Console
  1. Accedi a e apri AWS Management Console la console Lake Formation all'indirizzo https://console.aws.amazon.com/lakeformation/.

  2. In Data Catalog, scegliete Tabelle e utilizzate il pulsante Crea tabella per specificare i seguenti attributi:

    • Nome tabella: inserite un nome per la tabella. Se utilizzi Athena per accedere alle tabelle, utilizza questi suggerimenti di denominazione nella Amazon Athena User Guide.

    • Database: scegli un database esistente o creane uno nuovo.

    • Descrizione: la descrizione della tabella. Puoi scrivere una descrizione per aiutarti a comprendere i contenuti della tabella.

    • Formato tabella: per il formato tabella, scegli Apache Iceberg.

      Opzione di tabella Apache Iceberg selezionata con l'opzione Abilita compattazione.
    • Abilita la compattazione: scegli Abilita compattazione per compattare piccoli oggetti Amazon S3 nella tabella in oggetti più grandi.

    • Ruolo IAM: per eseguire la compattazione, il servizio assume un ruolo IAM per tuo conto. Puoi scegliere un ruolo IAM utilizzando il menu a discesa. Assicurati che il ruolo disponga delle autorizzazioni necessarie per abilitare la compattazione.

      Per ulteriori informazioni sulle autorizzazioni richieste, consulta. Prerequisiti per l'ottimizzazione delle tabelle

    • Posizione: specifica il percorso della cartella in Amazon S3 che memorizza la tabella dei metadati. Iceberg necessita di un file di metadati e di una posizione nel Data Catalog per poter eseguire letture e scritture.

    • Schema: scegli Aggiungi colonne per aggiungere colonne e tipi di dati delle colonne. Hai la possibilità di creare una tabella vuota e aggiornare lo schema in un secondo momento. Data Catalog supporta i tipi di dati Hive. Per ulteriori informazioni, consulta Tipi di dati Hive.

      Iceberg consente di evolvere lo schema e la partizione dopo aver creato la tabella. Puoi usare le query Athena per aggiornare lo schema della tabella e le query Spark per aggiornare le partizioni.

AWS CLI
aws glue create-table \ --database-name iceberg-db \ --region us-west-2 \ --open-table-format-input '{ "IcebergInput": { "MetadataOperation": "CREATE", "Version": "2" } }' \ --table-input '{"Name":"test-iceberg-input-demo", "TableType": "EXTERNAL_TABLE", "StorageDescriptor":{ "Columns":[ {"Name":"col1", "Type":"int"}, {"Name":"col2", "Type":"int"}, {"Name":"col3", "Type":"string"} ], "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/" } }'