Sincronizzazione dei metadati Delta Lake - Amazon Athena

Sincronizzazione dei metadati Delta Lake

Se usi Athena per creare la tua tabella Delta Lake, Athena sincronizza con AWS Glue i metadati della tabella, inclusi lo schema, le colonne delle partizioni e le proprietà della tabella. Con il passare del tempo, questi metadati possono perdere la sincronizzazione con i metadati della tabella sottostante nel log delle transazioni. Per mantenere aggiornata la tua tabella, puoi scegliere una delle seguenti opzioni:

Tieni presente che per le seguenti funzionalità è necessario che lo schema AWS Glue presenti sempre lo stesso schema del log delle transazioni:

  • Lake Formation

  • Visualizzazioni

  • Filtri di righe e colonne

Se per il tuo flusso di lavoro non è necessaria nessuna di queste funzionalità e preferisci non mantenere questa compatibilità, puoi utilizzare il DDL CREATE TABLE in Athena e quindi aggiungere il percorso Amazon S3 come parametro SerDe in AWS Glue.

È possibile utilizzare la procedura seguente per creare una tabella Delta Lake con Athena e AWS Glue console.

Creazione di una tabella Delta Lake utilizzando Athena e le console AWS Glue
  1. Aprire la console Athena all'indirizzo https://console.aws.amazon.com/athena/.

  2. Nell'editor di query Athena, utilizza il seguente DDL per creare una tabella Delta Lake. Tiene presente che quando utilizzi questo metodo il valore per TBLPROPERTIES deve essere 'spark.sql.sources.provider' = 'delta' e non 'table_type' = 'delta'.

    Nota, inoltre, che questo stesso schema (con una sola colonna denominata col di tipo array<string>) viene inserito quando utilizzi Apache Spark (Athena per Apache Spark) o la maggior parte degli altri motori per creare una tabella.

    CREATE EXTERNAL TABLE [db_name.]table_name(col array<string>) LOCATION 's3://amzn-s3-demo-bucket/your-folder/' TBLPROPERTIES ('spark.sql.sources.provider' = 'delta')
  3. Apri la console AWS Glue all'indirizzo https://console.aws.amazon.com/glue/.

  4. Nel pannello di navigazione, seleziona Catalogo dati, Tabelle.

  5. Nell'elenco delle tabelle, seleziona il link per la tabella.

  6. Nella pagina della tabella seleziona Azioni, Modifica tabella.

  7. Nella sezione Parametri Serde aggiungi la chiave path con il valore s3://amzn-s3-demo-bucket/your-folder/.

  8. Selezionare Salva.

Per creare una tabella Delta Lake utilizzandoAWS CLI, immettete un comando come il seguente.

aws glue create-table --database-name dbname \ --table-input '{"Name" : "tablename", "StorageDescriptor":{ "Columns" : [ { "Name": "col", "Type": "array<string>" } ], "Location" : "s3://amzn-s3-demo-bucket/<prefix>/", "SerdeInfo" : { "Parameters" : { "serialization.format" : "1", "path" : "s3://amzn-s3-demo-bucket/<prefix>/" } } }, "PartitionKeys": [], "TableType": "EXTERNAL_TABLE", "Parameters": { "EXTERNAL": "TRUE", "spark.sql.sources.provider": "delta" } }'