Databricks コネクタを使用して別の Databricks ワークスペースに接続する
従来のクエリ フェデレーションのドキュメントは廃止されており、更新されない可能性があります。このコンテンツに記載されている製品、サービス、またはテクノロジは、Databricks によって公式に承認またはテストされたものではありません。レイクハウスフェデレーションとはを参照してください。
この記事では、Databricks コネクタを使用して別の Databricks ワークスペースに接続する構文の例を示します。このコネクタは、Databricks Runtime 13.3 LTS 以降に含まれている Databricks JDBC ドライバーを利用します。
ほとんどのデータ共有操作では、Databricks では Delta Sharing をお勧めします。「Delta Sharing とは」を参照してください。また、他の Databricks ワークスペース内のデータに対するクエリを管理するために、レイクハウスフェデレーションを好む場合もあります。 「レイクハウスフェデレーションとは」を参照してください。
別の Databricks ワークスペースへの接続
Databricks Spark コネクタを使用すると、別の Databricks ワークスペースで構成されたコンピュート リソースに接続し、結果を現在のDatabricks ワークスペースに返すことができます。クエリを成功させるには、両方のワークスペースでアクティブなコンピュートにアクセスできる必要があります。
JDBC ドライバーは jdbc:databricks://
URL に登録されています。リモートでアクセスされるワークスペース リソースに対するアクセス許可を付与する個人用アクセス トークンを構成して使用する必要があります。トークン管理 API を参照してください。
クラスターにDatabricks JDBCライブラリがアタッチされている場合は、クラスターに含まれているバージョンではなく、クラスターにアタッチされたライブラリバージョンが使用されますDatabricks Runtime
別の Databricks ワークスペースからデータを読み取る
次の例のように、データを読み取るときに Databricks Spark コネクタを使用する形式 databricks
を指定できます。
df = (spark.read
.format("databricks")
.option("host", "<workspace-id>.<random-number>.gcp.databricks.com")
.option("httpPath", "/sql/1.0/warehouses/<warehouse-id>")
.option("personalAccessToken", "<auth-token>")
.option("dbtable", "<table-name>")
.load()
)
別の Databricks ワークスペースに対して外部テーブルを作成する
別のDatabricksワークスペースにリンクされたDatabricksワークスペースに外部テーブルを登録することができます。
次の例は、 secret
関数を使用して Databricks シークレットに格納された資格情報を取得する、この構文を示しています。
Databricks シークレットの詳細については、「secret
関数」を参照してください。
CREATE TABLE databricks_external_table
USING databricks
OPTIONS (
host '<workspace-id>.<random-number>.gcp.databricks.com',
httpPath '/sql/1.0/warehouses/<warehouse-id>',
personalAccessToken secret('<scope>', '<token>'),
dbtable '<table-name>'
);