APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

DatabricksのUnity Catalogによって管理されるデータをDelta Sharingで共有してみる

はじめに

GLB事業部 Lakehouse 部のメイです。

この記事では Databricks の Unity Catalogで管理されるデータを Delta Sharingで共有する方法を紹介致します。 デルタテーブル内である全体のデータまたはチェンジデータフィード (Change Data Feed) を REST API で取得し、Pandas を利用してCSVで保存する検証を共有します。

目次

Delta Sharing とは

組織内外に安全にデータを共有するには Databricks の Delta Sharing とのネイティブなインテグレーションをご活用いただけることになります。

Databricks 上でProvider としてデータを共有することでいくつかのメリットがあります。

  • Delta Lake のライブ データを、別のシステムにコピーすることなく簡単に共有できる
  • Pandas、Apache Spark™、Rust など多様なクライアントをサポートがあり、他のシステムから直接接続できる
  • 共有されるデータへのアクセスを簡単に管理、追跡、監査できる
  • S3、ADLS、GCS などのクラウド ストレージを活用し、テラバイトのデータを効率的に共有できる
  • 多量のデータから変更データのみの共有もできる
  • REST API の開発コストや時間を減らせる

github.com

Provider側のアクセス管理

前提としては

  • Databricks ワークスペースでの Unity Catalog の有効化
  • Delta Sharing の有効化
  • メタストア管理者ロール、または CREATE SHARE ・ CREATE RECIPIENT 権限を持っているユーザー・グループ

が必要になります。 この検証では Unity Catalog と Delta Sharing を有効化し、メタストア管理者ロールで実施します。

  1. サンプルデータをDeltaテーブルとして保存します。

Unity Catalogでの構造は以下となります。

  • カタログ名 : may
  • スキーマ名 : default
  • テーブル名 : customer
  1. 変更データを取得できるようにテーブルの設定 (ChangeDataFeed) を変更します。

  2. 共有先を作成します。

  3. Recipient を作成します。

  4. Recipient 側で利用できる資格情報をリンクでダウンロードします。

  5. 共有データを追加します。

Recipient (データ受領者) 側で REST API を利用する

Google Colab ノートブックでDelta Sharingライブラリを導入します。 Provider側でダウンロードしたConfigファイルもアップロードします。

  1. 共有されたデータを確認します。

  2. テーブルからデータを取得します。

  3. テーブル履歴での最新のバージョンを確認します。 変更されてない状態でバージョンは1となります。

変更データのみ取得する

  1. Provider側でテーブル内のデータを変更し、変更分のみのデータを取得します。

  2. Provider側のテーブル履歴で最新のバージョンを確認します。 データは変更された状態でバージョンは2になります。

  3. Recipient 側で最新のバージョンを取得します。

  4. Recipient 側で変更データのみを取得します。

  5. 最後にデータをCSVファイルとして保存します。

最後までご覧いただきありがとうございます。   引き続きどうぞよろしくお願い致します!

私たちはDatabricksを用いたデータ分析基盤の導入から内製化支援まで幅広く支援をしております。   もしご興味がある方は、お問い合わせ頂ければ幸いです。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です!   APCにご興味がある方の連絡をお待ちしております。

www.ap-com.co.jp