このセクションでは、共有内のデータにアクセスしようとしたときに発生する可能性がある、一般的なエラーについて説明します。
リソースの制限超過に関するエラー
問題: 共有テーブルに対するクエリで、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 アクション) がサポートされます。 アクティブなファイルの数がこの制限を超えた場合、クエリは "ファイルの数を超えました" というエラーを返します。
- ファイルの削除アクション: 共有テーブルでは、Delta ログで最大 100,000 個の RemoveFile アクションがサポートされます。 RemoveFile アクションの数がこの制限を超えた場合、クエリは "メタデータ サイズを超えました" というエラーを返します。
アクティブなファイルの制限に対して制限の引き上げを要求できます。 リソース制限に関するページを参照してください。
推奨される修正: データ プロバイダーに問い合わせて、 OPTIMIZE を実行して共有テーブルを最適化するように依頼し、 VACUUM して小さなファイルを圧縮し、Delta ログから古い RemoveFile エントリを削除します。 追加のガイダンスについては、Databricks ナレッジ ベース の差分共有テーブルに対してクエリを実行する際のRESOURCE_LIMIT_EXCEEDEDエラー を参照してください。
バキュームされたデータ ファイルの問題
問題: “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 に対応するデータ ファイルが共有テーブルでバキュームされており、そのデータ ファイルが履歴テーブルバージョンに属している場合です。
回避策: 最新のスナップショットに対してクエリを実行します。
Open Source Spark でのスキーマの不一致エラー
問題: オープン ソース Spark (OSS) を使用している場合、差分共有テーブルを読み取るときにスキーマの不一致エラーが表示されます。
エラーの例:
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.useStructuralSchemaMatch を trueに設定します。
spark.conf.set("spark.delta.sharing.client.useStructuralSchemaMatch", "true")
ストレージ ネットワークの構成に関する問題
問題: SSLCertVerificationError を発生させるというエラーメッセージが表示される。
Spark でのエラー例:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)
考えられる原因: 通常、このエラーが表示されるのは、共有テーブルまたは共有ボリュームの保存場所にネットワーク制限があるのが原因です。
推奨される修正: ストレージ プロバイダー インターフェイス内のストレージ アカウントのファイアウォール設定で、クライアント IP を許可することにより、ストレージの場所へのアクセスを許可します。
共有マテリアライズ資産へのアクセス問題
問題: 共有ビュー、具体化されたビュー、またはストリーミング テーブルに対するクエリで、エラー 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.
Possible の原因: 具体化されたデータの格納場所には、サーバーレス コンピューティングAzure Databricksアクセスできないネットワーク制限 (ファイアウォールやプライベート リンクなど) があります。 ビュー、具体化されたビュー、またはストリーミング テーブルを共有する場合、データはプロバイダー側で一時的に具体化されます。 具体化ストレージの場所は、資産の親スキーマまたはカタログストレージの場所です。
推奨される修正: データ プロバイダーは、ビューの依存テーブルの格納場所にアクセスするために、対応するリージョンのサーバーレス コンピューティング IP を許可する必要があります。 ファイアウォールを構成するには、「 サーバーレス コンピューティング アクセス用のファイアウォールの構成 (レガシ)」を参照してください。
データ資産が "存在しません" エラー
共有資産をクリックし、オブジェクトが "存在しません" というエラーが発生した場合、プロバイダー側の共有所有者が資産に対する十分なアクセス許可を持っていない可能性があります。 データ プロバイダーに問い合わせて、共有所有者がすべての共有資産に対して必要なアクセス許可を持っていることを確認するように依頼します。 共有所有者がデータ資産を共有するために必要なアクセス許可の詳細については、「 要件 」および「 共有への受信者のアクセス権を付与する」を参照してください。