Compilazione e gestione delle tabelle transazionali - AWS Glue

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à.

Compilazione e gestione delle tabelle transazionali

Apache Iceberg, Apache Hudi e Linux Foundation Delta Lake sono formati di tabelle open source progettati per gestire analisi di dati su larga scala e carichi di lavoro di data lake in Apache Spark.

È possibile popolare le tabelle Iceberg, Hudi e Delta Lake utilizzando i seguenti metodi: AWS Glue Data Catalog

  • Crawler di AWS Glue; — Crawler di AWS Glue s può scoprire e popolare automaticamente i metadati delle tabelle Iceberg, Hudi e Delta Lake nel Data Catalog. Per ulteriori informazioni, consulta Utilizzo dei crawler per popolare il Data Catalog .

  • AWS Glue Processi ETL: puoi creare lavori ETL per scrivere dati nelle tabelle Iceberg, Hudi e Delta Lake e popolare i relativi metadati nel Data Catalog. Per ulteriori informazioni, consulta Using Data Lake Frameworks with ETL jobs. AWS Glue

  • AWS Glue console, AWS Lake Formation console AWS CLI o API: puoi utilizzare la AWS Glue console, la console Lake Formation o l'API per creare e gestire le definizioni delle tabelle Iceberg nel Data Catalog.

Creazione di tabelle Apache Iceberg

Puoi creare 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, AWS Glue 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, operazione nota 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 AWS Glue 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.

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 sede Amazon S3 al 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 Undering Data Access Control ulink.

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 AWS Glue la console Lake Formation o AWS Command Line Interface come documentato in questa pagina. Puoi anche creare tabelle Iceberg usando. Crawler di AWS Glue Per ulteriori informazioni, consulta Data Catalog and Crawlers nella Developer Guide. AWS Glue

Per creare una tabella Iceberg

Console
  1. Accedere AWS Management Console e aprire la AWS Glue console all'indirizzo https://console.aws.amazon.com/glue/.

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

    • Nome tabella: immettete 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.

    • 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/" } }'
Argomenti