別の Databricks ワークスペースでフェデレーション クエリを実行する
この記事では、レイクハウスフェデレーションを設定して、別のDatabricksワークスペースのDatabricksデータに対してフェデレーションクエリを実行する方法について説明します。レイクハウスフェデレーションの詳細については、「 レイクハウスフェデレーションとは」を参照してください。
Databricks-to-Databricks レイクハウスフェデレーションは、別の Databricks ワークスペースの Hive または AWS Glue メタストアによって管理されているデータに対してクエリを実行するための優れたツールです。 他のほとんどのシナリオでは、他の Databricks ワークフローの方が効率的です。
- Databricksワークスペースが同じUnity Catalogメタストアを共有している場合は、標準のUnity Catalogクエリとデータガバナンスツールを使用して、ワークスペース間のクエリを管理できます。
- Databricks アカウント内であるかどうかにかかわらず、別の Unity Catalog メタストアにアタッチされた Databricks ワークスペース内のデータに 読み取り専用 アクセスが必要な場合は、Delta Sharing の方が適しています。
どちらのシナリオでも、レイクハウスフェデレーションを設定する必要はありません。
レイクハウスフェデレーションを使用して別のワークスペースの Databricks カタログに接続するには、 Databricks Unity Catalog メタストアに次のものを作成する必要があります。
- ワークスペース内のクラスターSQL ウェアハウスまたは ウェアハウス。Databricks
- クラスターまたはSQL ウェアハウスへの接続。
- クラスターまたは SQLウェアハウスからアクセスできる他の Databricks カタログをミラーリングする Unity Catalog メタストア内の フォーリンカタログ で、 Unity Catalog クエリー構文ツールとデータガバナンスツールを使用してデータへの Databricks ユーザー アクセスを管理できます。
始める前に
ワークスペースの要件:
- Unity Catalogのワークスペースが有効になっています。
コンピュートの要件:
- コンピュート・リソースからターゲット・データベース・システムへのネットワーク接続。 「レイクハウスフェデレーションのネットワーキングに関する推奨事項」を参照してください。
- Databricks コンピュートは、 Databricks Runtime 13.3 LTS 以上、 および標準 または 専用 アクセスモードを使用する必要があります。
- SQLウェアハウスはProまたはServerlessで、2023.40以上を使用している必要があります。
必要な権限:
- 接続を作成するには、メタストア管理者か、ワークスペースに接続されているUnity Catalogメタストアの
CREATE CONNECTION
権限を持つユーザーである必要があります。 - フォーリンカタログを作成するには、メタストアに対する
CREATE CATALOG
権限を持ち、接続の所有者であるか、接続に対するCREATE FOREIGN CATALOG
権限を持っている必要があります。
追加の権限要件は、以下の各タスクベースのセクションに記載しています。
また、接続の構成に使用している ワークスペースにアクティブなクラスターSQL ウェアハウスまたは ウェアハウスが必要です。Databricks
接続を作成する
接続では、外部データベースシステムにアクセスするためのパスと認証情報を指定します。接続を作成するには、カタログエクスプローラーを使用するか、Databricksノートブックまたは Databricks SQLクエリーエディタで CREATE CONNECTION
SQLコマンドを使用できます。
Databricks REST API または Databricks CLI を使用して接続を作成することもできます。 POST /api/2.1/unity-catalog/connections を参照してください。 および Unity Catalog コマンド。
必要な権限: メタストア管理者またはCREATE CONNECTION
権限を持つユーザー。
- Catalog Explorer
- SQL
-
Databricks ワークスペースで、
カタログ をクリックします。
-
[カタログ]ウィンドウの上部にある [
追加] アイコンをクリックし、メニューから [ 接続の追加] を選択します。
または、 クイックアクセス ページから 外部データ > ボタンをクリックし、 接続 タブに移動して 接続を作成 をクリックします。
-
接続のセットアップ ウィザードの 接続の基本 ページで、わかりやすい 接続名 を入力します。
-
[接続の種類 ] で [Databricks ] を選択します。
-
(オプション)コメントを追加します。
-
次へ をクリックします。
-
[ 認証 ] ページで、他の Databricks インスタンスの次の接続プロパティを入力します。
- ホスト : ワークスペース インスタンス名。ワークスペース インスタンス名を取得する方法については、「 ワークスペース オブジェクトの識別子を取得する」を参照してください。
- 個人用アクセス トークン : ターゲット ワークスペースへのアクセスを可能にする Databricks 個人用アクセス トークン。トークンを取得する方法については、「 Databricks 個人用アクセス トークン認証」を参照してください。接続の場合、 Databricks はサービスプリンシパルの個人用アクセス トークンを使用することをお勧めします。
- HTTP パス : SQLウェアハウスの HTTP パス。 パスを取得するには、サイドバー のSQL > SQLウェアハウス に移動し、SQLウェアハウスを選択し、 [接続の詳細 ] タブに移動して、 [HTTP パス ] の値をコピーします。
-
接続の作成 をクリックします。
-
[ カタログの基本 ] ページで、このメタストア内のカタログ オブジェクトにマップできる他の Databricks ワークスペースのカタログ名を入力します。
-
(オプション)[ 接続をテスト ]をクリックして、動作することを確認します。
-
[ カタログを作成 ] をクリックします。
-
[ アクセス ] ページで、作成したカタログにユーザーがアクセスできるワークスペースを選択します。[ すべてのワークスペースにアクセス権がある ] を選択するか、[ ワークスペースに割り当て ] をクリックし、ワークスペースを選択して [ 割り当て] をクリックします。
-
カタログ内のすべてのオブジェクトへのアクセスを管理できる 所有者 を変更します。テキスト ボックスにプリンシパルの入力を開始し、返された結果でプリンシパルをクリックします。
-
カタログに対する 権限を付与 します。[ 許可 ] をクリックします。
-
カタログ内のオブジェクトにアクセスできる プリンシパル を指定します。テキスト ボックスにプリンシパルの入力を開始し、返された結果でプリンシパルをクリックします。
-
各プリンシパルに付与する 権限プリセット を選択します。デフォルトでは、すべてのアカウントユーザーに
BROWSE
が付与されます。- ドロップダウンメニューから「 データ閲覧者 」を選択して、カタログ内のオブジェクトに対する
read
権限を付与します。 - ドロップダウンメニューから「 データエディタ 」を選択して、カタログ内のオブジェクトに対する
read
権限とmodify
権限を付与します。 - 付与する権限を手動で選択します。
- ドロップダウンメニューから「 データ閲覧者 」を選択して、カタログ内のオブジェクトに対する
-
付与 をクリックします。
-
-
次へ をクリックします。
-
[メタデータ] ページで、タグのキーと値のペアを指定します。詳細については、「Unity Catalog セキュリティ保護可能なオブジェクトにタグを適用する」を参照してください。
-
(オプション)コメントを追加します。
-
保存 をクリックします。
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行し、以下を置き換えます。
<connection-name>
: 作成する接続のわかりやすい名前。<workspace-instance>
: ターゲット ワークスペース インスタンス。ワークスペース インスタンス名を取得する方法については、「 ワークスペース オブジェクトの識別子を取得する」を参照してください。<sql-warehouse-path>
: SQLウェアハウスの HTTP パス。 パスを取得するには、サイドバー のSQL > SQLウェアハウス に移動し、SQLウェアハウスを選択し、 [接続の詳細 ] タブに移動して、 [HTTP パス ] の値をコピーします。<personal-access-token>
: ターゲット ワークスペースへのアクセスを可能にする Databricks 個人用アクセス トークン。トークンを取得する方法については、「 Databricks 個人用アクセス トークン認証」を参照してください。接続については、サービスプリンシパルの個人用アクセストークンを使用することをお勧めします Databricks 。
CREATE CONNECTION <connection-name> TYPE databricks
OPTIONS (
host '<workspace-instance>',
httpPath '<sql-warehouse-path>',
personalAccessToken '<personal-access-token>'
);
資格情報などの機密性の高い値には、プレーンテキスト文字列の代わりに Databricks シークレット を使用することをお勧めします。例えば:
CREATE CONNECTION <connection-name> TYPE databricks
OPTIONS (
host '<workspace-instance>',
httpPath '<sql-warehouse-path>',
personalAccessToken secret ('<secret-scope>','<secret-key-password>')
)
シークレットの設定に関する情報については、「 シークレット管理」を参照してください。
フォーリンカタログの作成
UI を使用してデータソースへの接続を作成する場合は、フォーリンカタログの作成が含まれているため、この手順をスキップできます。
フォーリンカタログは、外部 Databricks ワークスペース内のカタログをミラーリングするため、その外部 Databricks カタログ内のデータへのアクセスを、独自の Workpsace のカタログであるかのように管理できます。 フォーリンカタログを作成するには、既に定義されている外部 Databricks ワークスペースへの接続を使用します。
フォーリンカタログを作成するには、Catalog ExplorerCREATE FOREIGN CATALOG
SQL を使用するか、Databricks ノートブックまたは クエリDatabricks SQL エディターの コマンドを使用します。Databricks REST API または Databricks CLI を使用してカタログを作成することもできます。 POST /api/2.1/unity-catalog/catalogs を参照してください。 および Unity Catalog コマンド。
必要な権限: メタストアの CREATE CATALOG
権限、接続の所有権または接続の CREATE FOREIGN CATALOG
権限。
- Catalog Explorer
- SQL
-
Databricks ワークスペースで、
[カタログ]をクリックして カタログエクスプローラー を開きます。
-
カタログ ペインの上部で、
追加 アイコンをクリックし、メニューから[ カタログを追加 ]を選択します。
または、 クイックアクセス ページから[ カタログ ]ボタンをクリックし、[ カタログを作成 ]ボタンをクリックします。
-
「カタログの作成」のフォーリンカタログの作成手順に従います。
ノートブックまたはDatabricks SQLエディタで次のSQLコマンドを実行します。括弧内の項目はオプションです。プレースホルダーの値を置き換えます。
<catalog-name>
: 作成するフォーリンカタログの名前。<connection-name>
: データソース、パス、およびアクセス認証情報を指定する 接続オブジェクト 。<external-catalog-name>
: ミラーリングしている外部 Databricks ワークスペース内のカタログの名前。
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (catalog '<external-catalog-name>');
サポートされているプッシュダウン
次のプッシュダウンは、すべてのコンピュートでサポートされています。
- フィルター
- 予測
- 上限
- 関数: フィルター式のみがサポートされています (文字列関数、数学関数、データ関数、時刻関数、タイムスタンプ関数、および Alias、Cast、SortOrder などの他の関数)。
次のプッシュダウンは、 Databricks Runtime 13.3 LTS 以上および SQLウェアハウス コンピュートでサポートされています。
- 集計
- 次の Boolean 演算子: =、<、<=、>、>=、<=>
- 次の数学関数 (ANSI が無効になっている場合はサポートされません): +、-、*、%、/
- 次のその他の演算子: ^、|、~
- ソート (制限付きで使用した場合)
次のプッシュダウンはサポートされていません。
- テーブルのJOIN
- Windows の機能