ベアラー トークンで共有されるデータの読み取り

このページでは、ベアラー トークンを使用して OpenSharing オープン共有 プロトコルを使用して共有されたデータを読み取る方法について説明します。 これには、次のツールを使用して共有データを読み取る手順が含まれています。

この共有モデルでは、データ プロバイダーによってチームのメンバーと共有される資格情報ファイルを使用して、共有データへの読み取りアクセスをセキュリティで保護します。 資格情報が有効であり、プロバイダーがデータを共有し続ける限り、アクセス権は保持されます。 プロバイダーは資格情報の有効期限とローテーションを管理します。 データの更新は、ほぼリアルタイムで利用できます。 共有データのコピーを読み取って作成することはできますが、ソース データを変更することはできません。

Note

Databricks-to-Databricks OpenSharing を使用してデータが共有されている場合、データにアクセスするための資格情報ファイルは必要ありません。このページは適用されません。 代わりに、 Databricks-to-Databricks OpenSharing (受信者の場合) を使用して共有されるデータの読み取りを参照してください。

以降のセクションでは、Apache Spark、pandas、Power BI、Iceberg クライアントを使用して、資格情報ファイルを使用して共有データにアクセスして読み取る方法について説明します。 OpenSharing コネクタの完全な一覧とその使用方法については、OpenSharing オープンソースドキュメントを参照してください。 共有データへのアクセスで問題が発生した場合は、データプロバイダーにお問い合わせください。

始める前に

チームのメンバーは、データ プロバイダーが共有する資格情報ファイルをダウンロードし、セキュリティで保護されたチャネルを使用してそのファイルまたはファイルの場所を共有する必要があります。 Databricks から Open への共有モデルでのアクセス権の取得に関する説明を参照してください。

コネクタ固有のドキュメントについては、「 資格情報のダウンロード」ページを参照してください。

Iceberg クライアント: 共有データの読み取り

Snowflake、Trino、Flink、Spark などの外部 Iceberg クライアントを使用して、 Apache Iceberg REST Catalog API を使用して、コピー ゼロ アクセスで共有データ資産を読み取ります。

接続資格情報を取得する

外部 Iceberg クライアントで共有データ資産にアクセスする前に、次の資格情報を収集します。

  • Iceberg REST カタログのエンドポイント
  • 有効なベアラー トークン
  • 共有名
  • (省略可能)名前空間またはスキーマ名
  • (省略可能)テーブル名

Iceberg REST Catalog エンドポイント (icebergEndpoint) と Bearer トークンは、データ プロバイダーによって共有される資格情報ファイルにあります。 詳細については、「開始する前に」を参照してください。 共有名、名前空間、およびテーブル名は、OpenSharing API を使用してプログラムで検出できます。

Important

icebergEndpointは資格情報ファイル内にあり、<workspace-url>/api/2.0/delta-sharing/metastores/<metastore-id>/iceberg形式です。

次の例では、追加の資格情報を取得する方法を示します。 必要に応じ、資格情報ファイルからエンドポイント、Iceberg エンドポイント、ベアラー トークンを入力します。

// List shares
curl -X GET "<endpoint>/shares" \
   -H "Authorization: Bearer <bearerToken>"

// List namespaces
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces" \
   -H "Authorization: Bearer <bearerToken>"

// List tables
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces/<namespace>/tables" \
   -H "Authorization: Bearer <bearerToken>"

Note

このメソッドは常に資産の最新のリストを取得します。 ただし、インターネット アクセスが必要であり、コードなしの環境での統合が困難になる場合があります。

Iceberg カタログを構成する

