Delta-Lake-Metadaten synchronisieren - Amazon Athena

Delta-Lake-Metadaten synchronisieren

Athena synchronisiert Tabellenmetadaten, einschließlich Schema, Partitionsspalten und Tabelleneigenschaften, mit AWS Glue, wenn Sie Athena zum Erstellen Ihrer Delta-Lake-Tabelle verwenden. Im Laufe der Zeit können diese Metadaten deren Synchronisierung mit den zugrunde liegenden Tabellenmetadaten im Transaktionsprotokoll verlieren. Um Ihre Tabelle auf dem neuesten Stand zu halten, können Sie eine der folgenden Optionen auswählen:

Beachten Sie, dass für die folgenden Features Ihr AWS Glue-Schema immer dasselbe Schema wie das Transaktionsprotokoll haben muss:

  • Lake Formation

  • Ansichten

  • Zeilen- und Spaltenfilter

Wenn Ihr Workflow keine dieser Funktionen benötigt und Sie es vorziehen, diese Kompatibilität nicht aufrechtzuerhalten, können Sie CREATE TABLE-DDL in Athena verwenden und dann den Amazon-S3-Pfad als SerDe-Parameter in AWS Glue hinzufügen.

Sie können das folgende Verfahren verwenden, um eine Delta-Lake-Tabelle mit Athena und AWS Glue-Konsolen zu erstellen.

Zur Erstellung einer Delta-Lake-Tabelle mit den Athena- und AWS Glue-Konsolen
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Verwenden Sie im Athena-Abfrage-Editor die folgende DDL, um Ihre Delta-Lake-Tabelle zu erstellen. Beachten Sie, dass bei Verwendung dieser Methode der Wert für TBLPROPERTIES 'spark.sql.sources.provider' = 'delta' sein muss und nicht 'table_type' = 'delta'.

    Beachten Sie, dass dasselbe Schema (mit einer einzigen Spalte namens col vom Typ array<string>) eingefügt wird, wenn Sie Apache Spark (Athena für Apache Spark) oder die meisten anderen Engines verwenden, um Ihre Tabelle zu erstellen.

    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. Öffnen Sie die AWS Glue-Konsole unter https://console.aws.amazon.com/glue/.

  4. Wählen Sie im Navigationsbereich unter Data Catalog die Option Tabellen.

  5. Wählen Sie in der Tabellenliste den Link für Ihre Tabelle aus.

  6. Wählen Sie auf der Seite für die Tabelle Aktionen und Tabelle bearbeiten aus.

  7. Fügen Sie im Abschnitt Serde-Parameter den Schlüssel path mit dem Wert s3://amzn-s3-demo-bucket/your-folder/ hinzu.

  8. Wählen Sie Speichern.

Um eine Delta-Lake-Tabelle mit AWS CLI zu erstellen, geben Sie einen Befehl wie den folgenden ein.

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" } }'