次の方法で共有


デルタ クライアントから Databricks テーブルを読み取る

このページでは、Unity REST API を使用して、外部 Delta クライアントから Unity カタログのマネージド テーブルと外部テーブルにアクセスする方法の概要について説明します。 外部クライアントから外部差分テーブルを作成するには、「外部クライアント から外部デルタ テーブルを作成する」を参照してください。

Iceberg REST カタログを使用して、Apache Spark や DuckDB など、サポートされている Iceberg クライアントから Azure Databricks 上の Unity カタログ登録済みテーブルを読み取ります。

サポートされている統合の完全な一覧については、 Unity カタログの統合を参照してください。

ヒント

Microsoft Fabric を使用して Azure Databricks データを読み取る方法については、「Microsoft Fabric を使用して Unity カタログに登録されているデータを読み取る」を参照してください。

Unity REST API を使用した読み取りと書き込み

Unity REST API は、Unity カタログに登録されているテーブルへの読み取りアクセスを外部クライアントに提供します。 一部のクライアントでは、テーブルの作成と既存のテーブルへの書き込みもサポートされています。

エンドポイント /api/2.1/unity-catalog を使用してアクセスを構成します。

要件

Azure Databricks では、Unity カタログの一部として、テーブルへの Unity REST API アクセスがサポートされています。 これらのエンドポイントを使用するには、ワークスペースで Unity カタログを有効にする必要があります。 Unity REST API の読み取りの対象となるテーブルの種類を次に示します。

  • Unity カタログのマネージド テーブル。
  • Unity カタログの外部テーブル。

Unity REST API を使用して Delta クライアントから Databricks オブジェクトを読み取るアクセスを構成するには、次の構成手順を完了する必要があります。

PAT 認証を使用して Apache Spark で差分テーブルを読み取る

PAT 認証を使用して Apache Spark で Unity カタログのマネージド および外部 Delta テーブルを読み取るために、次の構成が必要です。

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

次の変数に置き換える:

  • <uc-catalog-name>: テーブルを含む Unity カタログ内のカタログの名前。
  • <workspace-url>: Azure Databricks ワークスペースの URL。
  • <token>: 統合を構成するプリンシパルの個人用アクセス トークン (PAT)。

実行時間の長いジョブの資格情報の自動更新を有効にするには、次の構成を追加します。

"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true

上記のパッケージ バージョンは、このページの最後の更新時点の最新バージョンです。 新しいバージョンを使用できる場合があります。 パッケージのバージョンが Databricks Runtime のバージョンと Spark バージョンと互換性があることを確認します。

クラウド オブジェクト ストレージ用に Apache Spark を構成する方法の詳細については、 Unity カタログ OSS のドキュメントを参照してください

OAuth 認証を使用して Apache Spark でデルタ テーブルを読み取る

Azure Databricks では、OAuth マシン間 (M2M) 認証もサポートされています。 OAuth は、Unity カタログ認証のトークンの更新を自動的に処理します。 クラウド ストレージ資格情報の自動更新も必要な実行時間の長いジョブの場合は、Spark 構成で spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled 設定を有効にします。

外部 Spark クライアントの OAuth 認証には、次のものが必要です。

OAuth 認証を使用して Apache Spark で Unity カタログのマネージド テーブルと外部 Delta テーブルを読み取るために、次の構成が必要です。

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

次の変数に置き換える:

上記のパッケージ バージョンは、このページの最後の更新時点の最新バージョンです。 新しいバージョンを使用できる場合があります。 パッケージのバージョンが Spark バージョンと互換性があることを確認します。