Verwenden Sie Apache Hudi-Tabellen in Athena für Spark - 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.

Verwenden Sie Apache Hudi-Tabellen in Athena für Spark

Apache Hudi ist ein Open-Source-Datenmanagement-Framework, das die inkrementelle Datenverarbeitung vereinfacht. Aktionen zum Einfügen, Aktualisieren, Upsert und Löschen auf Datensatzebene werden mit höherer Präzision verarbeitet, wodurch der Overhead reduziert wird.

Um Apache-Hudi-Tabellen in Athena für Spark zu verwenden, konfigurieren Sie die folgenden Spark-Eigenschaften. Diese Eigenschaften werden standardmäßig in der Athena für Spark-Konsole für Sie konfiguriert, wenn Sie Apache-Hudi als Tabellenformat wählen. Die Schritte finden Sie in Schritt 4: Sitzungsdetails bearbeiten oder Schritt 7: Erstellen Sie Ihr eigenes Notizbuch.

"spark.sql.catalog.spark_catalog": "org.apache.spark.sql.hudi.catalog.HoodieCatalog", "spark.serializer": "org.apache.spark.serializer.KryoSerializer", "spark.sql.extensions": "org.apache.spark.sql.hudi.HoodieSparkSessionExtension"

Das folgende Verfahren zeigt Ihnen, wie Sie eine Apache-Hudi-Tabelle in einem Athena für Spark-Notebook verwenden. Führen Sie jeden Schritt in einer neuen Zelle im Notebook aus.

Wie Sie Apache-Hudi-Tabellen in Amazon Athena für Apache Spark verwenden
  1. Definieren Sie die Konstanten, die im Notebook verwendet werden sollen.

    DB_NAME = "NEW_DB_NAME" TABLE_NAME = "NEW_TABLE_NAME" TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket"
  2. Erstellen Sie einen Apache Spark. DataFrame

    columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
  3. Erstellen Sie eine Datenbank.

    spark.sql("CREATE DATABASE {} LOCATION '{}'".format(DB_NAME, TABLE_S3_LOCATION))
  4. Erstellen Sie eine leere Apache-Hudi-Tabelle.

    spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING HUDI TBLPROPERTIES ( primaryKey = 'language', type = 'mor' ); """.format(DB_NAME, TABLE_NAME))
  5. Fügt eine Datenzeile in die Tabelle ein.

    spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(DB_NAME,TABLE_NAME))
  6. Vergewissern Sie sich, dass Sie die neue Tabelle abfragen können.

    spark.sql("SELECT * FROM {}.{}".format(DB_NAME, TABLE_NAME)).show()