1. はじめに
近年、データ基盤の世界では 「カタログを制する者がアーキテクチャを制する」 と言われるほど、データカタログの重要性が高まっています。
その主役となっているのが、Snowflakeの Horizon Catalog とDatabricksの Unity Catalog です。どちらもデータのガバナンス・ディスカバリ・共有を担う中核機能ですが、設計思想やアプローチには明確な違いがあります。
この記事では、両者を 7つの観点 から比較しながら、初学者にもわかりやすく解説します。
この記事は2025年時点の情報をもとに執筆しています。両プラットフォームとも急速に進化しているため、最新情報は各公式ドキュメントもあわせてご確認ください。
対象読者
- SnowflakeまたはDatabricksを使い始めた方
- データカタログやデータガバナンスの概念を理解したい方
- プラットフォーム選定や比較に関わる方
2. 前提知識:データカタログとは?
データが増えると何が起きるか
組織でデータ活用を進めていくと、テーブルやビューの数はあっという間に膨れ上がります。すると、こんな問題が出てきます。
- 「あの売上データ、どのテーブルに入ってるんだっけ?」
- 「このカラムの
statusって、何の値が入るの?」 - 「個人情報が入ったテーブル、ちゃんとアクセス制限されてる?」
- 「AIモデルの学習に使ったデータセット、出所は追えるか?」
これは、蔵書が膨大な図書館に目録(カタログ)がない状態 と同じです。
データカタログの役割
データカタログは「データの目録+管理簿」として、以下の役割を果たします。
| 課題 | データカタログの役割 |
|---|---|
| データが見つからない | メタデータを一元管理し、検索できるようにする |
| データの意味がわからない | テーブルやカラムの説明・定義を付与する |
| 誰が使っているか不明 | アクセス履歴やリネージ(データの流れ)を可視化する |
| セキュリティが心配 | アクセス制御やマスキングポリシーを管理する |
| AI時代の信頼性 | モデルの学習データの出所・品質を保証する |
なぜ今「カタログ」が重要なのか
生成AIやエージェントの台頭により、データの 信頼性・追跡可能性・品質 がこれまで以上に重要になっています。AIが正しく機能するには、クリーンで文書化され、ガバナンスが効いたデータが不可欠です。SnowflakeもDatabricksも、このトレンドに応えるべく自社カタログへの投資を加速しています。
3. それぞれの全体像をざっくり理解する
3-1. Snowflake Horizon Catalogとは
Snowflakeに組み込まれたデータガバナンスとディスカバリのための機能群の総称
Horizon Catalogは 独立した製品やサービスではなく、Snowflakeにもともと備わっている多数のガバナンス・ディスカバリ機能を体系的にまとめて名前を付けたものです。
5つの柱 で構成されています。
管理対象:
- 組織内の全アカウントにあるデータ、アプリ、モデル
- Apache Iceberg™テーブル、外部テーブル
- Marketplace経由の共有データ、コネクタ経由の外部データ
3-2. Databricks Unity Catalogとは
Databricksプラットフォーム上の統合メタストア+ガバナンス基盤
Unity Catalogは、Databricksワークスペース全体にわたるアクセス制御、監査、リネージ、品質監視、データディスカバリ機能を提供する 一元化されたデータカタログ です。
3レベルの名前空間 でデータを階層管理します。
metastore
└── catalog(カタログ)
└── schema(スキーマ)
├── table
├── view
├── volume
├── AI model
└── function
テーブルを参照する際は catalog.schema.table という3レベルの名前空間で指定します。
主な特徴:
- ANSI SQL準拠のセキュリティモデル
- ノートブック・ジョブ・ダッシュボードを横断した自動リネージ
- OSSとしても公開(オープンソース版Unity Catalogが存在)
Unity Catalogはオープンソース実装がGitHubで公開されています。これはHorizon Catalogにはない特徴です。
4. 設計思想の違い ― 哲学を比較する
両者を理解するうえで最も重要なのが、設計思想の違い です。
Horizon Catalog:「エンジンをデータの元へ持ってくる」
Snowflakeの考え方は、Snowflakeをハブとして、外部エンジンがデータにアクセスしに来る というモデルです。
- Snowflake内でデータを管理・ガバナンスし、Iceberg REST APIを通じてSpark等の外部エンジンからクエリ可能にする
- Catalog-linked Databasesにより、外部カタログ(Unity Catalog、AWS Glue等)のIcebergテーブルをHorizon Catalogに同期
- ガバナンスの「源泉」はSnowflake側に置く
Unity Catalog:「あらゆるデータをカタログに統合する」
Databricksの考え方は、Unity Catalogにすべてのデータアセットを集約し、一元的にガバナンスを効かせる というモデルです。
- Delta Lake + Icebergの両フォーマットを統合管理(UniForm機能)
- Catalog Federationにより外部カタログ(Snowflake Horizon、AWS Glue等)のテーブルを取り込み
- データだけでなくMLモデル、ノートブック、メトリクスまで管理対象
共通の認識
アプローチは異なりますが、両者に共通しているのは 「カタログこそがデータアーキテクチャの制御点(コントロールプレーン)である」 という考え方です。ストレージではなくカタログが主導権を握る時代に入っています。
5. 機能比較 ― 7つの観点で並べてみる
5-1. アクセス制御
Horizon Catalog は、RBAC(ロールベース)、DAC(任意アクセス制御)、Managed Accessの3方式を組み合わせたモデルです。動的データマスキングや行アクセスポリシーなど、プライバシー保護のためのきめ細かなポリシーが充実しています。
-- Horizon: 動的データマスキングの例
CREATE OR REPLACE MASKING POLICY mask_email AS (val STRING)
RETURNS STRING ->
CASE
WHEN CURRENT_ROLE() IN ('ADMIN') THEN val
ELSE '***MASKED***'
END;
Unity Catalog は、ANSI SQL準拠の権限モデルを採用しており、GRANT / REVOKE で権限を管理します。行フィルターや列マスクにも対応し、Attribute-Based Access Control(ABAC)もサポートしています。
-- Unity Catalog: ANSI SQLベースの権限付与の例
GRANT SELECT ON TABLE catalog.schema.customers TO `analyst_group`;
-- 行フィルターの例
CREATE FUNCTION row_filter(region STRING)
RETURN IF(IS_ACCOUNT_GROUP_MEMBER('japan_team'), region = 'JP', TRUE);
| 比較ポイント | Horizon Catalog | Unity Catalog |
|---|---|---|
| 基本モデル | RBAC + DAC + Managed Access | ANSI SQL準拠の権限モデル |
| 列レベル保護 | 動的データマスキング | 列マスク |
| 行レベル保護 | 行アクセスポリシー | 行フィルター |
| 属性ベース制御 | タグ連動でのポリシー適用 | ABAC(属性ベースアクセス制御) |
5-2. データリネージ
データリネージとは、データがどこから来て、どのように変換され、どこに使われているか を追跡する機能です。
Horizon Catalog は、Snowsight上でテーブルレベル・カラムレベルのリネージをビジュアルに表示できます。SQLクエリに基づくリネージを追跡し、上流・下流の依存関係を確認できます。
Unity Catalog は、ノートブック(Python/Scala/R/SQL)、ジョブ、ダッシュボードまで横断した自動リネージを提供します。言語を問わずリネージが追跡される のが大きな特徴で、Sparkジョブ内のデータ変換も含めて追跡対象になります。
| 比較ポイント | Horizon Catalog | Unity Catalog |
|---|---|---|
| 追跡レベル | テーブル・カラム | テーブル・カラム |
| 追跡対象 | SQLクエリ | SQL + Python/Scala/R + ジョブ + ダッシュボード |
| 可視化 | Snowsight UI | カタログエクスプローラー UI |
| 言語横断 | SQL中心 | マルチ言語対応 |
5-3. データ品質監視
Horizon Catalog は、データメトリック関数(DMF) という仕組みで品質を監視します。システムDMF(NULL_COUNT、UNIQUE_COUNT、DUPLICATE_COUNT、FRESHNESS等)に加え、ビジネスロジックに応じたカスタムDMFを作成できます。
-- Horizon: カスタムDMFの例
CREATE OR REPLACE DATA METRIC FUNCTION invalid_email_count(
arg_t TABLE(arg_c STRING)
)
RETURNS NUMBER AS
$$
SELECT COUNT(*) FROM arg_t
WHERE arg_c NOT LIKE '%_@_%._%'
$$;
Unity Catalog は、Delta Live TablesのExpectations機能でパイプライン内のデータ品質チェックを行えるほか、Lakehouse Monitoringでテーブルの統計的な品質監視が可能です。2025年には Unity Catalog Metrics が登場し、ビジネスKPIをファーストクラスのアセットとしてカタログ内で定義・管理できるようになりました。
| 比較ポイント | Horizon Catalog | Unity Catalog |
|---|---|---|
| 基本の仕組み | データメトリック関数(DMF) | Lakehouse Monitoring + Expectations |
| カスタムルール | カスタムDMF(SQL UDF形式) | Delta Live Tables Expectations |
| KPI管理 | ― | Unity Catalog Metrics |
| 監視対象 | テーブル・カラム単位 | テーブル単位 + パイプライン |
5-4. データディスカバリ
Horizon Catalog は、Universal Search でSnowflake上のあらゆるオブジェクトを自然言語で横断検索できます(Cortex AI搭載)。また、Snowflake Cortexを使った テーブル/カラム説明のAI自動生成 機能があり、Snowsight UIから「Generate with Cortex」を選ぶだけで説明文が作成されます。
Unity Catalog は、カタログエクスプローラーによるブラウジングとタグベースの検索を提供します。AIによるコメント自動生成も可能です。さらに、 AI/BI Genie という自然言語インターフェースがあり、ビジネスユーザーがSQLを書かずにデータを探索できます。
| 比較ポイント | Horizon Catalog | Unity Catalog |
|---|---|---|
| 検索機能 | Universal Search(AI搭載) | カタログエクスプローラー |
| AI説明生成 | Cortexによる自動生成 | AIによるコメント生成 |
| 自然言語UI | Copilot for Horizon Catalog | AI/BI Genie |
| ビジネスユーザー向け | Snowflake Intelligence | Genie + Metrics |
5-5. データ共有・コラボレーション
Horizon Catalog は、組織内データ共有に特化した Internal Marketplace、プライバシーを保った共同分析のための Data Clean Rooms、パートナー間での限定共有のための プライベートリスティング を提供します。
Unity Catalog は、オープンプロトコルの Delta Sharing を共有基盤としています。プラットフォームを問わず(Databricksを使っていない相手にも)データを共有でき、Databricks Marketplace ではデータだけでなくMLモデルやノートブックも公開できます。
| 比較ポイント | Horizon Catalog | Unity Catalog |
|---|---|---|
| 社内共有 | Internal Marketplace | Delta Sharing(ワークスペース間) |
| 外部共有 | Snowflake Marketplace + リスティング | Delta Sharing + Databricks Marketplace |
| 共有プロトコル | Snowflake独自 | Delta Sharing(オープンプロトコル) |
| Clean Rooms | Snowflake Data Clean Rooms | Databricks Clean Rooms |
| 共有対象 | データ | データ + MLモデル + ノートブック |
5-6. 機密データ保護
Horizon Catalog は、この領域で特に豊富な機能群を持っています。機密データの自動分類(セマンティックカテゴリ+プライバシーカテゴリの自動付与)、差分プライバシー(集計結果へのノイズ付加)、集約ポリシー(集約関数の利用を強制)、結合ポリシー(JOINの強制)、投影ポリシー(特定カラムの射影を制限)など、多層的な保護を提供します。
Unity Catalog は、機密データの自動検出・自動タグ付け機能を持ち、タグに基づくアクセスポリシーの適用が可能です。行フィルター・列マスクに加え、ABACによるきめ細かな制御をサポートしています。
| 比較ポイント | Horizon Catalog | Unity Catalog |
|---|---|---|
| 自動分類 | セマンティック + プライバシーカテゴリ | 自動検出 + 自動タグ付け |
| マスキング | 動的データマスキング | 列マスク |
| 差分プライバシー | ✅ | ― |
| 集約/結合/投影ポリシー | ✅(独自機能) | ― |
機密データ保護の機能の豊富さでは、Horizon Catalogが一歩リードしています。特に差分プライバシーや集約ポリシーなどは、金融・医療など高い規制対応が求められる業界で重宝されます。
5-7. Apache Iceberg対応
Apache Icebergはオープンなテーブルフォーマットとして急速に普及しており、両プラットフォームとも対応を強化しています。
Horizon Catalog は、Catalog-linked Databases でUnity CatalogやAWS Glue等のIcebergテーブルを自動同期し、Horizon Iceberg REST Catalog API でSpark等の外部エンジンからのクエリを可能にしています。内部的にはApache Polaris™が統合されています。
Unity Catalog は、Iceberg REST Catalog API の読み取り(GA)・書き込み(パブリックプレビュー)をサポートし、Iceberg管理テーブルも提供しています。Catalog Federation で外部カタログのIcebergテーブルを取り込み可能で、UniForm 機能によりDelta LakeテーブルをIceberg互換で公開できます。
| 比較ポイント | Horizon Catalog | Unity Catalog |
|---|---|---|
| Iceberg REST API | 読み取り対応 | 読み取り(GA) + 書き込み(Preview) |
| カタログ連携 | Catalog-linked Databases | Catalog Federation |
| 外部エンジン連携 | Spark, Trino等から読み取り | Spark, Trino, Snowflake等から読み書き |
| フォーマット統合 | Iceberg中心 | Delta + Iceberg(UniForm) |
| OSSカタログ | Apache Polaris統合 | OSS版Unity Catalog |
まとめ比較表
| 観点 | Horizon Catalog | Unity Catalog |
|---|---|---|
| プラットフォーム | Snowflake組み込み | Databricks組み込み + OSS版あり |
| アクセス制御 | RBAC/DAC + 多層ポリシー | ANSI SQL + ABAC |
| リネージ | SQL中心 | マルチ言語横断 |
| 品質監視 | データメトリック関数 | Monitoring + Expectations + Metrics |
| ディスカバリ | Universal Search + Cortex | カタログエクスプローラー + Genie |
| データ共有 | Marketplace + Clean Rooms | Delta Sharing(オープン) + Clean Rooms |
| 機密データ保護 | 非常に豊富(差分プライバシー等) | 自動検出 + タグベース |
| Iceberg対応 | REST API + Polaris | REST API + UniForm + Federation |
| オープン性 | Iceberg REST APIで外部連携 | OSS + Delta Sharing |
6. アーキテクチャとオープン性の比較
「オープン」は両者ともに掲げるキーワードですが、その意味合いは異なります。
Snowflake Horizon Catalogのオープン性
Snowflake自体はプロプライエタリなプラットフォームですが、Icebergを軸にオープン化を推進 しています。
- Apache Polaris™(Icebergカタログ)をHorizon Catalogに統合
- Iceberg REST Catalog APIを公開し、外部エンジンからのアクセスを許可
- Catalog-linked Databasesで外部カタログとの双方向連携を実現
「プラットフォームはクローズドだが、データアクセスはオープンにする」 という戦略です。
Databricks Unity Catalogのオープン性
Databricksは OSSファーストの姿勢 を明確にしています。
- Unity Catalog自体をオープンソースとして公開(GitHub上で開発)
- Delta Sharing(オープンプロトコル)でプラットフォームを問わないデータ共有
- Delta Lake + Icebergの両フォーマットをUniFormで統合
「カタログもプロトコルもオープンにし、エコシステム全体を巻き込む」 という戦略です。
「オープン」の定義は両社で異なります。Snowflakeは「データアクセスのオープン性」、Databricksは「ソフトウェアのオープンソース性」を重視しています。どちらが優れているかではなく、自社の要件に合うかで判断することが重要です。
7. 相互運用の最前線 ― 両方使うケース
実際の現場では、SnowflakeとDatabricksを 併用している企業 は少なくありません。SQLベースの分析はSnowflake、ML/AIパイプラインはDatabricks、というように使い分けるパターンです。
Snowflake → Databricksへの連携
Catalog-linked Databases を使うと、Databricks Unity Catalogで管理されているIcebergテーブル(UniFormで公開されたDeltaテーブル含む)を、Snowflake Horizon Catalogに自動同期できます。
-- Snowflake側: Unity CatalogとのCatalog Integration作成例
CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
CATALOG_NAMESPACE = 'my_schema'
REST_CONFIG = (
CATALOG_URI = '<databricks_workspace_url>/api/2.1/unity-catalog/iceberg'
CATALOG_NAME = 'my_catalog'
)
REST_AUTHENTICATION = (
TYPE = OAUTH
OAUTH_TOKEN_URI = '<databricks_workspace_url>/oidc/v1/token'
OAUTH_CLIENT_ID = '<client_id>'
OAUTH_CLIENT_SECRET = '<client_secret>'
);
Databricks → Snowflakeへの連携
Catalog Federation を使うと、Snowflake Horizon Catalogで管理されているIcebergテーブルを、Unity Catalogから参照(Foreign Iceberg Tables)できます。データをコピーすることなく、Databricks側からSnowflakeのデータにガバナンスを効かせた状態でアクセスできます。
併用のポイント
- Apache Icebergが共通言語として機能し、両者をつなぐ
- データのコピーや二重管理を避けられる
- ガバナンスはそれぞれのカタログで一貫して適用される
8. 2025年の最新動向
Horizon Catalogの注目アップデート
- Copilot for Horizon Catalog:自然言語でガバナンス・メタデータ管理タスクを実行できるAIアシスタント
- 外部データディスカバリ:リレーショナルDB、BIダッシュボード、セマンティックモデルなどSnowflake外部のデータも検索対象に
- Select Star社の買収:自動メタデータディスカバリ、カラムレベルリネージ、利用インテリジェンスの技術を統合予定
Unity Catalogの注目アップデート
- Unity Catalog Metrics:ビジネスKPIをカタログ内でファーストクラスのアセットとして定義・管理(SQL経由でどこからでも参照可能)
- Iceberg REST Catalog API 書き込み対応(パブリックプレビュー):外部エンジンからの書き込みもサポート
- Catalog Federation:AWS Glue、Hive Metastore、Snowflake HorizonのIcebergテーブルをデータコピーなしで管理
共通トレンド
両プラットフォームに共通する大きなトレンドは以下の3つです。
- AIによるガバナンスの自動化:メタデータ生成、分類、ポリシー提案のAI化
- Icebergを軸としたオープン化:Icebergが「共通言語」として両者をつなぐ存在に
- カタログの対象範囲の拡大:テーブルだけでなく、AIモデル・メトリクス・ノートブック・BIダッシュボードまでガバナンスの対象に
まとめ
この記事では、Snowflake Horizon CatalogとDatabricks Unity Catalogを7つの観点で比較しました。最後にポイントを整理します。
Horizon Catalog は、Snowflakeに組み込まれた5本柱の機能群で、特に機密データ保護やSQL中心のガバナンスに強みがあります。
Unity Catalog は、Databricksの統合ガバナンス基盤で、マルチ言語リネージやOSSエコシステムとの親和性に強みがあります。
そして最も重要なことは、両者は 「対立」ではなく「共存」の方向 に向かっているということです。Icebergを共通言語として、Catalog FederationやCatalog-linked Databasesにより相互運用が現実的になっています。
カタログがデータアーキテクチャの制御点になる時代。まずは自社で利用しているプラットフォームのカタログ機能を深く理解するところから始めてみてはいかがでしょうか。