必要な接続資格情報を取得したら、Iceberg REST カタログ エンドポイントを使用してテーブルを作成およびクエリするようにクライアントを構成します。

  1. 共有ごとに、カタログ統合を作成します。

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE CATALOG INTEGRATION <CATALOG_PLACEHOLDER>
    CATALOG_SOURCE = ICEBERG_REST
    TABLE_FORMAT = ICEBERG
    REST_CONFIG = (
       CATALOG_URI = '<icebergEndpoint>',
       WAREHOUSE = '<share_name>',
       ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
    )
    REST_AUTHENTICATION = (
       TYPE = BEARER,
       BEARER_TOKEN = '<bearerToken>'
    )
    ENABLED = TRUE;
    
  2. 必要に応じて、メタデータを最新の状態に保つ REFRESH_INTERVAL_SECONDS を追加します。 カタログの更新頻度に基づいて値を設定します。

    REFRESH_INTERVAL_SECONDS = 30
    
  3. カタログが構成されたら、カタログからデータベースを作成します。 これにより、そのカタログ内のすべてのスキーマとテーブルが自動的に作成されます。

    CREATE DATABASE <DATABASE_PLACEHOLDER>
    LINKED_CATALOG = (
       CATALOG = <CATALOG_PLACEHOLDER>
    );
    
  4. 共有が成功したことを確認するには、データベース内のテーブルからクエリを実行します。 Azure Databricks の共有データが表示されます。

結果が空であるか、エラーが発生した場合は、次の一般的なトラブルシューティング手順に従います。

  • 特権、スナップショット生成の状態、および REST 資格情報を再確認します。
  • データ プロバイダーに問い合わせてください。
  • Iceberg クライアントに固有のドキュメントを参照してください。

例: 異なる Iceberg クライアントを使用して共有テーブルにアクセスする

次の例は、接続資格情報を取得した後、Snowflake、Apache Spark、PyIceberg、REST API などの外部 Iceberg クライアントを使用してオープン共有テーブルにアクセスする方法を示しています。 接続資格情報の取得の詳細については、「開始する 前に」を参照してください。

Snowflake

Snowflake で共有データ資産を読み取るために、ダウンロードした資格情報ファイルをアップロードし、必要な SQL コマンドを生成します。

  1. OpenSharing のアクティブ化リンクから、Snowflake アイコンをクリックします。

  2. Snowflake 統合ページで、データ プロバイダーから受信した資格情報ファイルをアップロードします。

    Snowflake で資格情報ファイルをアップロードする

  3. 資格情報を読み込んだ後、Snowflake でアクセスする共有を選択します。

  4. 目的の資産を選択した後、[ SQL の生成 ] をクリックします。

    Snowflake の SQL コマンドを生成する

  5. 生成された SQL をコピーして Snowflake ワークシートに貼り付けます。 CATALOG_PLACEHOLDERを使用するカタログの名前に置き換え、DATABASE_PLACEHOLDER使用するデータベースの名前に置き換えます。

制限事項

Snowflake の Iceberg REST カタログに接続するには、次の制限があります。

Apache Spark

Apache Spark を使用して共有テーブルにアクセスするには、次の設定で Iceberg REST Catalog API を構成します。 <spark-catalog-name>をカタログの名前に置き換え、接続資格情報を指定します。

"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",

# Configuration for accessing tables shared using Delta Sharing
"spark.sql.catalog.<spark-catalog-name>":"org.apache.iceberg.spark.SparkCatalog",
"spark.sql.catalog.<spark-catalog-name>.type": "rest",
"spark.sql.catalog.<spark-catalog-name>.uri": "<icebergEndpoint>",
"spark.sql.catalog.<spark-catalog-name>.token": "<bearerToken>",
"spark.sql.catalog.<spark-catalog-name>.warehouse":"<share_name>",
"spark.sql.catalog.<spark-catalog-name>.scope":"all-apis"

PyIceberg

PyIceberg は、JVM を使用せずに Iceberg テーブルにアクセスするための Python 実装です。 PyIceberg では、データの読み取りやテーブル メタデータの検査などのテーブル操作に pyarrow が必要です。 追加の pyarrow を使用して PyIceberg をインストールします。

pip install "pyiceberg[pyarrow]"

共有テーブルにアクセスするには、PyIceberg 構成ファイルに次のカタログ構成を追加します。

