Apache-Hudi-Tabellen in Athena für Spark verwenden - Amazon Athena

Apache-Hudi-Tabellen in Athena für Spark verwenden

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: Bearbeiten Sie Sitzungsdetails oder Schritt 7: Erstellen Sie ein eigenes Notebook.

"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()