Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unity Catalog データ分離設計ガイド / Unity Catalog Data I...

Unity Catalog データ分離設計ガイド / Unity Catalog Data Isolation Design Guide

Unity Catalogの設計の中でも重要なデータ分離の設計にフォーカスした資料です。

Databricks Japan

June 02, 2024
Tweet

More Decks by Databricks Japan

Other Decks in Technology

Transcript

  1. ©2024 Databricks Inc. — All rights reserved Unity Catalog データ分離

    設計ガイド データブリックス ジャパン株式会社 2024年5月30日 1
  2. ©2024 Databricks Inc. — All rights reserved アジェンダ • Unity

    Catalog (UC) 概要 • データ分離の設計に関連する機能 • Unity Catalog自動有効化 • ワークスペースカタログバインディング • Delta Sharing - Databricks to Databricks • IaC (Infrastructure as Code) • UCの主要な管理者ロール • データ分離の設計パターン UCの設計の中でも重要なデータ分離の設計にフォーカス 2 1 2 3 4
  3. ©2024 Databricks Inc. — All rights reserved 本セッションの元ネタ資料 Unity Catalog技術ディープダイブ

    実践者向けプレイブック (Speaker Deck) • speakerdeck.com/databricksjapan/unity-catalog-ji-shu-deipudaibu Unity Catalogの自動有効化 (Speaker Deck) • speakerdeck.com/databricksjapan/unity-catalognozi-dong-you-xiao-hua Unity Catalogのベストプラクティス (Docs) • AWS docs.databricks.com/ja/data-governance/unity-catalog/best-practices.html • Azure learn.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/best-practices • GCP docs.gcp.databricks.com/ja/data-governance/unity-catalog/best-practices.html 本セッションでは以下の資料からエッセンスを抽出してご紹介します。 セッション終了後にぜひご覧ください。 3
  4. ©2024 Databricks Inc. — All rights reserved Databricks ワークスペース2 Unity

    Catalog 概要 Unity Catalog なしの場合 Unity Catalog ありの場合 Databricks ワークスペース1 Databricks ワークスペース Databricks ワークスペース Unity Catalog ユーザー管理 メタストア クラスター SQLウェアハウス クラスター SQLウェアハウス ユーザー管理 メタストア クラスター SQLウェアハウス ユーザー管理 メタストア クラスター SQLウェアハウス アクセス制御 アクセス制御 アクセス制御 外部 データベース 以前はワークスペースごとにユーザーやメタストアなどの管理が必要だったが、 Unity Catalogによりアカウント単位で一元的に管理できるようになった 5
  5. ©2024 Databricks Inc. — All rights reserved Unity Catalog: データとAIの統合ガバナンス

    UCは2021年のData + AI Summitでの発表以来、着実に進化を重ね、 Databricksの中心的なコンポーネントの一つになった メタデータ管理 (ファイル | テーブル | MLモデル | ノートブック | ダッシュボード) アクセス 制御 リネージ データ検出 監視 共有 Databricks Unity Catalog 監査 データとAIの一元的な可視化・権限モデル AI搭載のモニタリングと可観測性 オープンなデータ共有 6
  6. ©2024 Databricks Inc. — All rights reserved Unity Catalogを用いることでDatabricks内外の コンピューティング環境からガバナンスを保ちながら

    データとAI資産をシームレスに活用できる 外部のコンピューティング プラットフォーム BI & データ ウェアハウス データ エンジニアリング データ ストリーミング データ サイエンス & ML Hiveメタストア インターフェイス Unity Catalog データとAIの一元的なガバナンスモデル 外部のデータソース クラウドデータレイク 構造化、半構造化、非構造化のあらゆるデータ 外部のカタログ 7
  7. ©2024 Databricks Inc. — All rights reserved UCが有効化されて いない場合、ユー ザーは左記のような

    機能を使えない Governance Across Workspaces Lineage Row Filters and Column Masking Volumes Lakehouse Federation Lakehouse Monitoring Delta Sharing DatabricksIQ Databricks Marketplace Clean Room Genie AI Governance System Tables Lakehouse Apps Databricks Connect v2 Materialized Views AI-Powered Predictive Optimization Streaming Tables RAG Studio Vector Search for Indexing Serverless Workflows Databricksの多くの機能はUCを前提としている 言い換えると、UCが有効化されていないと使用できない機能が多数ある 8
  8. ©2024 Databricks Inc. — All rights reserved データ分離モデルを計画する 分離基準は組織によって異なる場合があるが、通常は次のことが期待される: •

    ユーザーは、指定されたアクセスルールに基づいてのみデータにアクセスできる • データは、指定された人物またはチームのみが管理できる • データは、ストレージ内で物理的に分離されている • データは、指定された環境でのみアクセスできる 10 Unity Catalogのベストプラクティスの中でも重要なパート “ ” データ分離の設計にあたって 知っておくべき機能をご紹介
  9. ©2024 Databricks Inc. — All rights reserved Unity Catalog 自動有効化

    AWSとAzureでは2023年11月以降、GCPでは2024年3月以降に 新規作成したワークスペースでUCが自動有効化されるようになった ワーク スペースでUCが 自動有効化 1 ワークスペース 専用のカタログ 2 ワークスペース管理者が カタログの所有者 3 Hiveサポートに 変更なし 4 11
  10. ©2024 Databricks Inc. — All rights reserved Unity Catalog 自動有効化のメリット

    • UC自動有効化以前:アカウント管理者の作業が必要だった • アカウントコンソールの初期セットアップ • Azureの場合、Entra IDのグローバル管理者の作業がブロッカーになるケースがあった • メタストア用のクラウドオブジェクトストレージの作成 • メタストアの作成 • メタストアをワークスペースに割り当て アカウント管理者の作業なしに、ワークスペースを作成するだけで すぐにUCが使えるようになったのが大きなメリット UC自動有効化により上記作業なしに 新規ワークスペースでUCが利用可能に 12
  11. ©2024 Databricks Inc. — All rights reserved データ分離単位のベストプラクティス • メタストアはクラウド/リージョンの分離を提供するが、データ分離の単位として

    は意図されていない • データの分離はカタログレベルで開始する必要がある 13 Unity Catalogのベストプラクティスより抜粋 “ ”
  12. ©2024 Databricks Inc. — All rights reserved メタストアの仕様変更 UC自動有効化に伴い、メタストアのクラウドストレージのパスについて未設定が許 容されるようになった。未設定にしておくことで、カタログレベルのクラウドストレージ

    の設定を強制できるようになった。  クラウドストレージ (S3, ADLS, GCS) 未設定 メタストア Unity Catalog スキーマ1 マネージド コンテナー / バケット (オプション) カタログ1 スキーマ3 カタログ2 マネージド コンテナー / バケット スキーマ2 マネージド コンテナー / バケット 14 クラウドストレージと管理者が未設定の状態 注意:メタストアに設定したクラウドストレージを 変更・未設定の状態に戻すことはできない メタストアのクラウド ストレージが未設定 の場合、カタログ作 成時にクラウドスト レージを必ず設定 する必要がある(未 設定で作成しようと するとエラー)
  13. ©2024 Databricks Inc. — All rights reserved ワークスペースカタログの物理的な場所 ワークスペース用のクラウドストレージにUCの領域が作成されるため、 当該ワークスペース内での利用に留めるのが無難。複数ワークスペースで

    共有するカタログには別のクラウドストレージを使う方が設計上ベター。 Azure: マネージドリソースグループ内のルート DBFS用ストレー ジアカウントにUC用のコンテナーが作成される AWS: ワークスペースストレージ用の S3バケットにUC用のフォ ルダ(プリフィクス)が作成される 15
  14. ©2024 Databricks Inc. — All rights reserved ワークスペースカタログバインディング • カタログの

    [ワークスペース] タブから操作 • 既定は [すべてのワークスペースが アクセス可能] • 厳密には同じメタストアに接続 されているすべてのワークス ペース • 2種類のアクセスレベル • Read & Write(読み書き) • Read Only(読み取り専用) 16 カタログへのアクセスを特定のワークスペースに制限できる機能。 カタログ管理者が実行できる。
  15. ©2024 Databricks Inc. — All rights reserved Delta Sharing -

    Databricks to Databricks 17 リージョン/クラウドを跨ぐDatabricksワークスペース同士のデータ共有が 必要な場合、Databricks to DatabricksのDelta Sharingを利用する Delta Lake Delta Sharing + Unity Catalog + ✔ パーティションフィルタ ✔ 統合データガバナンス ✔ IPアクセス / クラウド リージョン制限 ✔ SQL API と UI Databricks-managed sharing connection Delta Sharing + Unity Catalog + ✔ SQL API と UI ✔ 統合データガバナンス ✔ 共有ビューにアクセス データコンシューマー on Databricks データプロバイダー on Databricks ✔ トークンの交換 & 管理不要 Databricks on AWS Azure Databricks
  16. ©2024 Databricks Inc. — All rights reserved IaC (Infrastructure as

    Code) IaC管理のメリット • 自動化や繰り返しの適用が容易 • UCオブジェクトおよび権限の現状についてコードを 見ることで一目で分かる • 人によるレビューがしやすい • CI/CD、DevSecOpsとの相性が良い 18 UCオブジェクト(メタストア、カタログ、割り当てなど)および権限は Terraformプロバイダーなどを使ってコードとして管理が可能 resource "databricks_grants" "sandbox" { provider = databricks.workspace catalog = databricks_catalog.sandbox.name grant { principal = "Data Scientists" privileges = ["USAGE", "CREATE"] } grant { principal = "Data Engineers" privileges = ["USAGE"] } } AWS https://docs.databricks.com/ja/data-governance/unity-catalog/automate.html Azure https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/automate GCP https://docs.gcp.databricks.com/ja/data-governance/unity-catalog/automate.html
  17. ©2024 Databricks Inc. — All rights reserved 組織のガバナンスのグラデーション 20 中央チームが

    プロダクション向けの データ成果物を管理 集中型 ドメインチームが データ成果物の作成を主導 分散型 中央チームがガバナンスの ポリシーを適用・施行 ドメインチームが データの権限を管理 Databricksは集中型、分散型の両方をサポート
  18. ©2024 Databricks Inc. — All rights reserved Unity Catalogの主要な管理者ロール アカウント管理者

    (Account Admin) • ワークスペースを作成できる • メタストアを作成 & 設定できる • ユーザー, グループ, サービスプリンシパルを作成できる • クレデンシャルを作成できる • ユーザーにワークスペースへのアクセス権を付与できる • 推奨: 基盤管理チーム / 中央ガバナンスチーム メタストア管理者 (Metastore Admin) • CATALOG, EXTERNAL LOCATIONを作成できる • SHARE, RECIPIENTを作成できる • セキュリティ保護可能なオブジェクトの所有者を 変更できる • 推奨: 基盤管理チーム / 中央ガバナンスチーム • 推奨: データ(カタログ)オーナーへの権限移譲 ワークスペース管理者 (Workspace Admin) • ワークスペースにユーザーとグループを追加できる • クラスター & クラスターポリシーを作成できる • クラスタ、ワークフロー、ノートブック、クエリ、ダッシュボード の所有者を変更できる • 推奨: IT/基盤/DevOpsチーム • 推奨: サービスプリンシパルの定期的な監査 カタログ所有者 (Catalog Owner) • カタログ内のセキュリティ保護可能なオブジェクトの所 有者を変更できる (CATALOG, SCHEMA, TABLE, VIEW, etc.) • 任意のプリンシパルに任意の特権を付与できる • 推奨: BUガバナンスチーム / 中央ガバナンスチーム 個人ではなくグループにロールを割り当てることを強く推奨 21 * アカウント管理者、メタストア管理者、ワークスペース管理者は、 Databricks組み込みの管理者特権ロール https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/manage-privileges/admin-privileges
  19. ©2024 Databricks Inc. — All rights reserved 柔軟なガバナンス 22 集中型、分散型のガバナンスアプローチを併用できる

    これらの作成・管理の権限を グループなどに割り当て可能 (ストレージ資格情報について はアカウント管理者のみが管 理可能) メタストアに対するフルアクセス が可能だが、既定ではデータに 対する直接アクセスは無し メタストア管理者 カタログ所有者 ストレージ 資格情報 メタストア Unity Catalog スキーマ3 外部 ロケーション スキーマ2 カタログ1 共有 スキーマ1 カタログ2 Catalog1で スキーマを作成し、 アクセスを管理できる スキーマ4 カタログ所有者による 分散型ガバナンス メタストア管理者による 集中型ガバナンス 権限移譲
  20. ©2024 Databricks Inc. — All rights reserved 参考:UC管理者ロール設計のオンボーディングガイド 23 英語のブログだが分かりやすくまとめられているのでオススメ

    www.databricks.com/blog/2022/11/22/serving-primer-unity-catalog-onboarding.html ペルソナ Databricksの 組み込みロール? カスタム グループを推奨? アカウント管理者 Y Y メタストア管理者 Y Y カタログ管理者 N Y スキーマ管理者 N Y ワークスペース管理者 Y Y コンピュート管理者 N Y
  21. ©2024 Databricks Inc. — All rights reserved よく使用する分離境界 25 ビジネスユニット(BU)とソフトウェア開発ライフサイクルの組み合わせを

    データの分離境界として使用することが多い。また、課金や管理の観点から分離境 界に合わせてストレージコンテナー自体を分けることが多い。 BU 1 ビジネスユ ニット ソフトウェア開発 ライフサイクル BU 2 BU N DEV STG PRD 開発 ステージング 本番 … ストレージ コンテナー (S3, ADLS, GCS) BU1 DEV用 BU1 STG用 BU1 PRD用 BU2 DEV用 STG環境なし BU2 PRD用 BU N DEV用 BU N STG用 BU N PRD用 …
  22. ©2024 Databricks Inc. — All rights reserved ソフトウェア開発ライフサイクルによる分離 26 SDLC

    (Software Development Life Cycle) Unity Catalog メタストア PRD ワークスペース PRD カタログ DEV カタログ STG カタログ DEV ワークスペース STG ワークスペース 複数ワークスペース での利用 ワークスペース カタログバインディング PRDワークスペースは完全に分離し専用のカタロ グを持つ。DEVワークスペースはDEVとSTGカタロ グにアクセスできる。 メタストア管理者 PRD 管理者 DEV 管理者 STG 管理者 管理権限の移譲 (管理者の分離) 各SDLC環境は固有の管理者を持つ ストレージ分離 この例では、ストレージコンテナーをカタログレベルで 分離(通常はこれで十分) PRD ストレージ STG ストレージ DEV ストレージ UC アクセス制御 ユーザーは、合意されたアクセスルールに基づ いてのみ、データ/メタデータにアクセスする 単一ワークスペース での利用
  23. ©2024 Databricks Inc. — All rights reserved データとアクセスの分離 dev メタストア

    staging prod prod_ws staging_ws dev_ws アナリスト テスター 開発者 カタログ ワークスペース グループ bu_1_dev bu_1_staging bu_1_prod BUのユーザー bu_dev_stg_ws bu_prod_ws BUの開発者 BUのテスター ワークスペースカタログバインディングと、ワークスペースへのグループの 割り当てを用いてデータにアクセスできるユーザーを制限する 27 ワークスペース カタログ バインディング ワークスペース へのグループの 割り当て SCIM (System for Cross-domain Identity Management) を使って IdPからグループを同期す るのもグッドプラクティス
  24. ©2024 Databricks Inc. — All rights reserved マルチリージョン / マルチクラウドへの対応

    Delta Sharingを活用 • メタストアの境界 = クラウド / リージョン • 単一クラウドリージョンのメタストアで すべてのソフトウェア開発ライフサイクルと ビジネスユニットをカバー • ワークスペースとカタログの バインディングを活用 • クラウドプロバイダー間または リージョン間の連携には Databricks-to- DatabricksのDelta Sharingを利用 クラウドリージョン1 メタ ストア WS Prd WS Stg Dev cat WS Dev Prd cat Stg cat WS ワークスペース クラウドリージョン3 メタ ストア WS Prd WS Stg Dev cat WS Dev Prd cat Stg cat クラウドリージョン2 メタ ストア WS Prd WS Stg Dev cat WS Dev Prd cat Stg cat 28