catalog:
  delta_sharing:
    type: rest
    uri: <icebergEndpoint>
    warehouse: <share_name>
    token: <bearerToken>

REST API

次の curl 例のような REST API 呼び出しを使用して、テーブルを読み込み、データ ファイルにアクセスするための一時的な資格情報と共にそのメタデータを取得します。

curl -X GET -H "Authorization: Bearer <bearerToken>" -H "Accept: application/json" \
<icebergEndpoint>/v1/shares/<share_name>/namespaces/<schema_name>/tables/<table_name>

応答には、Iceberg テーブルのメタデータ、S3 の場所、クライアントがデータ ファイルを読み取ることを許可する一時的な AWS 資格情報が含まれます。

{
  "metadata-location": "s3://bucket/path/to/iceberg/table/metadata/file",
  "metadata": <iceberg-table-metadata-json>,
  "config": {
    "expires-at-ms": "<epoch-ts-in-millis>",
    "s3.access-key-id": "<temporary-s3-access-key-id>",
    "s3.session-token": "<temporary-s3-session-token>",
    "s3.secret-access-key": "<temporary-secret-access-key>",
    "client.region": "<aws-bucket-region-for-metadata-location>"
  }
}

Iceberg クライアントの制限事項

Iceberg クライアントから OpenSharing データに対してクエリを実行する場合は、次の制限事項が適用されます。

  • 名前空間にテーブルを一覧表示する場合、名前空間に 100 を超える共有ビューが含まれている場合、応答は最初の 100 ビューに制限されます。

Apache Spark: 共有データの読み取り

Apache Spark 3.x 以上を使用して共有データにアクセスするには、次の手順に従います。

以下の手順では、データ プロバイダーによって共有された資格情報ファイルにアクセスできることを前提としています。 Databricks から Open への共有モデルでのアクセス権の取得に関する説明を参照してください。

Important

絶対パスを使用して、資格情報ファイルに Apache Spark からアクセスできることを確認します。 パスは、クラウド オブジェクトまたは Unity カタログ ボリュームを参照できます。

Note

Unity カタログが有効になっている Azure Databricks ワークスペースで Spark を使用していて、プロバイダーのインポート UI を使用してプロバイダーと共有をインポートした場合、このセクションの手順は適用されません。 Unity カタログに登録されている他のテーブルと同様に、共有テーブルにアクセスできます。 delta-sharing Python コネクタをインストールしたり、資格情報ファイルへのパスを指定したりする必要はありません。 Azure Databricksでのプロバイダーのインポートと共有データの読み取りを参照してください。

OpenSharing Python と Spark コネクタをインストールする

共有されたテーブルの一覧など、共有データに関連するメタデータにアクセスするには、次の手順を行います。 この例では Python を使用します。

  1. Delta-sharing Python コネクタをインストールしてください。 Python コネクタの制限事項については、「OpenSharing Python コネクタの制限事項」を参照してください。

    pip install delta-sharing
    
  2. Apache Spark コネクタをインストールします。

Spark を使用して共有テーブルを一覧表示する

共有内のテーブルを一覧表示します。 次の例では、 <profile-path>を資格情報ファイルの場所に置き換えます。

import delta_sharing

client = delta_sharing.SharingClient(f"<profile-path>/config.share")

client.list_all_tables()

結果は、テーブルの配列と各テーブルのメタデータとなります。 次の出力は、2つのテーブルを表示します。

Out[10]: [Table(name='example_table', share='example_share_0', schema='default'), Table(name='other_example_table', share='example_share_0', schema='default')]

出力が空であるか、予想されるテーブルが含まれていない場合は、データ プロバイダーに問い合わせてください。

Spark を使用して共有データにアクセスする

