データカタログ Databricks Unity Catalog とは:レイクハウスにおけるデータと AI のための綿密なガバナンスを実現するアクセスコントロール

Data lake systems such as S3, ADLS, and GCS store the majority of data in today’s enterprises thanks to their scalability, low cost, and open interfaces. Over time, these systems have also become an attractive place to process data thanks to lakehouse technologies such as Delta Lake that enable ACID transactions and fast queries. However, one area where data lakes have remained harder to manage than traditional databases is governance; so far, these systems have only offered tools to manage permissions at the file level (e.g. S3 and ADLS ACLs), using cloud-specific concepts like IAM roles that are unfamiliar to most data professionals.

That’s why we’re thrilled to announce our Unity Catalog, which brings fine-grained governance and security to lakehouse data using a familiar, open interface. Unity Catalog lets organizations manage fine-grained data permissions using standard ANSI SQL or a simple UI, enabling them to safely open their lakehouse for broad internal consumption. It works uniformly across clouds and data types. Finally, it goes beyond managing tables to govern other types of data assets, such as ML models and files. Thus, enterprises get a simple way to govern all their data and AI assets:

Unity Catalog は、データレイクの利点をそのままに、オープンなインターフェースでレイクハウスシステムに詳細なガバナンスとセキュリティを実現します。

現在のデータレイクガバナンスツールの課題

全てのクラウドストレージシステム(S3、ADLS、GCS)は現在でもセキュリティ制御は提供していますが、ファイル指向であり、クラウド固有です。これはいずれも企業規模で広く利用する場合に課題となります。我々はお客様が頻繁に以下の 4 つの課題に直面するのを見てきました。

  • きめ細かい(行、列、ビューレベル)セキュリティの欠如:クラウドのデータレイクでは、一般的にファイルやディレクトリレベルのアクセスコントロールしか設定ができず、特定のユーザーに対してテーブルの一部のみを共有することは困難です。これは、全てのテーブルにアクセス権を持つべきではない新規ユーザーが利用を始めるのを妨げていました。
  • 物理データレイアウトに縛られたガバナンス:ガバナンスの制御レベルもファイルレベルであるため、求められるポリシーを適用するために、データチームは注意深くデータレイアウトを構築する必要があります。例えば、国ごとに異なるディレクトリを作成しデータを分割したうえで、異なるグループにそれぞれのディレクトリのアクセス権を与えるかもしれません。しかし、ガバナンスのルールが変更された時にデータチームはどうしたらいいのでしょうか?もし、ある国のある州が異なるデータ規制を導入した場合には、企業はアクセスコントロールリストを修正するだけでなく、全てのデータを再構成しなくてはならない可能性があります。
  • 標準化されていないクラウド固有のインターフェース:IAM のようなクラウドのガバナンス API はデータプロフェッショナル(例:データベース管理者)には馴染みがなく、クラウドごとに異なっています。現在、多くの企業が(例えば、プライバシー規制に対応するために)マルチクラウドにデータを格納し始めており、クラウドにまたがるデータとアクセスコントロールリストを管理する必要性が出てきています。
  • 他のデータタイプのサポートの欠如:データレイクのガバナンス API はデータレイクのファイルに対して動作しますが、近代的な企業のワークフローは、さまざまなタイプのデータアセットを生み出しています。例えば、SQL のワークフローには頻繁にビューが含まれ、データサイエンスワークフローには機械学習モデルが含まれ、多くのワークロードはデータレイク(データベースなど)以外のデータソースと接続するようになっています。近代的な企業の観点では、機密データを含んでいる場合、これら全てのアセットも同様に管理されるべきと言えます。すなわち、データチームは異なるシステムに対して、同じガバナンス・セキュリティポリシーを再実装する必要があるということです。

データカタログ「Unity Catalog」のアプローチ

Unity Catalog は、さまざまなクラウド、データアセットタイプに対応できるオープンスタンダードに基づいたデータガバナンスに対するきめ細かいアプローチを実装することで、これらの問題を解決します。以下の 4 つの鍵となる原則に従って設計されています。

  • きめ細かいアクセスリスト制御:Unity Catalog ではファイルレベルではなく、行、列、ビューレベルでデータのアクセス制御リスト(ACL: access control list)を設定できます。これによって、新規ユーザーに対してデータをコピーすることなしに、常に適切なデータのみを共有できます。
  • オープンかつ標準化されたインターフェース:Unity Catalog のアクセス権管理モデルは ANSI SQL に準拠しており、データベースの専門家には馴染み深いものになっています。また、データ管理者が容易にガバナンスを適用できるような UI が準備されています。これにより、1 つのポリシーを複数のオブジェクトに適用でき、さらに、同じ属性(例:個人情報)を持つオブジェクトにタグ付けできるよう SQL モデルを属性ベースのアクセスコントロールに拡張しました。最後に、同様の SQL ベースのインターフェースは機械学習モデル、外部のデータソースにも適用できます。
  • 集中管理:Unity Catalog は複数の Databricks ワークスペース、リージョン、クラウドに対して動作しますので、企業全てのデータを集中管理できます。集中管理によって、全てのアクセスの監査やリネージュの追跡が可能です。
  • Secure access from any platform: Although we love the Databricks platform, we know that many customers will also access the data from other platforms and that they’d like their governance rules to work across them. Unity Catalog enforces security permissions from any client that connects through JDBC/ODBC or through Delta Sharing, the open protocol we’ve launched to exchange large datasets between a wide range of platforms.

