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

Delta LakeクライアントからDatabricksテーブルを読み込む

このページでは、Unity REST APIを使用して、外部Delta LakeクライアントからUnity Catalog管理対象および外部テーブルにアクセスする方法の概要を説明します。 外部クライアントから外部 Delta Lake テーブルを作成するには、 「外部クライアントから外部 Delta テーブルを作成する」を参照してください。

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

サポートされている統合の完全な一覧については、「 Unity Catalog の統合」を参照してください

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

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

ワークスペース URL を使用してアクセスを構成します。Unity Catalog Spark クライアントは、リクエストを適切な Unity Catalog API エンドポイントに自動的にルーティングします。

重要

Unity REST API エンドポイントに使用されるワークスペース URL には、ワークスペース ID を含める必要があります。ワークスペース ID がないと、API リクエストは予期される応答ではなく、ログイン ページへの303リダイレクトを返す可能性があります。

ワークスペースの URL とワークスペース ID を確認するには、「ワークスペースのインスタンス名、URL、および ID」を参照してください。

必要条件

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

  • Unity Catalog マネージドテーブル.
  • Unity Catalog の外部テーブル。

Unity REST APIを使用してDelta LakeクライアントからDatabricksオブジェクトを読み取るためのアクセスを設定するには、以下の設定を完了する必要があります。

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

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

外部Apache SparkクライアントのOAuth認証には以下が必要です。

OAuth認証を使用してApache SparkでUnity Catalogマネージドテーブルと外部Delta Lakeテーブルを読み取るには、次の設定が必要です。

"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>",
"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",
"spark.jars": "/path/to/gcs-connector-3.0.2-shaded.jar"
注記

GCS コネクタ JAR ファイルを別途ダウンロードする必要があります。ダウンロードしたgcs-connector-3.0.2-shaded.jarファイルを指すようにspark.jarsパスを更新します。

次の変数を代入します。

注記

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

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

重要

Databricksは、ユーザーアカウント認証にPATではなくOAuthを使用することを推奨しています。OAuthはより強力なセキュリティを提供するためです。OAuthを使用してDatabricksユーザーアカウントで認証する方法については、 「OAuthを使用してDatabricksへのユーザーアクセスを承認する」を参照してください。

構成

Sparkの設定には、以下のパッケージまたはJARファイルを含める必要があります。

  • Delta Lake Spark ( io.delta:delta-spark ): Apache Spark の Delta Lake サポートを提供します。
  • Unity Catalog Sparkコネクタio.unitycatalog:unitycatalog-spark ):Apache SparkをUnity Catalogに接続します。
  • クラウド ストレージ コネクタ : テーブルをバックアップするクラウド オブジェクト ストレージにアクセスするために必要です。 コネクタはクラウドプロバイダーによって異なります。
    • AWS : org.apache.hadoop:hadoop-aws — S3ファイルシステムをサポートします。
    • Azure : org.apache.hadoop:hadoop-azure — Azure Data Lake Storage Gen2 をサポートします。
    • GCP : gcs-connector JAR — Google Cloud Storage をサポートします。JARファイルを別途ダウンロードし、 spark.jarsを使用して参照してください。

クラウド固有の追加設定については、 Unity Catalog OSSのドキュメントを参照してください。

"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>",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.hadoop.fs.gs.impl": "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem",
"spark.hadoop.fs.AbstractFileSystem.gs.impl": "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1",
"spark.jars": "/path/to/gcs-connector-3.0.2-shaded.jar"
注記

GCSコネクタJARをダウンロードし、 spark.jarsパスをダウンロードしたgcs-connector-3.0.2-shaded.jarファイルを指すように更新します。

:::

変数

設定ファイルに以下の変数を代入してください。

  • <uc-catalog-name>テーブルが格納されているUnity Catalogのカタログ名。

  • <token>: 統合を構成するプリンシパル用の個人アクセスウイルス (PAT)。

  • <workspace-url>: ワークスペース ID を含む Databricksワークスペース URL 。たとえば、 cust-success.cloud.databricks.com/?o=6280049833385130

資格更新

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

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

上記に表示されているパッケージのバージョンは、このページが最後に更新された時点でのものです。より新しいバージョンが利用可能になっている可能性があります。パッケージのバージョンが、使用しているDatabricks RuntimeおよびSparkのバージョンと互換性があることを確認してください。