メインコンテンツへジャンプ

レイクハウスのデータをカタログ化

プラットフォーム全体でシームレスなアクセスを提供するには、強力なカタログサーバーが必要です。

AWS Glue を Databricks のカタログとして使用

全てのサービスにわたってデータを発見するには、データを見つけてアクセスできる強力なカタログが必要です。 AWS Glue サービスは、サーバーレスの Apache 互換の Hive メタストアであり、AWS サービスやアプリケーション、AWS アカウント間でテーブルメタデータの共有を容易にします。Databricks と Delta Lake は AWS Glue と統合されており、組織内のデータを検出し、Delta Lake にデータを登録し、Databricks インスタンス間でデータを検出します。

メリット

Databricks は AWS Glue と事前に統合されています。

Icon Graphic

シンプル

シンプルな管理:複数の Databricks ワークスペースで同一の AWS Glue カタログを共有

home icon

セキュリティ

統合セキュリティ: AWS Glue のメタデータのための IAM 認証情報のパススルー詳細な説明については、 Databricks のブログ「Databricks - AWS IAM 認証情報パススルー」をご覧ください。

Icon Graphic

コラボレーション

容易なデータアクセス: Amazon サービスのメタデータ、AWS Glue でカタログ化されたデータへの容易なアクセス

Databricks Delta Lake と AWS コアサービスの統合

このリファレンス実装は、最も複雑なデータレイクの課題を解決するための、AWS コアサービスとのDatabricks Delta Lake のユニークな統合を説明しています。 Delta Lake は S3上で動作し、Amazon Kinesis、AWS Glue、Amazon Athena、Amazon Redshift、Amazon QuickSight などと統合されています。

Delta Lake を初めてお使いになる方は、こちらをご覧ください。

delta-lake-code-imgs

icon-orange-hive-metastore-execution

Amazon Athena と Presto が Delta Lake をサポート

外部テーブルがマニフェストファイルを使用して Hive メタストアで定義されている場合、Presto とAmazon Athena は、ディレクトリリストでファイルを見つけるのではなく、マニフェストファイル内のファイルのリストを使用できます。 これらのテーブルは、Parquet のような形式で保存されたデータを持つテーブルと同じようにクエリできます。

Databricks と AWS Glue の統合

ステップ 1

AWS Glue カタログにアクセスするための Databrick クラスターの設定方法

起動

まず、必要な AWS Glue Catalog IAM ロールを使用して Databricks 計算クラスターを起動します。Databricks AWS Glue as Metastore のドキュメントには、IAM のロールとポリシーの要件ステップバイステップで明確に説明されています。

この例では、Field_Glue_Role という AWS IAM ロールを作成し、同時に S3 バケットへの委任アクセスも持たせます。デモ動画に示されているように、クラスター構成にロールをアタッチします。

デモ動画を見る

delta-lake-code-imgs

更新

次に、クラスターの起動前に、クラスター構成の Spark 構成プロパティを、更新方法の動画に示されているように設定する必要があります。

Databricks クラスターの Spark 構成プロパティを更新する方法をご覧ください。

delta-lake-code-imgs

ステップ 2

Databricks のノートブックを使用した AWS Glue データベースの設定

delta-lake-code-imgs

アタッチ

AWS Glue データベースを作成する前に、前のステップで作成したノートブックにクラスターをアタッチし、ここに示すコマンドでセットアップをテストしてください。

delta-lake-code-imgs

検証

次に、AWS Glue コンソールを使用して同じデータベースのリストが表示されることを確認し、データベースをリストアップします。

delta-lake-code-imgs

検証

ノートブックから新しい AWS Glue データベースを直接作成し、SHOW DATABASES を再発行して新しい AWS Glue データベースが正常に作成されたことを確認します。AWS Glue データベースは、データペインからも確認できます。

ステップ 3

同じメタストアを使用して Delta Lake テーブルとマニフェストファイルを作成します。

delta-lake-code-imgs

新規カタログを作成

ノートブックから直接テーブルを作成し、AWS Glue データカタログに登録します。 クローラを使用したテーブルの作成と登録については、Populating the AWS Glue data catalog をご覧ください。

ここでのデモデータセットは、MovieLens と呼ばれる映画推薦サイトからのもので、映画の評価で構成されています。 この python コードで DataFrame を作成します。

delta-lake-code-imgs

登録

次に、 DataFrame を一時テーブルとして登録し、SQL コマンドを使用してアクセスします。

code snippet

Delta Lake

前のステップで作成した一時テーブルとこの SQL コマンドを使用して、Delta Lake テーブルを作成します。

注: Delta Lake クイックスタートガイドにあるように、Delta Lake テーブルを作成するのはとても簡単です。

delta-lake-code-imgs

Amazon Athena 用マニフェストの生成

次の手順で、Amazon Athena が必要とするマニフェストファイルを生成します。

1. Scala メソッドを実行してマニフェストを生成します。 python、SQL または R のノートブックを作成した場合は、セルの先頭に %scala を付けることを忘れないでください。

2. 特殊なフォーマット SymlinkTextInputFormat とマニフェストファイルの場所を使用して、Athena に接続された Hive メタストアにテーブルを作成します。

サンプルコードでは、マニフェストファイルは、s3a://aws-airlifts/movies_delta/_symlink_format_manifest/ ファイルの場所に作成されます。

ステップ 4

Amazon Athena を使用して、 Delta Lake テーブルのクエリを実行

Amazon Athena

Athena は、管理・維持するためのインフラを必要としないサーバーレスサービスです。 そのため、Delta テーブルをクエリする際に、Databricks クラスターが稼働している必要はありません。

Amazon Athena コンソールからデータベースを選択し、動画に示すようにテーブルをプレビューします。

video_thumb

まとめ

AWS Glue を統合することで、AWS エコシステムを利用する全ての企業に強力なサーバーレスメタストア戦略を提供します。 Delta Lake でデータレイクの信頼性を高め、Amazon Athena と統合することでシームレスなサーバーレスデータアクセスを提供します。 Databricks レイクハウスプラットフォームは AWS 上でのデータレイク戦略を支え、データアナリスト、データエンジニア、データサイエンティストによる高性能で信頼性の高いデータアクセスを可能にします。

関連リソース

動画

ty-tn

ブログ

ty-tn

導入事例

OG

無料お試し・その他ご相談を承ります