メインコンテンツまでスキップ

外部データベースとカタログに接続します

Databricksは、データを移行することなく、外部データベースやカタログ内のデータをクエリおよびアクセスするための複数のオプションを提供しています。アクセスパターン、ガバナンス要件、書き込み要件、およびコンピュートの設定に基づいて、アプローチを選択してください。

アプローチを選択してください

以下の表は、クエリフェデレーションとカタログフェデレーションを比較したもので、適切なアプローチを選択するのに役立ちます。

説明

クエリーの実行

書き込みのサポート

ガバナンス

どのようなタスクにベストなのか

クエリ フェデレーション

JDBC を使用して、自動クエリプッシュダウン機能と、フォーリンカタログを介したUnity Catalogガバナンスにより、外部リレーショナルデータベースに対してフェデレーションクエリを実行できます。

JDBC を使用して外部データベースにプッシュダウンされます。クエリは、Databricksとリモートコンピュートの両方で実行されます。

サポートされていません(読み取り専用)。

テーブルレベルのアクセス制御を備えた Unity Catalog のフォーリンカタログ。

アドホックなレポート、BI、運用データベースへの概念実証アクセス

カタログフェデレーション

外部カタログプラットフォーム(Hive metastore、AWS Glue、Snowflakeなど)を接続すると、これらのデータをオブジェクトストレージで直接クエリできます。

Databricksコンピュートでのみオブジェクトストレージに直接実行できます。クエリフェデレーションよりも費用対効果が高く、パフォーマンスも最適化されています。

サポートされていません(読み取り専用)。

テーブルレベルのアクセス制御を備えた Unity Catalog のフォーリンカタログ。

Unity Catalog への段階的な移行、または外部カタログにデータを持つ長期的なハイブリッドモデルの維持。

レイクハウスフェデレーション

レイクハウスフェデレーションは、Databricksのクエリーフェデレーションプラットフォームです。Unity Catalog フォーリンカタログを通じて、ガバナンスが適用された外部データへの読み取り専用アクセスを提供します。これには、自動クエリプッシュダウンとテーブルレベルでのきめ細やかなアクセス制御が含まれます。

レイクハウスフェデレーションには、クエリフェデレーションとカタログフェデレーションの2つの種類があります。

クエリ フェデレーションとカタログ フェデレーションの比較

次の表に、クエリーフェデレーションとカタログフェデレーションの主な違いを説明します。

クエリ パス

ユースケース

手順の概要

クエリ フェデレーション

Unity Catalog クエリは、JDBC を使用して外部データベースにプッシュダウンされます。クエリは、 Databricks とリモートコンピュートの両方で実行されます。

  • 外部データベースに格納されている運用データへのアドホックレポートまたは概念実証アクセスが必要です。
  • データの移動を最小限に抑え、外部システムへのライブアクセスを維持したいと考えています。

ソースがレイクハウスフェデレーションと Lakeflow Connectの両方をサポートしている場合、 Databricks は、より多くのデータ量とより低いレイテンシーでのパフォーマンスが優先される場合は、 Lakeflow Connect することをお勧めします。

  1. アクセス資格情報と JDBC URL を使用して Unity Catalog で接続を作成します。
  2. 接続を使用してフォーリンカタログを作成します。
  3. フォーリンカタログのテーブルに対する権限をユーザーに付与します。
  4. クエリを実行します。これらは外部データベースにプッシュダウンされます。

カタログフェデレーション

Unity Catalog クエリは、オブジェクトストレージのフォーリンテーブルに直接アクセスします。 カタログフェデレーションは、カタログおよびストレージサービスへの直接アクセスをサポートするプラットフォームで使用できます。クエリは conピュート Databricks でのみ実行されるため、カタログ フェデレーションはクエリ フェデレーションよりもコスト効率が高く、パフォーマンスが最適化されています。

  • Unity Catalogへ移行していますが、フォーリンカタログで管理されているデータを段階的に導入する必要があります。
  • 一部のデータは外部カタログにとどまり、一部のデータは Unity Catalog によって管理される長期的なハイブリッド モデルが必要です。
  1. 外部カタログにアクセスするための接続を Unity Catalog に作成します。
  2. テーブルパスのストレージ資格情報と外部ロケーションを作成します。
  3. 接続と外部ロケーションを使用してフォーリンカタログを作成します。
  4. フォーリンカタログのテーブルに対する権限をユーザーに付与します。
  5. クエリを実行します。これらはオブジェクト・ストレージに対して直接実行されます。

サポートされているデータソース

クエリ フェデレーションを使用して次のソースに接続します。

カタログフェデレーションを使用して、次のソースに接続します。

Spark データソース

Spark データソース API を使用すると、Databricks から直接、外部データベースのデータを読み書きできます。レイクハウスフェデレーションがソースをサポートしていない場合、書き込みアクセスが必要な場合、またはクエリの実行と並列化に対するより詳細な制御が必要な場合に使用します。

Databricks Runtimeには、PostgreSQL、SQL Server、MySQL、Snowflake、Redshiftなどの一般的なデータベース用のコネクタがバンドルされています。任意のJDBC互換データベースでは、JDBC Unity Catalog接続を使用することで、集中管理された認証情報で独自のドライバーを持ち込むことができます。専用クラスターにサードパーティ製のコネクタをインストールしたり、PySpark DataSource API を使用して Python で完全にカスタムのコネクタを構築したりすることもできます。

セットアップ手順および詳細については、Spark データソースを参照してください。

追加のリソース