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

レイクハウスフェデレーションとは何ですか?

この記事では、Databricksを使用して複数の外部データソースに対してクエリーを実行できるようにするクエリーフェデレーションプラットフォームである、レイクハウスフェデレーションについて説明します。また、レイクハウスフェデレーション 接続 を設定し、Unity Catalogメタストアに フォーリンカタログ を作成する方法についても説明します。

レイクハウスフェデレーションとは何ですか?

レイクハウスフェデレーションは、Databricksのクエリーフェデレーションプラットフォームです。 クエリーフェデレーション という用語は、すべてのユーザーを統一システムに移行しなくても、ユーザーとシステムが複数のデータソースに対してクエリーを実行できるようにする機能のコレクションを表します。

Databricks は Unity Catalog を使用してクエリのフェデレーションを管理します。 一般的なデータベース ソリューションへの読み取り専用接続は、Pro SQLウェアハウス、サーバレス SQLウェアハウス、および Databricks Runtime クラスターに含まれているドライバーを使用して構成します。 Unity Catalog のデータガバナンスツールとデータリネージツールにより、Databricks ワークスペース内のユーザーによって行われるすべてのフェデレーションクエリのデータアクセスが管理および監査されます。

なぜレイクハウスフェデレーションを使用するのですか?

レイクハウスでは、データの冗長性と分離を減らすために、データの中央ストレージを強調しています。 組織では、本番運用に多数のデータシステムがあり、次のような理由で接続されたシステムのデータをクエリーしたい場合があります。

  • アドホックなレポート
  • POC作業
  • 新しいETLパイプラインまたはレポートの調査段階
  • インクリメンタルマイグレーション中のワークロードのサポート

いずれのシナリオでも、クエリーフェデレーションを使用すると、その場でデータをクエリーでき、複雑で時間のかかるETL処理を回避できるため、より迅速に知見を得ることができます。

レイクハウスフェデレーションは、以下のような用途に適しています。

  • Databricksにデータを取り込みたくない
  • クエリで外部データベースシステムのコンピュートを活用したい
  • きめ細かなアクセス制御、データのリネージ、検索など、Unity Catalogのインターフェースとデータガバナンスのメリットを活用したい

レイクハウスフェデレーションのセットアップの概要

レイクハウスフェデレーションを使用してデータセットを読み取り専用クエリーに利用できるようにするには、以下を作成します。

  • 接続 :外部データベースシステムにアクセスするためのパスと認証情報を指定する、Unity Catalogのセキュアなオブジェクト。

  • 外部カタログ :外部データシステムのデータベースをミラーリングするUnity Catalog内の保護可能なオブジェクト。これにより、Databricksワークスペース内のそのデータシステムに対して読み取り専用クエリ^を実行でき、Unity Catalogを使用してアクセスを管理できます。

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

レイクハウスフェデレーションは、次のソースへの接続をサポートしています。

接続要件

ワークスペースの要件:

  • Unity Catalogのワークスペースが有効になっています。

コンピュートの要件:

  • コンピュート・リソースからターゲット・データベース・システムへのネットワーク接続。 「レイクハウスフェデレーションのネットワーキングに関する推奨事項」を参照してください。
  • Databricks コンピュートは、 Databricks Runtime 13.3 LTS 以上、 および標準 または 専用 アクセスモードを使用する必要があります。
  • SQLウェアハウスはProまたはServerlessで、2023.40以上を使用している必要があります。

必要な権限:

  • 接続を作成するには、メタストア管理者か、ワークスペースに接続されているUnity Catalogメタストアの CREATE CONNECTION 権限を持つユーザーである必要があります。
  • フォーリンカタログを作成するには、メタストアに対する CREATE CATALOG 権限を持ち、接続の所有者であるか、接続に対する CREATE FOREIGN CATALOG 権限を持っている必要があります。

追加の権限要件は、以下の各タスクベースのセクションに記載しています。

接続を作成する

接続では、外部データベースシステムにアクセスするためのパスと認証情報を指定します。接続を作成するには、カタログエクスプローラーを使用するか、Databricksノートブックまたは Databricks SQLクエリーエディタで CREATE CONNECTION SQLコマンドを使用できます。

注記

Databricks REST API または Databricks CLI を使用して接続を作成することもできます。 POST /api/2.1/unity-catalog/connections を参照してください。 および Unity Catalog コマンド

