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:
-
Utilizza il crawler AWS Glue per le tabelle Delta Lake. Per ulteriori informazioni, consulta l'articolo Introduzione al supporto di tabelle native Delta Lake con i crawler AWS Glue
nel Blog sui big data di AWS e Pianificazione di un crawler AWS Glue nella Guida per gli sviluppatori di AWS Glue. -
Elimina e ricrea la tabella in Athena.
-
Utilizza l'SDK, la CLI o la console AWS Glue per aggiornare manualmente lo schema in AWS Glue.
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
Aprire la console Athena all'indirizzo https://console.aws.amazon.com/athena/
. -
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
TBLPROPERTIESdeve essere'spark.sql.sources.provider' = 'delta'e non'table_type' = 'delta'.Nota, inoltre, che questo stesso schema (con una sola colonna denominata
coldi tipoarray<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') Apri la console AWS Glue all'indirizzo https://console.aws.amazon.com/glue/
. -
Nel pannello di navigazione, seleziona Catalogo dati, Tabelle.
-
Nell'elenco delle tabelle, seleziona il link per la tabella.
-
Nella pagina della tabella seleziona Azioni, Modifica tabella.
-
Nella sezione Parametri Serde aggiungi la chiave
pathcon il valores3://amzn-s3-demo-bucket/.your-folder/ -
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" } }'