AWSとAzureにおけるUnity Catalogのゲーテッドパブリックプレビューの発表

[Introducing Unity Catalog \- A Unified Governance Solution for Lakehouse \- The Databricks Blog](https://databricks.com/blog/2022/04/20/announcing-gated-public-preview-of-unity-catalog-on-aws-and-azure.html)の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

# レイクハウスで統合されたガバナンス

Data & AIサミット2021で、我々はDatabricksレイクハウスプラットフォームにネイティブでビルトインされる、データとAIに対する統合ガバナンスソリューションである[Unity Catalogを発表](https://qiita.com/taka_yayoi/items/1ededa3458cfffb2f83b)しました。本日、AWSとAzureにおいてUnity Catalogのゲーテッドパブリックプレビューを発表できることを嬉しく思います。

**パブリックプレビューへのサインアップ**

https://databricks.com/jp/product/unity-catalog

本記事では、Unity Catalogの背後にある我々のビジョン、本リリースで利用できるいくつかのキーとなるデータガバナンス機能、今後のロードマップの概要をまとめます。

# なぜデータとAIのガバナンスのためのUnity Catalogなのか？

## データとAIのガバナンスにおけるキーチャレンジ

### データとAI資産の多様性

データ利用の増加と、データの全体像に複雑性が追加されることによって、企業はデータに関連する全てのタイプの資産に対する管理と統治において困難な時間を迎えています。モダンなデータ資産にはファイルやテーブルだけでなく、レガシーなデータガバナンスソリューションでは想定されていないダッシュボード、機械学習モデル、動画や画像のような非構造化データなど多様な形態が含まれています。

### 異なる2つの互換性のないプラットフォーム

企業は現在、データ分析とAIの取り組みのために異なる2つのプラットフォームを使用しています。BIのためのデータウェアハウスとビッグデータ、AIのためのデータレイクです。これによって、2つのプラットフォーム間でデータの複製が発生してしまい、どこにデータが格納されているのか、誰がどのデータにアクセスできるのかを確認するための統合されたデータの全体像のビューを作成したり、異なるガバナンスモデルを持つ2つのプラットフォームに対して一貫性のあるデータアクセスポリシーを定義し強制することが困難となっています。

データウェアハウスは構造化データに対するテーブル、行、列、ビューに対してきめ細かいアクセスコントロールを提供しますが、ML/AIやデータストリーミングのユースケースに対する俊敏性や柔軟性を持っていません。逆に、データレイクは生のデータをネイティブなフォーマットで保持するので、データチームはML/AIを実施する柔軟性を手に入れることができます。しかし、既存のデータレイクのガバナンスソリューションはきめ細かいアクセスコントロールを提供せず、ファイルやディレクトリに対するアクセス権のみをサポートしています。データレイクのガバナンスはデータを検索し共有する機能にも欠けており、分析や機械学習に使うデータの検索を困難にしています。
![](https://databricks.com/wp-content/uploads/2022/04/db-45-blog-img-1.1.png)
*異なる2つの互換性のないプラットフォーム*

### マルチクラウド導入の進展

コストの最適化、ベンダーロックインの回避、コンプライアンス、プライバシー規制への対応のために、多くの企業が今ではマルチクラウド戦略を取り入れています。標準化されていないクラウド固有のガバナンスモデルによって、クラウド横断のデータガバナンスは複雑であり、Identity and Access Management (IAM)のようなクラウド固有のセキュリティ、ガバナンスコンセプトの習熟が必要となります。

### レイクハウス上で分断されたデータガバナンスのツール 

今では、データチームはデータ検索、カタログ、監査、共有、アクセスコントロールなどのデータガバナンス要件に対応するために膨大かつ分断されたツール/サービスを管理しなくてはなりません。これらの複数のインテグレーションポイント、サービス間のネットワーク遅延によって、間違いなくオペレーション上の非効率性や性能劣化を引き起こします。

## 統治されたレイクハウスに対するビジョン

[Unity Catalog](https://databricks.com/jp/product/unity-catalog)の背後にある我々のビジョンは、クラウド横断で共通するガバナンスモデルを用いて、ダッシュボード、ノートブック、機械学習モデルを含むレイクハウスの全てのデータとAI資産に対するガバナンスを統合し、優れたネイティブの性能とセキュリティを提供するというものです。自動化されたデータリネージュ(データ間の依存関係)によって、Unity Catalogはみなさの企業において、どのようにデータがソースから活用まで流れているのかを確認できるエンドツーエンドの可視性を提供し、データチームはデータ資産全体におけるデータの変更のインパクトをクイックに特定、診断できるようになります。データコンプライアンス、セキュリティ要件に応えるために、データが誰によってどのようにアクセスされたのかに関する詳細な監査レポートを活用できます。豊富なデータ検索機能によって、データチームはBI、分析、MLワークロードに必要なデータをクイックに検索、参照できるので、価値創出に要する時間を短縮することができます。

また、Unity Catalogはネイティブで世界初のデータ共有オープンプロトコルである[Delta Sharing](https://databricks.com/jp/product/delta-sharing)をサポートしているので、セキュリティとプライバシーを保護しつつも、企業間のシームレスなデータ共有を実現することができます。

最後となりますが、Unity Catalogはモダンなデータスタックとのリッチなインテグレーションも提供しており、皆様のデータとAIガバナンス要件に応えるためにお好きなツールを活用するための柔軟性と相互運用性を提供します。

# 本リリースで利用できるUnity Catalogのキーとなる機能

## メタデータ、ユーザーの集中管理

Unity Catalogがない場合、DatabricksワークスペースはHiveメタストアと接続し、別のテーブルアクセスコトンロール(TACL)サービスを維持管理します。これは、複数のワークスペースのビューやテーブル定義やACLを手動で同期しなくてはならず、データとアクセスコントロールの一貫性問題を引き起こします。

Unity Catalogでは、複数のワークスペースが共通インタフェースを通じてUnity Catalogのメタデータにアクセスできるようにすることでコラボレーションを容易にするために、アカウントレベルで格納されるワークスペース横断のメタデータに対する共通レイヤーが導入されます。さらに、Unity Catalogにおけるデータのアクセス権は、ワークスペース固有のIDではなくアカウントレベルのIDに適用されるので、全ワークスペースに対するユーザー、グループに対する一貫性のあるビューを実現します。
![](https://databricks.com/wp-content/uploads/2022/04/db-45-blog-img-1.2.png)
*Unity Catalogでデータ資産に対するsingle source of truthを実現*

また、Unity CatalogはPython、SQL、R、Scala全ての言語で開発されたワークロードに対して、一貫性のあるデータアクセスとポリシーを強制します。

## SQLにおける3レベルの名前空間

Unity Catalogでは、Databricksのデータを整理するための3レベルの名前空間も導入されます。スキーマ(データベース)を含む1つ以上のカタログを作成し、スキーマにはテーブルやビューが格納されることになります。これによって、データのオーナーは、自身のデータを整理する柔軟性を手に入れることができ、既存のHiveに登録されているテーブルを一つのカタログ(hive_metastore)に登録されているものとして参照できるので、既存のデータをそのままにUnity Catalogを使用することができます。

例えば、レガシーなHiveメタストアに直接クエリーを実行するには以下のようなクエリーを実行します。

```sql:SQL
SELECT * from hive_metastore.prod.customer_transactions
```

また、カタログレベルでプロダクション向けのデータを区別し、それぞれにアクセス権を許可することができます。

```sql:SQL
SELECT * from production.sales.customer_address
```

あるいは

```sql:SQL
SELECT * from staging.sales.customer_address
```

これによって、ご自身の企業全体、環境のスコープに応じた分類学で、お使いのデータを整理する柔軟性を手に入れることができます。カタログを環境のスコープあるいは企業のスコープ、その両方として使用することができます。

3レベルの名前空間は最新バージョンのDatabricks JDBCドライバーでサポートされており、様々なBI、ETLツールがDatabricksで動作するようになっています。

## レイクハウスにおける統合データアクセス

Unity Catalogは、ユーザーが簡単にマネージドテーブル、外部テーブルやファイルを定義・接続し、それらに対するアクセス権も設定できるように統合データアクセスレイヤーを提供します。[外部格納場所(external location)とストレージクレディンシャル](https://docs.databricks.com/data-governance/unity-catalog/manage-external-locations-and-credentials.html#manage-storage-credentials)を用いることで、皆様の代わりにUnity Catalogがクラウドテナント上のデータに対して読み書きを行うことができます。
![](https://databricks.com/wp-content/uploads/2022/04/db-45-blog-img-2.png)
*Unity Catalogによるマネージドテーブル、外部テーブル、ファイルに対するきめ細かいアクセスコントロールの実現*

## 集中管理されるアクセスコントロール

Unity Catalogはファイル、テーブル、ビューに対するアクセスコントロールを集中管理します。クエリーを許可されたユーザー、グループに対して、行列レベルでアクセスを制限できるように、きめ細かいアクセスコントロールを実現する動的ビューを活用しています。
![](https://databricks.com/wp-content/uploads/2022/04/db-45-blog-img-3.png)
*アクセス権の集中管理*

### テーブル、ビューにおけるアクセスコントロール

Unity Catalogにおけるきめ細かいアクセスコントロールには、現時点では動的ビューによる行列レベルのフィルタリング、データマスキングが含まれています。

動的ビューでは、ユーザーやグループのメンバーシップに基づいて表示する内容を制御する条件文を使用することができます。

例えば、以下のビューは`admin@example.com`ユーザーのみがemailカラムを参照することができます。

```sql:SQL
CREATE VIEW sales_redacted AS
SELECT
 user_id,
 CASE WHEN
  current_user() = 'admin@example.com' THEN email
  ELSE 'REDACTED'
 END AS email,
 country,
 product,
 total
FROM sales_raw
```

### ファイルに対するアクセスコントロール

外部格納場所(external location)は、外部テーブルによって**管理されない**ファイルへのアクセスを制御します。例えば、上の例では、`s3://depts/finance`に外部格納場所を作成し、`s3://depts/finance/forecast`に外部テーブルを作成しました。

これは、`forecast`ディレクトリを除く`s3://depts/finance`内のファイルに対しては、依然としてアクセスコントロールをできることを意味します。

例えば、以下の例を考えてみます。

```sql:SQL
GRANT READ_FILE ON EXTERNAL LOCATION finance to finance_dataengs;
```

## Delta Sharingによるオープン、シンプルかつセキュアなデータ共有

Data + AIサミット2021で、我々は世界初のセキュアなデータ共有のためのオープンプロトコルである[Delta Sharingを発表](https://qiita.com/taka_yayoi/items/f93f1b70fef0f75585be)しました。Delta SharingはネイティブでUnity Catalogとインテグレーションされており、お客様はきめ細かいガバナンスとデータセキュリティコントロールを追加でき、プラットフォーム横断、クラウド横断で、社内外でデータ共有を簡単かつ安全に行えるようになります。

[Delta Sharing](https://databricks.com/jp/product/delta-sharing)によって、データが格納されているプラットフォーム、データを活用するプラットフォームに関係なく、企業横断でライブのデータをセキュアに共有できるようになります。企業はApache ParquetあるいはDelta Lakeフォーマットの大規模データセットを、別のシステムにコピーすることなしにシンプルに共有することができます。また、Delta Sharingはお好きなツールで共有データをクエリー、可視化、補強するための柔軟性で持ってデータチームを支援します。
![](https://databricks.com/wp-content/uploads/2022/04/db-45-blog-img-4.1.png)
*Delta Sharingのエコシステム*

このリリースで利用できる新機能の一つに**パーティションフィルタリング**があり、これによってデータ提供者は共有にテーブルを追加する際にパーティション指定を行うことで、異なるデータ受信者に対して企業のデータの異なるサブセットを共有することができます。また、我々はDelta Sharingの管理機能を改善し、メタストア管理者に対して**受信者トークン管理のオプション**を導入しました。今では、メタストア管理者は`CREATE RECIPIENT`コマンドを用いて受信者を作成し、受信者が共有データにアクセスするために、bearerトークンを含むクレディンシャルファイルをダウンロードするためのアクティベーションリンクも自動で生成されます。トークン管理機能を用いることで、メタストア管理者は受信者のbearerトークンの有効期限を設定し、トークン漏洩のようなリスクがある場合にはトークンをローテーションすることができます。

DatabricksにおけるDelta Sharingについては、Delta Sharingのドキュメントを参照ください[[AWS](https://docs.databricks.com/data-sharing/index.html)、[Azure](https://docs.microsoft.com/ja-jp/azure/databricks/data-sharing/)]。

## 集中管理されるデータアクセス監査

また、Unity Catalogでは、データに対して行われたアクションに対する監査ログを捕捉することできめ細かい集中管理の監査を実現します。これによって、誰が特定のデータセットにアクセスしたのかに関する詳細情報を提供するので、皆様のコンプライアンス、ビジネス要件に応えることができます。

# 次に来るのは？

これは始まりに過ぎません。レイクハウスにおける統合ガバナンスに対する我々のビジョンを実現するための作業を進めており、様々な新機能が投入される予定です。以下では、我々が現在取り組んでいる新機能の簡単なサマリーをご紹介します。

## エンドツーエンドのデータリネージュ

Unity Catalogは実行時のデータリネージュを行列レベルで自動で捕捉し、データチームはレイクハウスにおけるデータフローに対するエンドツーエンドのビューを参照できます。これによってデータコンプライアンスの要件への対応やデータ変更のインパクトをクイックに分析することができます。
![](https://databricks.com/wp-content/uploads/2022/04/db-45-blog-img-5.png)
*エンドツーエンドのデータリネージュ*

## エンターブライズデータカタログとガバナンスソリューションとの密連携

既存のカタログやガバナンスソリューションと共にUnity Catalogを使用できるように、データカタログ、ガバナンスパートナーと作業を進めています。

## データ発見・検索

ビルトインの検索、発見機能によって、データチームはクイックに適切なデータセットを検索、参照できるようになり、生産性を改善し、洞察に至る時間を短縮します。

## 機械学習モデル・ダッシュボードのガバナンスと共有

また、我々はガバナンスを機械学習モデルやダッシュボードにも拡張しており、データチームは一枚のガラス越しに異なるタイプのデータ資産を管理、統治、共有できるようになります。

## 属性ベースのアクセスコントロール(ABAC)によるきめ細かいガバナンス

ユーザーとデータ属性に基づき、一度に複数のデータアイテムに対するアクセスコントロールを実現するパワフルなタグ付けの機能を追加しようとしています。これによって、大規模なデータに対するガバナンスをさらにシンプルなものにします。例えば、複数のカラムに対してPII(個人情報)というタグをつけることができ、単一のルールでPIIのタグがつけられた全てのカラムに対するアクセス権を管理することができるようになります。

## Google Cloud Platform(GCP)におけるUnity Catalog

まもなくGCPでもUnity Catalogがサポートされます。

# AWSとAzureでUnity Catalogを使い始める

Unity Catalogは現状、AWSとAzureでゲーテッドパブリックプレビューとなっており、リクエストに応じて有効化しています。Databricksのお客様であれば、Databricks担当にリクエストするか、[こちらからリクエスト](https://databricks.com/jp/product/unity-catalog#signup)することでUnity Catalogを有効化することができます。詳細に関してはUnity Catalogのドキュメント[[AWS](https://qiita.com/taka_yayoi/items/15aede468bdca58ec6a3)、[Azure](https://docs.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/)]をご覧ください。

**パブリックプレビューへのサインアップ**

https://databricks.com/jp/product/unity-catalog

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)