Azure Databricksでは、データを移行せずに外部データベースやカタログ内のデータに対してクエリを実行したり、データにアクセスしたりするための複数のオプションが提供されます。 アクセス パターン、ガバナンス要件、書き込みニーズ、コンピューティング設定に基づいてアプローチを選択します。
アプローチを選択する
次の表は、クエリフェデレーションとカタログフェデレーションを比較して、適切なアプローチを選択するのに役立ちます。
| Description | クエリの実行 | 書き込みサポート | Governance | 最適な用途 | |
|---|---|---|---|---|---|
| クエリ フェデレーションとは | 外部カタログを介した自動クエリ プッシュダウンと Unity カタログ ガバナンスを使用して、JDBC を使用して外部リレーショナル データベースに対してフェデレーション クエリを実行します。 | JDBC を使用して外部データベースにプッシュダウンします。 クエリは、Azure Databricksコンピューティングとリモート コンピューティングの両方で実行されます。 | サポートされていません (読み取り専用)。 | テーブル レベルのアクセス制御を備えた Unity カタログ外部カタログ。 | 運用データベースへのアドホック レポート、BI、概念実証アクセス。 |
| カタログ フェデレーション | 外部カタログ プラットフォーム (Hive Metastore、AWS Glue、Snowflake など) を接続して、オブジェクト ストレージ内のデータを直接照会できるようにします。 | Azure Databricks コンピューティング上でのみ、オブジェクト ストレージに対して直接実行されます。 クエリ フェデレーションよりもコスト効率が高く、パフォーマンスが最適化されています。 | サポートされていません (読み取り専用)。 | テーブル レベルのアクセス制御を備えた Unity カタログ外部カタログ。 | Unity カタログへの段階的な移行、または外部カタログ内のデータを使用した長期的なハイブリッド モデルの維持。 |
レイクハウスフェデレーション
Lakehouse Federation は、Azure Databricks クエリ フェデレーション プラットフォームです。 Unity カタログの外部カタログを通じて外部データに対する管理された読み取り専用アクセスを提供し、テーブル レベルで自動クエリ プッシュダウンときめ細かいアクセス制御を行います。
Lakehouse フェデレーションには、クエリ フェデレーションとカタログ フェデレーションの 2 種類があります。
カタログ フェデレーションと比較したクエリ フェデレーション
次の表では、クエリ フェデレーションとカタログ フェデレーションの主な違いについて説明します。
| クエリ パス | 利用シーン | 手順の概要 | |
|---|---|---|---|
| クエリ フェデレーションとは | Unity カタログ クエリは、JDBC を使用して外部データベースにプッシュダウンされます。 クエリは、Azure Databricksとリモート コンピューティングの両方で実行されます。 |
ソースが Lakehouse Federation と Lakeflow Connect の両方をサポートしている場合、データ ボリュームの増加と待機時間の短縮のパフォーマンスが優先される場合、Azure Databricksは Lakeflow Connect を推奨します。 |
|
| カタログ フェデレーション | Unity カタログ クエリは、オブジェクト ストレージ内の外部テーブルに直接アクセスします。 カタログ フェデレーションは、カタログおよびストレージ サービスへの直接アクセスをサポートするプラットフォームで使用できます。 クエリはAzure Databricksコンピューティングでのみ実行されます。つまり、カタログ フェデレーションはクエリ フェデレーションよりもコスト効率が高く、パフォーマンスが最適化されます。 |
|
|
サポートされているデータ ソース
クエリ フェデレーションを使用して、次のソースに接続します。
- MySQL
- PostgreSQL
- Teradata
- Oracle
- Amazon Redshift
- Salesforce Data 360
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
カタログ フェデレーションを使用して、次のソースに接続します。
Spark データ ソース
Spark データ ソース API を使用すると、Azure Databricksから直接外部データベースの読み取りと書き込みを行うことができます。 Lakehouse Federation がソースをサポートしていない場合、書き込みアクセスが必要な場合、またはクエリの実行と並列化をより詳細に制御する必要がある場合に使用します。
Databricks Runtime には、PostgreSQL、SQL Server、MySQL、Snowflake、Redshift などの一般的なデータベース用のバンドル されたコネクタが含まれています。 JDBC 互換データベースの場合は、JDBC Unity カタログ接続を使用して、一元化された資格情報管理を使用して独自のドライバーを使用できます。 また、PySpark DataSource API を使用して、専用クラスターにサード パーティ製コネクタをインストールしたり、Pythonで完全カスタム コネクタを構築したりすることもできます。
セットアップ手順と詳細については、「 Spark データ ソース」を参照してください。