次の変数を置き換えて、次のコマンドを実行します。

  • <profile-path>: 資格情報ファイルの場所。
  • <share-name>: テーブルの share= の値。
  • <schema-name>: テーブルの schema= の値。
  • <table-name>: テーブルの name= の値。
  • <version-as-of>: 省略可能。 データを読み込むテーブルのバージョン。 データ プロバイダーがテーブルの履歴を共有している場合にのみ機能します。 delta-sharing-spark 0.5.0 以上が必要です。
  • <timestamp-as-of>: 省略可能。 特定のタイムスタンプまたはそれより前のバージョンでデータを読み込みます。 データ プロバイダーがテーブルの履歴を共有している場合にのみ機能します。 delta-sharing-spark 0.6.0 以上が必要です。

Python

delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", version=<version-as-of>)

spark.read.format("deltaSharing")\
.option("versionAsOf", <version-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)

delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", timestamp=<timestamp-as-of>)

spark.read.format("deltaSharing")\
.option("timestampAsOf", <timestamp-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)

Scala

spark.read.format("deltaSharing")
.option("versionAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)

spark.read.format("deltaSharing")
.option("timestampAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)

Spark を使用して共有変更データ フィードにアクセスする

テーブル履歴が自分と共有されていて、ソース テーブルで変更データ フィード (CDF) が有効になっている場合は、次を実行して変更データ フィードにアクセスし、これらの変数を置き換えます。 delta-sharing-spark 0.5.0 以上が必要です。

1 つの開始パラメーターを指定する必要があります。

  • <profile-path>: 資格情報ファイルの場所。
  • <share-name>: テーブルの share= の値。
  • <schema-name>: テーブルの schema= の値。
  • <table-name>: テーブルの name= の値。
  • <starting-version>: 省略可能。 クエリの開始バージョン (これを含む)。 Long として指定します。
  • <ending-version>: 省略可能。 クエリの終了バージョン (これを含む)。 終了バージョンが指定されていない場合、API では最新のテーブル バージョンが使用されます。
  • <starting-timestamp>: 省略可能。 クエリの開始タイムスタンプ。このタイムスタンプ以降に作成されたバージョンに変換されます。 yyyy-mm-dd hh:mm:ss[.fffffffff] 形式の文字列として指定します。
  • <ending-timestamp>: 省略可能。 クエリの終了タイムスタンプ。これは、このタイムスタンプ以前または同時に作成されたバージョンに変換されます。 yyyy-mm-dd hh:mm:ss[.fffffffff] 形式の文字列として指定します

Python

delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_version=<starting-version>,
  ending_version=<ending-version>)

delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_timestamp=<starting-timestamp>,
  ending_timestamp=<ending-timestamp>)

spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingVersion", <starting-version>)\
.option("endingVersion", <ending-version>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingTimestamp", <starting-timestamp>)\
.option("endingTimestamp", <ending-timestamp>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

Scala

spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingVersion", <starting-version>)
.option("endingVersion", <ending-version>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingTimestamp", <starting-timestamp>)
.option("endingTimestamp", <ending-timestamp>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

出力が空であるか、予想されるデータが含まれていない場合は、データ プロバイダーに問い合わせてください。

Spark 構造化ストリームを使用して共有テーブルにアクセスする

テーブル履歴が共有されている場合は、共有データの読み取りをストリーミングできます。 delta-sharing-spark 0.6.0 以上が必要です。

サポートされているオプション:

  • ignoreDeletes: データを削除するトランザクションを無視します。
  • ignoreChanges: UPDATEMERGE INTODELETE (パーティション内)、OVERWRITE などのデータ変更操作のためにファイルがソース テーブルで書き換えられた場合は、更新を再処理します。 変更されていない行は、引き続き出力できます。 そのため、ダウンストリームコンシューマーは重複を処理できる必要があります。 削除はダウンストリームには反映されません。 ignoreChangesignoreDeletes を含みます。 したがって、 ignoreChangesを使用する場合、ソース テーブルの削除または更新によってストリームが中断されません。
  • startingVersion: 対象となる最初の共有テーブルのバージョン。 このバージョン (含む) 以降のすべてのテーブルの変更は、ストリーミング ソースによって読み取られます。
  • startingTimestamp: 対象となる最初のタイムスタンプ。 タイムスタンプ (包括) 以降にコミットされたすべてのテーブル変更は、ストリーミング ソースによって読み取られます。 例: "2023-01-01 00:00:00.0"
  • maxFilesPerTrigger: すべてのマイクロバッチで考慮される新しいファイルの数。
  • maxBytesPerTrigger: 各マイクロバッチで処理されるデータの量。 このオプションにより "ソフト最大値" が設定されます。これは、最小の入力単位がこの制限を超える場合にストリーミング クエリを進めるために、バッチでほぼこの量のデータが処理され、制限を超える処理が行われる可能性があることを意味します。
  • readChangeFeed: 共有テーブルの変更データ フィードをストリームで読み取ります。

サポートされているトリガー:

  • Trigger.ProcessingTime: 明示的なトリガーが指定されていない場合に使用される既定のトリガー。 データは連続するマイクロバッチで処理されます。
  • Trigger.AvailableNow: クエリは、開始時に共有テーブルのサーバー側バージョンをキャプチャし、バックログを複数のマイクロバッチとして処理し、 maxFilesPerTriggermaxVersionsPerRpcを受け入れ、キャプチャされたバージョンが使い果たされると終了します。 delta-sharing-spark 1.4.0 以降が必要です。 古いバージョンでは、maxVersionsPerRpc を反映しない Trigger.AvailableNow ラッパーにフォールバックします。
  • Trigger.Once:廃止;代わりに Trigger.AvailableNow を使用してください。 delta-sharing-sparkバージョンが 1.4.0 より前の場合、Trigger.AvailableNowmaxVersionsPerRpcを考慮しないラッパーにフォールバックします。

構造化ストリーミングのサンプルクエリ

Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

構造化ストリーミングの概念も参照してください。

削除ベクターまたは列マッピングが有効になっているテーブルの読み取り

Important

この機能は パブリック プレビュー段階です

削除ベクトルは、プロバイダーが共有 Delta テーブルで有効にできるストレージ最適化機能です。 Databricks の削除ベクトルを参照してください。

Azure Databricks では、Delta テーブルの列マッピングもサポートされています。 「Delta Lake 列マッピングを使用して列の名前を変更および削除する」を参照してください。

削除ベクトルまたは列マッピングが有効になっているテーブルをプロバイダーが共有している場合は、delta-sharing-spark 3.1 以降を実行しているコンピューティングを使用してそのテーブルを読み取ることができます。 Databricks クラスターを使用している場合は、Databricks Runtime 14.1 以降を実行しているクラスターを使用してバッチ読み取りを実行できます。 CDF とストリーミングの各クエリには、Databricks Runtime 14.2 以降が必要です。

バッチ クエリは、共有テーブルのテーブル機能に基づいて responseFormat を自動的に解決できるため、そのまま実行できます。

変更データ フィード (CDF) を読み取ったり、削除ベクトルまたは列マッピングが有効になっている共有テーブルに対してストリーミング クエリを実行したりするには、追加のオプション responseFormat=delta を設定する必要があります。

次の例は、バッチ、CDF、ストリーミングの各クエリを示しています。

import org.apache.spark.sql.SparkSession

val spark = SparkSession
        .builder()
        .appName("...")
        .master("...")
        .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
        .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
        .getOrCreate()

val tablePath = "<profile-file-path>#<share-name>.<schema-name>.<table-name>"

// Batch query
spark.read.format("deltaSharing").load(tablePath)

// CDF query
spark.read.format("deltaSharing")
  .option("readChangeFeed", "true")
  .option("responseFormat", "delta")
  .option("startingVersion", 1)
  .load(tablePath)

// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").load(tablePath)

共有テーブルの行追跡列の読み取り

データ プロバイダーが共有テーブルで行の追跡を有効にしている場合は、Scala Spark を使用して行追跡メタデータ列に対してクエリを実行できます。 使用可能な列の一覧については、「Azure Databricksの行の追跡」を参照してください。

responseFormat オプションをdeltaに設定する必要があります。

spark.read.format("deltaSharing")
  .option("responseFormat", "delta")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
  .select("_metadata.row_id")
  .show()

Note

Spark クライアントで行追跡列のクエリを実行する場合は、デルタ応答形式のみがサポートされます。 ダンプ コネクタはサポートされていません。

Pandas: 共有データの読み取り

pandas 0.25.3 以降の共有データにアクセスするには、次の手順に従います。

以下の手順では、データ プロバイダーによって共有された資格情報ファイルにアクセスできることを前提としています。 Databricks から Open への共有モデルでのアクセス権の取得に関する説明を参照してください。

Note

Unity Catalog が有効になっている Azure Databricks ワークスペースで pandas を使用しており、インポート プロバイダー UI を使ってプロバイダーと共有をインポートした場合、このセクションの手順は適用されません。 Unity カタログに登録されている他のテーブルと同様に、共有テーブルにアクセスできます。 delta-sharing Python コネクタをインストールしたり、資格情報ファイルへのパスを指定したりする必要はありません。 Azure Databricksでのプロバイダーのインポートと共有データの読み取りを参照してください。

OpenSharing Python コネクタをインストールする

共有されたテーブルの一覧など、共有データに関連するメタデータにアクセスするには、Delta Sharing Python コネクタをインストールします。 Python コネクタの制限事項については、「OpenSharing Python コネクタの制限事項」を参照してください。

pip install delta-sharing

を使用して共有テーブルを一覧表示する pandas

共有内のテーブルを一覧表示するには、<profile-path>/config.share を資格情報ファイルの場所に置き換えて、次を実行します。

import delta_sharing

client = delta_sharing.SharingClient(f"<profile-path>/config.share")

client.list_all_tables()

出力が空であるか、予想されるテーブルが含まれていない場合は、データ プロバイダーに問い合わせてください。

を使用して共有データにアクセスする pandas

Python を使用して pandas の共有データにアクセスするには、次を実行し、変数を次のように置き換えます。

  • <profile-path>: 資格情報ファイルの場所。
  • <share-name>: テーブルの share= の値。
  • <schema-name>: テーブルの schema= の値。
  • <table-name>: テーブルの name= の値。
import delta_sharing
delta_sharing.load_as_pandas(f"<profile-path>#<share-name>.<schema-name>.<table-name>")

を使用して共有変更データ フィードにアクセスする pandas

Python を使用して pandas の共有テーブルの変更データ フィードにアクセスするには、次のように変数を置き換えます。 データ プロバイダーがテーブルの変更データ フィードを共有しているかどうかによって、変更データ フィードを使用できない場合があります。

  • <starting-version>: 省略可能。 クエリの開始バージョン (これを含む)。
  • <ending-version>: 省略可能。 クエリの終了バージョン (これを含む)。
  • <starting-timestamp>: 省略可能。 クエリの開始タイムスタンプ。 このタイムスタンプ以降に作成されたバージョンに変換されます。
  • <ending-timestamp>: 省略可能。 クエリの終了タイムスタンプ。 このタイムスタンプ以前または同等に作成されたバージョンに変換されます。
import delta_sharing
delta_sharing.load_table_changes_as_pandas(
  f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_version=<starting-version>,
  ending_version=<ending-version>)

delta_sharing.load_table_changes_as_pandas(
  f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_timestamp=<starting-timestamp>,
  ending_timestamp=<ending-timestamp>)

出力が空であるか、予想されるデータが含まれていない場合は、データ プロバイダーに問い合わせてください。

Power BI: 共有データを読み取る

Power BI OpenSharing コネクタを使用すると、OpenSharing オープン プロトコルを介して共有されたデータセットを検出、分析、視覚化できます。

Requirements

Databricks に接続する

OpenSharing コネクタを使用してAzure Databricksに接続するには、次の操作を行います。

  1. テキスト エディターで資格情報ファイルを開き、エンドポイント URL とトークンを取得します。
  2. Power BIデスクトップを開きます。
  3. [ データの取得 ] メニューで、 OpenSharing を検索します。
  4. コネクタを選び、[接続] をクリックします。
  5. 資格情報ファイルからコピーしたエンドポイント URL を OpenSharing Server URL フィールドに 入力します。
  6. 必要に応じて、[詳細設定オプション] タブで、ダウンロードできる行の最大数に対して [行数の制限] を設定できます。 既定では、これは 100 万行に設定されています。
  7. OK をクリックします。
  8. [認証] では、資格情報ファイルから取得したトークンをベアラー トークンにコピーします。
  9. [接続] をクリックします。

Power BI OpenSharing コネクタの制限事項

Power BI OpenSharing Connector には、次の制限があります。

  • コネクタによって読み込まれるデータは、マシンのメモリに収まる必要があります。 この要件を管理するために、コネクタは、インポートされる行数を、Power BI Desktop の [詳細設定オプション] タブで設定した [行の制限] に制限します。

Tableau: 共有データを読み取る

Tableau OpenSharing コネクタを使用すると、OpenSharing オープン プロトコルを介して共有されているデータセットを検出、分析、視覚化できます。

Requirements

Azure Databricks に接続する

OpenSharing コネクタを使用してAzure Databricksに接続するには、次の操作を行います。

  1. Tableau Exchangeに移動し、指示に従って OpenSharing Connector をダウンロードし、適切なデスクトップ フォルダーに配置します。
  2. Tableau Desktop を開きます。
  3. [ コネクタ ] ページで、"OpenSharing by Databricks" を検索します。
  4. [共有ファイルのアップロード] を選択し、プロバイダーによって共有された資格情報ファイルを選びます。
  5. [データの取得] をクリックします。
  6. データ エクスプローラーで、テーブルを選びます。
  7. 必要に応じて、SQL フィルターまたは行の制限を追加します。
  8. [テーブル データの取得] をクリックします。

制限事項

Tableau OpenSharing コネクタには、次の制限があります。

  • コネクタによって読み込まれるデータは、マシンのメモリに収まる必要があります。 この要件を管理するために、コネクタはインポートされる行の数を Tableau で設定した行制限に制限します。
  • すべての列は型 String として返されます。
  • SQL フィルターは、OpenSharing サーバーが predicateHint をサポートしている場合にのみ機能します。
  • 削除ベクトルはサポートされていません。
  • 列マッピングはサポートされていません。

OpenSharing Python コネクタの制限事項

これらの制限は、OpenSharing Python コネクタに固有です。

  • OpenSharing Python コネクタ 1.1.0 以降では、列マッピングを持つテーブルに対するスナップショット クエリがサポートされていますが、列マッピングがあるテーブルに対する CDF クエリはサポートされていません。
  • OpenSharing Python コネクタは、クエリされたバージョン範囲でスキーマが変更された場合、use_delta_format=Trueで CDF クエリに失敗します。

ストリーミング テーブルの制限事項

共有ストリーミング テーブルの現在のスナップショットのみを読み取ることができます。 Databricks から Open への共有のストリーミング テーブルでは、次の機能はサポートされていません。

  • テーブルの履歴データのクエリ
  • テーブルの変更データ フィード (CDF) のクエリを実行する
  • Spark 構造化ストリーミングのソースとしてテーブルを使用する

マテリアライズドビューの制限事項

共有マテリアライズド ビューの現在のスナップショットのみを読み取ることができます。 具体化されたビューを Spark 構造化ストリーミングのソースとして使用することは、Databricks からオープンへの共有ではサポートされていません。

新しい資格情報を要求する

資格情報のアクティブ化 URL やダウンロードされた資格情報が失われるか、破損するか、侵害された場合、または資格情報の有効期限が切れてプロバイダーから新しい資格情報が送信されていない場合は、プロバイダーに連絡して新しい資格情報を要求してください。

Unity カタログでプロバイダー オブジェクトとして資格情報をインポートしたAzure Databricks受信者の場合は、Databricks REST API を使用して新しい資格情報を適用します。 公開されている受信者の資格情報を更新するを参照してください。