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, 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:
-
Verwenden Sie den AWS Glue Crawler für Delta Lake-Tabellen. Weitere Informationen finden Sie unter Einführung der systemeigenen Unterstützung für Delta Lake-Tabellen mit AWS Glue Crawlern
im AWS Big Data-Blog und Planung eines AWS Glue Crawlers im AWS Glue Entwicklerhandbuch. -
Die Tabelle fallen lassen und in Athena neu erstellen.
-
Verwenden Sie das SDK, die CLI oder die AWS Glue Konsole, um das Schema in manuell zu aktualisieren AWS Glue.
Beachten Sie, dass für die folgenden Funktionen Ihr AWS Glue Schema immer dasselbe Schema wie das Transaktionslog 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 S3-Pfad als SerDe Parameter hinzufügen. AWS Glue
Sie können das folgende Verfahren verwenden, um eine Delta Lake-Tabelle mit Athena und AWS Glue Konsolen zu erstellen.
Um eine Delta Lake-Tabelle mit Athena und AWS Glue Konsolen zu erstellen
Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/
. -
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
colvom Typarray<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') Öffnen Sie die AWS Glue Konsole unter. https://console.aws.amazon.com/glue/
-
Wählen Sie im Navigationsbereich unter Data Catalog die Option Tabellen.
-
Wählen Sie in der Tabellenliste den Link für Ihre Tabelle aus.
-
Wählen Sie auf der Seite für die Tabelle Aktionen und Tabelle bearbeiten aus.
-
Fügen Sie im Abschnitt Serde-Parameter den Schlüssel
pathmit dem Werts3://amzn-s3-demo-bucket/hinzu.your-folder/ -
Wählen Sie Speichern.
Um eine Delta Lake-Tabelle mit dem zu erstellen 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" } }'