必要な権限: メタストア管理者またはCREATE CONNECTION権限を持つユーザー。

  1. In your Databricks workspace, click Catalog icon Catalog.

  2. At the top of the Catalog pane, click the Add or plus icon Add icon and select Add a connection from the menu.

    Alternatively, from the Quick access page, click the External data > button, go to the Connections tab, and click Create connection.

  3. Enter a user-friendly Connection name.

  4. Select the Connection type (database provider, like MySQL or PostgreSQL).

  5. (Optional) Add a comment.

  6. Click Next.

  7. Enter the connection properties (such as host information, path, and access credentials).

    Each connection type requires different connection information. See the article for your connection type, listed in the table of contents to the left.

  8. Click Create connection.

  9. Enter a name for the foreign catalog.

  10. (Optional) Click Test connection to confirm that it works.

  11. Click Create catalog.

  12. Select the workspaces in which users can access the catalog you created. You can select All workspaces have access, or click Assign to workspaces, select the workspaces, and then click Assign.

  13. Change the Owner who will be able to manage access to all objects in the catalog. Start typing a principal in the text box, and then click the principal in the returned results.

  14. Grant Privileges on the catalog. Click Grant:

    1. Specify the Principals who will have access to objects in the catalog. Start typing a principal in the text box, and then click the principal in the returned results.
    2. Select the Privilege presets to grant to each principal. All account users are granted BROWSE by default.
      • Select Data Reader from the drop-down menu to grant read privileges on objects in the catalog.
      • Select Data Editor from the drop-down menu to grant read and modify privileges on objects in the catalog.
      • Manually select the privileges to grant.
    3. Click Grant.
    4. Click Next.
    5. On the Metadata page, specify tags key-value pairs. For more information, see Apply tags to Unity Catalog securable objects.
    6. (Optional) Add a comment.
    7. Click Save.

既存の接続の管理に関する情報については、「 レイクハウスフェデレーションの接続の管理」を参照してください。

フォーリンカタログの作成

注記

UI を使用してデータソースへの接続を作成する場合は、フォーリンカタログの作成が含まれているため、この手順をスキップできます。

フォーリンカタログは、外部データシステム内のデータベースをミラーリングするため、DatabricksとUnity Catalogを使用して、そのデータベース内のデータへのアクセスを管理できます。フォーリンカタログを作成するには、すでに定義されているデータソースへの接続を使用します。

フォーリンカタログを作成するには、Catalog ExplorerCREATE FOREIGN CATALOGSQL を使用するか、Databricks ノートブックまたは クエリSQL エディターの コマンドを使用します。Unity Catalog API を使用することもできます。 Databricks のリファレンス ドキュメントを参照してください。

フォーリンカタログのメタデータは、カタログとやり取りするたびにUnity Catalogに同期されます。Unity Catalogとデータソース間のデータ型マッピングについては、各データソースのドキュメントの 「データ型マッピング」 セクションを確認してください。

必要な権限: メタストアの CREATE CATALOG 権限、接続の所有権または接続の CREATE FOREIGN CATALOG 権限。

  1. In your Databricks workspace, click Catalog icon Catalog to open Catalog Explorer.

  2. At the top of the Catalog pane, click the Add or plus icon Add icon and select Add a catalog from the menu.

    Alternatively, from the Quick access page, click the Catalogs button, and then click the Create catalog button.

  3. Follow the instructions for creating foreign catalogs in Create catalogs.

フォーリンカタログの管理と操作に関する情報については、「 フォーリンカタログの管理と操作」を参照してください。

システム生成の横串検索を表示する

レイクハウスフェデレーションは、 Databricks SQL ステートメントを、フェデレーテッドデータソースにプッシュダウンできるステートメントに変換します。 生成された SQL ステートメントを表示するには、 Query Profile のグラフ・ビューで外部データソース scan ノードをクリックするか、 EXPLAIN FORMATTED SQL ステートメントを実行します。 カバレッジについては、各データソースのドキュメントの 「サポートされているプッシュダウン 」セクションを参照してください。

制限

  • クエリは読み取り専用です。
  • 接続の調整は、 Databricks SQL 並列クエリの制限を使用して決定されます。 接続ごとにウェアハウス間での制限はありません。 「プロおよびクラシック SQLウェアハウスのキューイングとオートスケール」を参照してください。
  • Unity Catalog で無効な名前のテーブルとスキーマはサポートされておらず、フォーリンカタログの作成時に Unity Catalog によって無視されます。命名規則と制限のリストについては、 制限事項を参照してください。
  • テーブル名とスキーマ名は、 Unity Catalogでは小文字に変換されます。ルックアップでは、小文字の名前も使用する必要があります。小文字の名前が重複するテーブルまたはスキーマがある場合、テーブルまたはスキーマの 1 つだけがフォーリンカタログにインポートされます。
  • 参照されるフォーリンテーブルごとに、 Databricks は、リモート・システム内のサブクエリをスケジュールして、そのテーブルからデータのサブセットを戻し、その結果を 1 つのストリームで 1 つの Databricks エグゼキューター・タスクに返します。 結果セットが大きすぎると、エグゼキューターがメモリ不足で実行される可能性があります。
  • 専用アクセスモード (旧称シングルユーザーアクセスモード) は、接続を所有するユーザーのみが使用できます。
  • レイクハウスフェデレーションはAzure Synapse接続またはRedshift接続の大文字と小文字を区別する識別子を持つフォーリンテーブルをフェデレーションできません。

リソースクォータ

Databricks は、すべての Unity Catalog セキュリティ保護可能なオブジェクトにリソース クォータを適用します。 これらのクォータは、「 リソース制限」に記載されています。 フォーリンカタログとそれに含まれるすべてのオブジェクトは、クォータ使用量の合計に含まれます。

これらのリソース制限を超えることが予想される場合は、Databricksアカウントチームにお問い合わせください。

クォータの使用状況は、 Unity Catalog リソース クォータ APIsを使用して監視できます。 「Unity Catalog のリソース クォータの使用状況を監視する」を参照してください

追加のリソース