Delta クライアントから Databricks テーブルを読み取る
Iceberg REST カタログを使用して、Apache Spark や DuckDB などのサポートされている Iceberg クライアントから Databricks 上の Unity Catalog に登録されたテーブルを読み取ります。
Unity REST API を使用して読み取る
Unity REST API は、Unity Catalog に登録されている Delta テーブルへの読み取りアクセスを外部クライアントに提供します。 一部のクライアントは、テーブルの作成と既存のテーブルへの書き込みもサポートしています。
エンドポイント /api/2.1/unity-catalog
を使用してアクセスを設定します。
要件
Databricks は、Unity Catalog の一部としてテーブルへの Unity REST API アクセスをサポートしています。 これらのエンドポイントを使用するには、ワークスペースで Unity Catalog を有効にする必要があります。 次のテーブルタイプは、Unity REST API の読み取りの対象となります。
Unity Catalog マネージドテーブル.
Delta Lake に格納された Unity Catalog 外部テーブル。
Unity REST API を使用して Delta クライアントから Databricks テーブルを読み取るためのアクセスを設定するには、次の構成手順を完了する必要があります。
メタストアの 外部データ アクセス を有効にします。 「 メタストアでの外部データ アクセスの有効化」を参照してください。
統合を構成するプリンシパルに、テーブルを含むスキーマに対する
EXTERNAL USE SCHEMA
権限を付与します。 プリンシパルへの EXTERNAL USE SCHEMA の付与を参照してください。Databricks 個人用アクセス トークンを使用して認証します。 「Databricks リソースへのアクセスを認証する」を参照してください。
Apache Spark を使用した Delta テーブルの読み取り
次に示すのは、Unity Catalog のマネージド テーブルと外部の Delta テーブルを読み取るように Apache Spark を構成するための設定の例です。
"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>"
次の変数を代入します。
<uc-catalog-name>
: テーブルを含む Unity Catalog のカタログの名前。<workspace-url>
: Databricks ワークスペースの URL。<token>
: 統合を構成するプリンシパルの PAT トークン。
重要
特定の設定は、カタログをバックアップするクラウドオブジェクトストレージのタイプによって異なります。 追加の構成については、 OSS Unity Catalog のドキュメント を参照してください。