レック・テクノロジー・コンサルティング株式会社TECH BLOG

Databricksで実現するデータガバナンス:データの発見から利用承認まで

組織でデータを管理している場合、部門間でデータを連携したいという場合があると思います。
例えば、データエンジニアリング部門が用意したデータをユーザ部門がBI開発のために利用する、といったケースです。

このような場合に、必要とするデータを発見→利用申請→利用承認→利用開始というステップを踏むことになりますが、そのデータ利用フローはDatabricksの純正機能だけで(外部のカタログツールを使わずに)実現可能です。

本記事では、Databricksの基本的なデータカタログ機能に加え、上記のデータ利用フローを実現する方法について具体的な例とともにご紹介します。

事前準備

ユーザ作成&追加

共有の確認用に以下のGoogleアカウントを作成しておきます。

  • 名前:ReQ Taro
  • メールアドレス:reqtaro2025@gmail.com

Databricksワークスペースに上記アカウントを追加します。

リネージの取得・参照

サンプルのスキーマ、テーブル、ビューを作成します。

-- スキーマ作成
CREATE SCHEMA IF NOT EXISTS SALES;
USE SCHEMA SALES;

-- テーブル作成
CREATE TABLE products (
  id INT,
  name STRING,
  unit_price FLOAT
);

CREATE TABLE daily_sales (
  id INT,
  product_id INT,
  quantity INT,
  sales_at TIMESTAMP
);

-- データ挿入
INSERT INTO products VALUES
(1, 'Desktop', 800),
(2, 'Laptop', 400),
(3, 'Monitor', 100);

INSERT INTO daily_sales VALUES
(1, 2, 2, '2024-01-14 09:00:00'),
(2, 3, 3, '2024-01-15 10:00:00'),
(3, 1, 1, '2024-01-16 15:00:00'),
(4, 3, 1, '2024-02-01 11:00:00'),
(5, 1, 2, '2024-02-01 11:00:00');

-- ビュー作成
CREATE VIEW sales_summary_view AS
WITH daily_sales_view AS (
  SELECT
    d.id AS id,
    p.id AS product_id,
    p.name AS product_name,
    d.quantity * p.unit_price AS sales,
    d.sales_at AS sales_at
  FROM daily_sales d
  LEFT JOIN products p
  ON d.product_id = p.id
)
SELECT
  product_id,
  product_name,
  SUM(sales) AS total_sales
FROM daily_sales_view
GROUP BY 1, 2
ORDER BY 1, 2;

作成したテーブルとビューは以下の通りです。

  • テーブル
    • products:製品データを格納したテーブル
    • daily_sales:売上データを格納したテーブル
  • ビュー
    • salesview:productsとdailysalesから作成した売上確認用ビュー

テーブルやビューを作成すると、それらの関係が自動的に取得され、「依存関係」タブから参照できるようになります。

image.png

ビジネスメタデータの登録・編集

「データ」→「データベース」から個別のテーブルやビューを確認し、テーブルや列のメタデータを登録、編集することができます。

image-1.png

※説明はAIに生成してもらうことも可能です。

画面上部の検索欄から、テーブルやビューのデータを検索できます。

image-2.png

データ共有と権限制御

通常の場合

オブジェクトへのアクセス権設定

上記で作成したサンプルデータについて、以下のようにアクセス権を設定します。

-- アカウント内の全ユーザに対し、カタログworkspace_01内のオブジェクトに対するメタデータ参照権限を与える
GRANT BROWSE ON CATALOG workspace_01 TO `account users`;

この場合、全員がworkspace_01カタログ内のテーブルとビューの情報を参照できます。

データの検索・利用

ReQ Taroはテーブルやビューのメタデータを参照できますが、SELECT権限が与えられていないため実際のデータのプレビューや参照はできません。ReQ Taroから見たとき、salesスキーマは画像のようにグレーアウトされています。

image-3.png

salesスキーマの所有者がスキーマのメニューで「アクセス権リクエストの宛先を管理」を開き、宛先を設定することで権限のリクエストが可能になります。

