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 シークレットの詳細については、「 シークレット関数」を参照してください。

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>'
);