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.
Sie können über Open-Source-Abfrage-Engines wie Apache Spark mithilfe des Amazon S3 S3-Tabellenkatalogs für Apache Iceberg Kundenkatalog. Amazon S3 S3-Tabellenkatalog für Apache Iceberg ist eine Open-Source-Bibliothek, die von AWS Labs gehostet wird. Es funktioniert durch Übersetzen Apache Iceberg Operationen in Ihren Abfrage-Engines (wie Tabellenerkennung, Metadaten-Updates und Hinzufügen oder Entfernen von Tabellen) in S3-Tabellen-API-Operationen.
Amazon S3 S3-Tabellenkatalog für Apache Iceberg wird vertrieben als Maven JAR genannts3-tables-catalog-for-iceberg.jar
. Sie können den Kundenkatalog erstellen JAR aus dem AWS Labs GitHub Repository
Verwenden des Amazon S3-Tabellenkatalogs für Apache Iceberg mit Apache Spark
Sie können den Amazon S3 S3-Tabellenkatalog verwenden für Apache Iceberg Client-Katalog, um eine Verbindung zu Tabellen aus Open-Source-Anwendungen herzustellen, wenn Sie einen initialisieren Spark Sitzung. In Ihrer Sitzungskonfiguration geben Sie an Iceberg und Amazon S3 S3-Abhängigkeiten und erstellen Sie einen benutzerdefinierten Katalog, der Ihren Tabellen-Bucket als Metadaten-Warehouse verwendet.
Um ein zu initialisieren Spark Sitzung mit dem Amazon S3-Tabellenkatalog für Apache Iceberg
-
Initialisieren Spark mit dem folgenden Befehl. Um den Befehl zu verwenden, ersetzen Sie den Amazon S3 S3-Tabellenkatalog für Apache Iceberg
version number
mit der neuesten Version von AWS Labs GitHub Repository unddas table bucket ARN
mit Ihrem eigenen Tabellen-Bucket ARN.spark-shell \ --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.6.1,software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:
0.1.4
\ --conf spark.sql.catalog.s3tablesbucket
=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket
.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket
.warehouse=arn:aws:s3tables:us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
\ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
Abfragen von S3-Tabellen mit Spark SQL
Die Verwendung von Spark, können Sie DQL-, DML- und DDL-Operationen auf S3-Tabellen ausführen. Wenn Sie Tabellen abfragen, verwenden Sie den vollqualifizierten Tabellennamen, einschließlich des Sitzungskatalognamens, nach diesem Muster:
CatalogName
.NamespaceName
.TableName
Die folgenden Beispielabfragen zeigen einige Möglichkeiten, wie Sie mit S3 Tables interagieren können. Um diese Beispielabfragen in Ihrer Abfrage-Engine zu verwenden, ersetzen Sie die user input placeholder
Werte durch Ihre eigenen.
Um Tabellen abzufragen mit Spark
-
Namespaces erstellen
spark.sql(" CREATE NAMESPACE IF NOT EXISTS
s3tablesbucket
.my_namespace
") -
Erstellen einer Tabelle
spark.sql(" CREATE TABLE IF NOT EXISTS
s3tablesbucket
.my_namespace
.`my_table
` ( id INT, name STRING, value INT ) USING iceberg ") -
Tabellen abfragen
spark.sql(" SELECT * FROM
s3tablesbucket
.my_namespace
.`my_table
` ").show() -
Fügen Sie Daten in eine Tabelle ein
spark.sql( """ INSERT INTO
s3tablesbucket
.my_namespace
.my_table
VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """) -
Lädt eine vorhandene Datendatei in eine Tabelle
Lesen Sie die Daten in Spark ein.
val data_file_location = "Path such as S3 URI to data file" val data_file = spark.read.parquet(
data_file_location
)Schreiben Sie die Daten in eine Iceberg-Tabelle.
data_file.writeTo("
s3tablesbucket
.my_namespace
.my_table
").using("Iceberg").tableProperty ("format-version", "2").createOrReplace()