image-4.png

image-5.png

上記設定後、ReQ Taroから権限をリクエストすることが可能になります。

image-6.png

リクエストを送信すると宛先のアカウントにメール通知されます。

image-7.png

メール内のリンクを開いて内容を確認し、権限の付与を行います。

image-8.png

権限が付与されると、ReQ Taroからもsalesスキーマのデータが参照できるようになります。

image-9.png

プライベートエクスチェンジを利用する場合

プライベートエクスチェンジは、マーケットプレイスで特定のコンシューマーに対してのみデータ製品を展開することができる機能です。

メニューの「Marketplace」を開き、「プロバイダーコンソール」をクリックします。

image-10.png

プロファイル作成

次の画面で「プライベートプロバイダーの利用規約に同意」をクリックし、マーケットプレイスプライベートエクスチェンジプロバイダーを有効化します。

利用規約に同意後、「マーケットプレイスの管理者を割り当て」をクリックします。開いたアカウントコンソールの画面で、「マーケットプレイスのアドミン」を有効化します。

image-11.png

マーケットプレイス管理者の割り当てが完了したら、次の画面で「プロバイダーのプロファイルを作成」をクリックします。開いた画面でプロファイルを作成し、必要事項を記入して送信します。

image-12.png

作成が完了すると、以下のように表示されます。

image-13.png

※プロファイルは複数作成可能

取引所作成

リスティング作成時に必要となる取引所を作成します。

「取引所」タブを開き、「取引所を作成」をクリックします。
適当な名前を入力し、取引所を作成します。

image-14.png

取引所の作成後、「メンバー」タブから共有対象アカウントを設定することができます。

リスティング作成・公開

「リスティング」タブを開き、「リスティングを作成する」をクリックします。

リスティングの基本情報やアクセス、データアセットなどを設定し、「公開」をクリックします。

image-15.png

今回の設定内容は以下の通りです。

  • 一般
    • リスティング名:リスティングの名前
    • 説明:リスティングの説明
    • プロバイダープロファイル:上記で作成したプロファイル
  • アクセス
    • 公開先:プライベート取引所(上記で作成した取引所)
  • データアセット
    • コンシューマーのアクセス:リストへのアクセスリクエストが必要
    • 共有対象アセット:テーブル
  • 属性
    • カテゴリー:小売
    • アクセス:無料
  • 詳細
    • 説明:データの説明

データの検索・利用

公開すると、同ワークスペース内および共有対象アカウントからデータ製品を検索できるようになります。

image-16.png

image-17.png

「アクセス権をリクエスト」をクリックし、必要事項を記入してリクエストを送信します。

image-18.png

リクエストを送信すると連絡先のアカウントにメール通知されます。

image-19.png

メール内のリンクを開いて内容を確認し、承認(と共有の設定)を行います。

共有は「カタログ」の歯車アイコンから「Delta Sharing」→「自分が共有」→「データを共有」で作成可能です。
共有対象のアカウントと、共有対象のアセット(スキーマやテーブル)を設定します。

承認すると、ReQ Taro側のデータ製品ページの内容が更新されます。

image-20.png

「即時アクセス権を取得」ボタンをクリックすると、カタログのDelta共有にデータが追加され、利用可能になります。

image-21.png

補足:共有方法の使い分けについて

通常の共有とプライベートエクスチェンジには以下の違いがあります。

通常 プライベートエクスチェンジ
共有対象 組織内 グローバル
権限付与 簡単 簡単
オブジェクト共有先 カタログ Delta共有
データ探索 △(※1)

※1:自分で詳細情報を入力しないと、期待する形で検索に表示されない。含まれるテーブルやビューのメタデータが一切表示されない

組織内でデータを連携したい場合、通常の方法が最もシンプルかつスムーズなのでおすすめです。

参考

この記事をシェアする

  • Facebook
  • X
  • Pocket
  • Line
  • Hatena
  • Linkedin

資料請求・お問い合わせはこちら

ページトップへ戻る