Tutorial: Nozioni di base su Tabelle S3 - Amazon Simple Storage Service

Tutorial: Nozioni di base su Tabelle S3

In questo tutorial, l'utente crea un bucket di tabelle e integra bucket di tabelle nella propria Regione con i servizi di analisi di AWS. Successivamente, utilizza AWS CLI per creare il primo namespace e la prima tabella nel bucket di tabelle. Quindi, utilizza AWS Lake Formation per fornire l’autorizzazione per la tabella, in modo da poter iniziare a eseguire query sulla tabella con Athena.

Suggerimento

Per migrare dati tabulari da bucket per uso generico a bucket di tabelle, la Biblioteca di soluzioni AWS offre all’utente una soluzione guidata. Questa soluzione automatizza lo spostamento delle tabelle Apache Iceberg e Apache Hive registrate in AWS Glue Data Catalog e archiviate in bucket per uso generico ai bucket di tabelle utilizzando AWS Step Functions e Amazon EMR con Apache Spark. Per ulteriori informazioni, consulta Linee guida per la migrazione dei dati tabulari da Amazon S3 a Tabelle S3 nella Biblioteca di soluzioni AWS.

Passaggio 1: Creare un bucket di tabelle e integrarlo con i servizi di analisi di AWS

In questa fase utilizzi la console Amazon S3 per creare il tuo primo bucket di tabelle. Per conoscere altri metodi per creare un bucket di tabelle, consulta Creazione di un bucket di tabelle.

Nota

Per impostazione predefinita, la console Amazon S3 integra automaticamente i bucket di tabelle con Amazon SageMaker Lakehouse, che consente ai servizi di analisi AWS di individuare e accedere automaticamente ai dati di Tabelle S3. Se si crea il primo bucket di tabelle in modo programmatico utilizzando AWS Command Line Interface (AWS CLI), AWS SDK o REST API, è necessario completare manualmente l’integrazione dei servizi di analisi AWS. Per ulteriori informazioni, consulta Integrazione di Tabelle Amazon S3 con i servizi di analisi AWS.

  1. Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/.

  2. Sulla barra di navigazione nella parte superiore della pagina scegli il nome della Regione AWS attualmente visualizzata. Quindi, scegli la Regione in cui creare il bucket di tabelle.

  3. Nel pannello di navigazione a sinistra, scegli Bucket di tabelle.

  4. Seleziona Crea bucket di tabelle.

  5. In Configurazione generale, inserisci un nome per il bucket di tabelle.

    Il nome del bucket di tabelle deve:

    • Essere univoco nell'Account AWS dell'utente nella Regione corrente.

    • Deve contenere da 3 a 63 caratteri

    • Essere costituito solo da lettere minuscole, numeri e trattini (-).

    • Iniziare e finire con una lettera o un numero.

    Una volta creato il bucket di tabelle, non è possibile modificarne il nome. L’Account AWS che crea il bucket di tabelle ne è proprietario. Per ulteriori informazioni sulla denominazione dei bucket di tabelle, consulta Regole di denominazione dei bucket di tabelle.

  6. Nella sezione Integrazione con i servizi di analisi AWS, assicurati che la casella di controllo Abilita integrazione sia selezionata.

    Quando si crea il primo bucket di tabelle utilizzando la console con l’opzione Abilita integrazione selezionata, Amazon S3 tenta di integrare il bucket di tabelle con i servizi di analisi AWS. Questa integrazione consente di utilizzare i servizi di analisi di AWS per accedere a tutte le tabelle nella Regione corrente. Per ulteriori informazioni, consulta Integrazione di Tabelle Amazon S3 con i servizi di analisi AWS.

  7. Scegliere Create bucket (Crea bucket).

Fase 2: creare un namespace di tabelle e una tabella

In questa fase si crea un namespace nel bucket di tabelle e quindi si crea una nuova tabella nel namespace. È possibile creare un namespace di tabelle e una tabella utilizzando la console o AWS CLI.

Importante

Durante la creazione delle tabelle, è necessario utilizzare solo lettere minuscole nei nomi delle tabelle e nelle definizioni delle tabelle. Ad esempio, è necessario verificare che i nomi delle colonne siano tutti in minuscolo. Se il nome della tabella o la definizione della tabella contiene lettere maiuscole, la tabella non è supportata da AWS Lake Formation né dal AWS Glue Data Catalog. In questo caso, la tabella non sarà visibile ai servizi di analisi AWS come Amazon Athena, anche se i bucket di tabelle sono integrati con i servizi di analisi AWS.

