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

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

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

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 データベースの設定

アタッチ

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

検証

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

検証

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

ステップ 3

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

新規カタログを作成

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

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

登録

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

Delta Lake

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

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

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

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