Synchronisieren Sie Delta Lake-Metadaten - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Synchronisieren Sie Delta Lake-Metadaten

Athena synchronisiert Tabellenmetadaten, einschließlich Schema, Partitionsspalten und Tabelleneigenschaften, zu AWS Glue wenn Sie Athena verwenden, um Ihre Delta Lake-Tabelle zu erstellen. 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 Funktionen AWS Glue Schema, um immer dasselbe Schema wie das Transaktionslog zu haben:

  • 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 den Amazon S3-Pfad verwenden und dann den Amazon S3 S3-Pfad als SerDe Parameter hinzufügen in AWS Glue.

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

Um eine Delta Lake-Tabelle mit Athena zu erstellen und AWS Glue Konsolen
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Gehen Sie im Athena-Abfrage-Editor wie folgt vor, 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 AWS Glue Konsole bei. 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 Save (Speichern) aus.

Um eine Delta Lake-Tabelle zu erstellen, verwenden Sie AWS CLI, 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" } }'