Se la definizione della tabella contiene lettere maiuscole, viene visualizzato il seguente messaggio di errore durante l’esecuzione di una query SELECT in Athena: “GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.”

La procedura seguente utilizza la console di Amazon S3 per creare un namespace e una tabella con Amazon Athena.

Come creare un namespace e una tabella
  1. Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Bucket di tabelle.

  3. Nella pagina Bucket di tabelle, scegli il bucket di tabelle in cui creare una tabella.

  4. Nella pagina dei dettagli del bucket di tabelle, scegli Crea tabella con Athena.

  5. Nella finestra di dialogo Crea tabella con Athena, scegli Crea un namespace, quindi inserisci un nome nel campo Nome del namespace. I nomi dei namespace devono essere composti da un numero di caratteri compreso tra 1 e 255 ed essere univoci all’interno del bucket di tabelle. I caratteri validi sono a-z, 0-9 e i caratteri di sottolineatura (_). I caratteri di sottolineatura non sono consentiti all’inizio dei nomi dei namespace.

  6. Selezionare Create namespace (Crea spazio dei nomi).

  7. Scegli Crea tabella con Athena.

  8. Si apre la console Amazon Athena e viene visualizzato l’editor di query Athena. L’editor di query è popolato con una query di esempio da utilizzare per creare una tabella. Modifica la query per specificare il nome della tabella e le colonne della tabella.

  9. Una volta modificata la query, scegli Esegui per creare la tabella.

Se la creazione della tabella viene completata, il nome della nuova tabella viene visualizzato nell’elenco delle tabelle in Athena. Quando torni alla console Amazon S3, la nuova tabella viene visualizzata nell’elenco Tabelle nella pagina dei dettagli del bucket di tabelle, dopo aver aggiornato l’elenco.

Per utilizzare i seguenti comandi AWS CLI di esempio per creare un namespace nel bucket di tabelle e quindi creare una nuova tabella con uno schema nel namespace, sostituisci i valori user input placeholder con le informazioni appropriate.

