Apache Hudi - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Apache Hudi

Apache Hudi是一个开源数据管理框架,可简化增量递增数据的处理。记录级别插入、更新、更新插入和删除操作的处理精度提高,从而减少开销。

要在 Athena for Spark 中使用 Apache Hudi 表,配置以下 Spark 属性。当选择 Apache Hudi 作为表格式时,这些属性是在 Athena for Spark 控制台中默认配置的属性。有关步骤,请参阅 编辑会话详细信息创建您自己的笔记本

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

以下过程向你展示了如何在 Athena for Spark 笔记本中使用 Apache Hudi 表。在笔记本的新单元格中运行每个步骤。

在 Athena for Spark 中使用 Apache Hudi 表
  1. 定义要在笔记本中使用的常量。

    DB_NAME = "NEW_DB_NAME" TABLE_NAME = "NEW_TABLE_NAME" TABLE_S3_LOCATION = "s3://example_path"
  2. 创建 Apache Spark DataFrame

    columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
  3. 创建数据库。

    spark.sql("CREATE DATABASE {} LOCATION '{}'".format(DB_NAME, TABLE_S3_LOCATION))
  4. 创建空白 Apache Hudi 表。

    spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING HUDI TBLPROPERTIES ( primaryKey = 'language', type = 'mor' ); """.format(DB_NAME, TABLE_NAME))
  5. 在表中插入一行数据。

    spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(DB_NAME,TABLE_NAME))
  6. 确认您可以查询新表。

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