Linux Foundation Delta Lake - Amazon Athena

Linux Foundation Delta Lake

Linux Foundation Delta Lake は、ビッグデータ分析に使用できるテーブル形式です。Athena for Spark を使用して、Amazon S3 に保存されている Delta Lake テーブルを直接読み取れます。

Athena for Spark で Delta Lake テーブルを使用するには、次の Spark プロパティを設定します。これらのプロパティは、Athena for Spark コンソールでテーブル形式として Delta Lake を選択したときに、デフォルトで自動的に設定されます。手順については、「セッションの詳細を編集する」または「独自のノートブックの作成」を参照してください。

"spark.sql.catalog.spark_catalog" : "org.apache.spark.sql.delta.catalog.DeltaCatalog", "spark.sql.extensions" : "io.delta.sql.DeltaSparkSessionExtension"

以下の手順では、Athena for Spark ノートブックで Delta Lake テーブルを使用する方法を示しています。ノートブックの新しいセルで各ステップを実行します。

Athena の Spark で Delta Lake テーブルを使用する方法
  1. ノートブックで使用する定数を定義します。

    DB_NAME = "NEW_DB_NAME" TABLE_NAME = "NEW_TABLE_NAME" TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket"
  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. 空の Delta Lake テーブルを作成します。

    spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING DELTA """.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()