Prerequisiti
  1. Crea un nuovo namespace nel bucket di tabelle eseguendo il comando seguente:

    aws s3tables create-namespace \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace
    1. Verifica che il namespace sia stato creato correttamente eseguendo il comando seguente:

      aws s3tables list-namespaces \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket
  2. Crea una nuova tabella con uno schema di tabella eseguendo il seguente comando:

    aws s3tables create-table --cli-input-json file://mytabledefinition.json

    Per il file mytabledefinition.json, utilizza la seguente definizione di tabella di esempio:

    { "tableBucketARN": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket", "namespace": "my_namespace", "name": "my_table", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [ {"name": "id", "type": "int","required": true}, {"name": "name", "type": "string"}, {"name": "value", "type": "int"} ] } } } }

(Facoltativo) Fase 3: concedere le autorizzazioni di Lake Formation per la tabella

In questa fase, concedi le autorizzazioni di Lake Formation per la nuova tabella ad altri principali IAM. Queste autorizzazioni consentono a principali diversi da te di accedere alle risorse del bucket di tabelle utilizzando Athena e altri servizi di analisi AWS. Per ulteriori informazioni, consulta Concessione dell’autorizzazione Lake Formation per una tabella o un database. Se sei l’unico utente che accede alle tabelle, questa fase può essere ignorata.

  1. Aprire la console AWS Lake Formation all'indirizzo https://console.aws.amazon.com/lakeformation/ e accedere come amministratore del data lake. Per ulteriori informazioni su come creare un amministratore di data lake, consulta Creare un amministratore di data lake.

  2. Nel riquadro di navigazione scegli Autorizzazioni dati, quindi seleziona Concedi.

  3. Nella pagina Concedi le autorizzazioni, in Principali scegli Utenti e ruoli IAM e scegli l’utente o il ruolo IAM a cui desideri consentire l’esecuzione di query sulla tabella.

  4. In LF-Tags o risorse del catalogo, scegli Risorse Catalogo dati denominato.

  5. Effettua una delle seguenti operazioni, a seconda se l’accesso deve essere fornito a tutte le tabelle dell’account o solo alle risorse all’interno del bucket di tabelle che hai creato:

    • Per Cataloghi, scegli il catalogo a livello di account creato dall’integrazione del bucket di tabelle. Ad esempio, 111122223333:s3tablescatalog.

    • Per Cataloghi, scegli il catalogo secondario per il bucket di tabelle. Ad esempio, 111122223333:s3tablescatalog/amzn-s3-demo-table-bucket.

  6. (Facoltativo) Se hai scelto il catalogo secondario per il bucket di tabelle, esegui una o entrambe le operazioni seguenti:

    • Per Database, scegli il namespace di bucket di tabelle creato.

    • Per Tabelle, scegli la tabella creata nel bucket di tabelle o scegli Tutte le tabelle.

  7. A seconda che si scelga un catalogo o un catalogo secondario e un database o una tabella, è possibile impostare le autorizzazioni a livello di catalogo, database o tabella. Per ulteriori informazioni sulle autorizzazioni Lake Formation, consulta Gestione delle autorizzazioni Lake Formation nella Guida per gli sviluppatori di AWS Lake Formation.

    Esegui una di queste operazioni:

    • Per Autorizzazioni del catalogo, scegli Super per fornire all’altro principale tutte le autorizzazioni per il catalogo oppure scegli autorizzazioni più dettagliate, come Descrivi.

    • Per Autorizzazioni del database, non è possibile scegliere Super per fornire all’altro principale tutte le autorizzazioni sul database. Scegli invece autorizzazioni più dettagliate, come Descrivi.

    • Per Autorizzazioni della tabella, scegli Super per fornire all’altro principale tutte le autorizzazioni per la tabella oppure scegli autorizzazioni più dettagliate, come Seleziona o Descrivi.

      Nota

      Quando fornisci le autorizzazioni Lake Formation per una risorsa catalogo dei dati a un account esterno o direttamente a un principale IAM in un altro account, Lake Formation utilizza il servizio AWS Resource Access Manager (AWS RAM) per condividere la risorsa. Se l’account assegnatario appartiene alla stessa organizzazione dell’account concedente, la risorsa condivisa è immediatamente disponibile per l’assegnatario. Se l’account assegnatario non appartiene alla stessa organizzazione, AWS RAM invia un invito all’account assegnatario per accettare o rifiutare la concessione della risorsa. Quindi, per rendere disponibile la risorsa condivisa, l’amministratore del data lake nell’account assegnatario deve utilizzare la console AWS RAM o AWS CLI per accettare l’invito. Per ulteriori informazioni sulla condivisione dei dati multi-account, consulta Condivisione dei dati tra account in Lake Formation nella Guida per gli sviluppatori di AWS Lake Formation.

  8. Scegli Concessione.

Fase 4: eseguire query sui dati con SQL in Athena

È possibile eseguire query sulla tabella con SQL in Athena. Athena supporta le query Data Definition Language (DDL), Data Manipulation Language (DML) e Data Query Language (DQL) per Tabelle S3.

È possibile accedere alla query Athena dalla console Amazon S3 o tramite la console Amazon Athena.

La procedura seguente utilizza la console Amazon S3 per accedere all’editor di query Athena in modo da poter eseguire query su una tabella con Amazon Athena.

Come eseguire query su una tabella
  1. Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/.

  2. Nel pannello di navigazione a sinistra, scegli Bucket di tabelle.

  3. Nella pagina Bucket di tabelle, scegli il bucket di tabelle contenente la tabella sui cui desideri eseguire la query.

  4. Nella pagina dei dettagli del bucket di tabelle, scegli il pulsante di opzione accanto al nome della tabella su cui desideri eseguire una query.

  5. Scegli Interroga tabella con Athena.

  6. Si apre la console Amazon Athena e viene visualizzato l’editor di query Athena con una query SELECT di esempio caricata automaticamente. Modifica questa query in base alle esigenze del caso d’uso.

  7. Per eseguire la query, scegli Run (Esegui).

Come eseguire query su una tabella
  1. Aprire la console Athena all'indirizzo https://console.aws.amazon.com/athena/.

  2. Eseguire una query sulla tabella. Di seguito è riportata una query di esempio che è possibile modificare. Assicurarsi di sostituire user input placeholders con le proprie informazioni.

    SELECT * FROM "s3tablescatalog/amzn-s3-demo-table-bucket"."my_namespace"."my_table" LIMIT 10
  3. Per eseguire la query, scegli Run (Esegui).