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

OpenSharing での一般的な共有に関する問題のトラブルシューティング

以下のセクションでは、共有データにアクセスしようとしたときに発生する可能性のある一般的なエラーについて説明します。

リソース制限超過エラー

問題 : 共有テーブルでのクエリでエラー RESOURCE_LIMIT_EXCEEDED が返されます。

  • "RESOURCE_LIMIT_EXCEEDED","message":"The table metadata size exceeded limits"
  • "RESOURCE_LIMIT_EXCEEDED","message":"The number of files in the table to return exceeded limits, consider contact your provider to optimize the table"

考えられる原因 :共有テーブルのメタデータに許可されるファイル数には制限があります。

  • アクティブなファイル :共有テーブルでサポートされるアクティブ ファイルは最大 400,000 個です(AddFile アクション)。アクティブ ファイル数がこの上限を超えると、クエリは "number of files exceeded" エラーを返します。
  • ファイル削除アクション : 共有テーブルは、Deltaログにおける最大100,000個のRemoveFileアクションをサポートします。RemoveFileアクションの数がこの制限を超過すると、クエリは「メタデータサイズ超過」エラーを返します。

アクティブファイルの制限について、制限の引き上げをリクエストできます。「リソース制限」を参照してください。

推奨される修正 : データプロバイダーに連絡し、OPTIMIZEVACUUM を実行して、共有テーブルを最適化し、小さいファイルを圧縮して、古い RemoveFile エントリを Delta ログから削除するように依頼してください。詳細については、Databricks ナレッジ ベースの「RESOURCE_LIMIT_EXCEEDED error when querying a Delta Sharing table」を参照してください。

Vacuum処理済みデータファイルの問題

問題 : 「404 指定された [path|key] が存在しません」という例外をスローするエラーメッセージが表示されます。

Sparkエラーの例:

java.lang.Throwable: HTTP request failed with status: HTTP/1.1 404 The specified path does not exist.

または

HTTP request failed with status: HTTP/1.1 404 Not Found <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message>

考えられる原因 :通常、このエラーは、共有テーブルでプリ署名付きURLに対応するデータファイルがvacuumされ、データファイルが履歴テーブルバージョンに属しているために発生します。

回避策 :最新のスナップショットをクエリーします。

オープンソース Spark でのスキーマの不一致エラー

問題: オープンソース Spark (OSS) の使用時に、OpenSharing テーブルの読み取り時にスキーマ不一致エラーが発生します。

エラーの例:

py4j.protocol.Py4JJavaError: An error occurred while calling o85.count.: org.apache.spark.SparkException: The schema or partition columns of your Delta table has changed since your DataFrame was created. Please redefine your DataFrame

考えられる原因: DataFrameが作成された後に、Deltaテーブルのスキーマまたはパーティション列が変更されました。

推奨される修正 : Spark 構成フラグ spark.delta.sharing.client.useStructuralSchemaMatchtrue に設定します。

注記

spark.delta.sharing.client.useStructuralSchemaMatch設定は、Apache Spark 4.0.0 以降を必要とする delta-sharing-client 1.2.3 以降でのみ利用可能です。

Python
spark.conf.set("spark.delta.sharing.client.useStructuralSchemaMatch", "true")

共有される具体化アセットのアクセスに関する問題

問題 : 共有ビュー、マテリアライズドビュー、またはストリーミングテーブルに対するクエリでエラー「DS_MATERIALIZATION_QUERY_FAILED」が返されます。

"DS_MATERIALIZATION_QUERY_FAILED": "The shared asset could not be materialized due to the asset not being accessible in the materialization workspace. Please ask data provider to contact :re[DB] support to override the materialization workspace."

考えられる原因 : プロバイダーには、共有しようとしているアセットに対する読み書きアクセス権がありません。

**推奨される修正**: データプロバイダーに連絡し、共有データ資産への読み取り/書き込みアクセス権があることを確認してください。

データ具体化中のネットワークアクセスエラー

問題: 共有データアセットに対するクエリで、データプロバイダーのクラウドストレージへのアクセスに関するエラーが返されます。

There was an issue accessing the data provider's cloud storage. Shared view materialization uses the Serverless compute of data provider's region to perform the materialization. Please contact the data provider to allowlist Serverless compute IPs of their corresponding region to access the view's dependent tables storage location.

考えられる原因 :実体化されたデータのストレージの場所に、Databricks サーバレス コンピュートがアクセスできないネットワーク制限(ファイアウォールやプライベートリンクなど)があります。ビュー、マテリアライズドビュー、またはストリーミングテーブルを共有する場合、データはプロバイダー側で一時的に実体化されます。実体化ストレージの場所は、アセットの親スキーマまたはカタログのストレージの場所です。

推奨される修正点: データプロバイダーは、ビューの依存テーブルのストレージ ロケーションにアクセスするために、対応するリージョンのサーバレス コンピュート IP を許可リストに追加する必要があります。ファイアウォールを設定するには、ファイアウォールを使用してワークスペースのネットワークエグレスを制限するを参照してください。

データ資産「存在しません」エラー

共有アセットをクリックして、「存在しません」というオブジェクトエラーが発生した場合、プロバイダー側の共有所有者は、そのアセットに対する十分な権限を持っていない可能性があります。データプロバイダーに連絡し、共有所有者がすべての共有アセットに対して必要な権限を持っていることを確認するよう依頼してください。共有所有者がデータアセットを共有するために必要な権限の詳細については、「要件」と「受信者への共有アクセス権の付与」を参照してください。