それでは、一般的なデータガバナンスタスクにおいて、どのように Unity Catalog が活用されるのかを見ていきましょう。

ANSI SQL による容易な権限管理

Unity Catalog はオープンな ANSI SQL 標準によるデータ管理言語(DCL)を用いて、クラウドにまたがる全てのデータに対するきめ細かいガバナンスの集中管理を実現します。これはすなわち、管理者は謎めいたクラウド固有のインターフェースを学ぶことなしに、慣れ親しんだ SQL を用いて、ユーザーに適したデータサブセットへのアクセス権を設定できることを意味します。また我々は、大規模なデータガバナンス管理をシンプルにできるように、属性に基づいて複数のデータを一括で管理できるよう強力なタグ付けの機能を追加しました。

以下は、データレイク(データベースなど)の既存データに対するアクセス権を追加する場合の Unity Catalog による SQL のビュー作成および grant 文の使用例です。

まず、新規あるいは、S3 などのクラウドストレージの既存データをクラウド固有の認証情報でポイントして、カタログ内のテーブルを作成します。

CREATE EXTERNAL TABLE iot_events LOCATION s3:/...
  WITH CREDENTIAL iot_iam_role

Unity Catalogでは、他のデータベースと同様に、シンプルに SQL 標準の GRANT を使用できます。以下は、どのように iot_events を engineer のようなグループ全体にアクセス権を設定するのか、date と country 列のみを marketing に許可する際の例となります。

GRANT SELECT ON iot_events TO engineers
GRANT SELECT(date, country) ON iot_events TO marketing

Unity Catalog では SQL のビューも利用できます。これにより、複雑な処理で生成した集計データに対する SQL ビューを作成することが可能です。以下は、ビューベースアクセス権管理で集計結果に対する business_analysts のアクセス権を設定する例となります。


CREATE VIEW aggregate_data AS
  SELECT date, country, COUNT(*) AS num_events FROM iot_events
  GROUP BY date, country

GRANT SELECT ON aggregate_data TO business_analysts

さらに、Unity Catalog では、大規模データガバナンスをシンプルにするために、属性に基づいて(属性ベースのアクセスコントロール)複数のアイテムに一括でポリシーを適用することが可能です。例えば、複数の列に対して PII(個人情報)のタグを付け、PII とタグ付けされている全ての列に対するアクセスコントロールリストを 1 つのルールで管理できます。

ALTER TABLE iot_events ADD ATTRIBUTE pii ON email
ALTER TABLE users ADD ATTRIBUTE pii ON phone

GRANT SELECT ON DATABASE iot_data
  HAVING ATTRIBUTE NOT IN (pii)
  TO product_managers

上述の属性のシステムを活用して、MLflow のモデルや他のオブジェクトも管理できます。

GRANT EXECUTE ON MODELS HAVING ATTRIBUTE (eu_data)
  TO eu_product_managers

UI によるデータセットの管理、発見

Unity Catalog の UI を活用することで、データセットの管理、監査、記述の追加、発見が 1 つの場所で容易に行えます。データ管理者は視覚的に全てのアクセス権を設定、検証でき、カタログはそれぞれのデータがどのように生成され、アクセスされるのかを示す監査・リネージュ情報も確認できるのがメリットです。データの利用者がそれぞれのデータセットに対するドキュメントを記述し、誰が利用しているのかを参照でき、コラボレーションが行われるように UI が設計されています。

Unity Catalog UI を活用することで、データステュワードはコンプライアンスやプライバシー要件に応えるために、レイクハウスのデータアクセスを直接管理できます。
The Unity Catalog UI makes it easy for data stewards to confidently manage
and secure data access to meet compliance and privacy needs, directly on the lakehouse.

Delta Sharing による企業間データ共有

Every organization needs to share data with customers, partners and suppliers to collaborate. Unity Catalog implements the open source Delta Sharing standard to let you securely share data across organizations, regardless of which computing platform or cloud they run on (any Delta Sharing client can connect to the data).

Delta Sharing による企業間データ共有

アクセスを容易にするオープンなインターフェース

Unity Catalog works with your existing catalogs, data, storage and computing systems so you can leverage your existing investments and build a future-proof governance model. It can mount existing data in Apache Hive Metastores or cloud storage systems such as S3, ADLS and GCS without moving it. It also connects with governance platforms like Privacera and Immuta to let you define custom workflows for managing access to data. Finally, we designed Unity Catalog so that you can also access it from computing platforms other than Databricks: ODBC/JDBC interfaces and high-throughput access via Delta Sharing allow you to securely query your data any computing system.

Databricks 無料トライアル 使ってみる

ご登録

Unity Catalog についての詳細は、「データ+ AI サミット」の基調講演の動画で無料でご覧になれます。