Snowflake Data Clean Rooms のトラブルシューティング

このページは、クリーンルームを使用する際の一般的なトラブルシューティングガイドです。API を使用している場合、呼び出すプロシージャの参照ドキュメントと、ユースケースガイドラインを必ず読んで、問題がそこに含まれているかどうかを確認してください。

開発者の方は、追加情報については 開発者トラブルシューティングガイドライン をご参照ください。

インストールの問題

分析とテンプレートの問題

エラー:

ビュー所有者としての共有ビュー <CLEAN ROOM VIEW NAME> の拡張中の失敗:アプリケーション SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID> が共有する外部/Icebergテーブル <TABLE_NAME> を解決する権限が不足しています

原因:

外部テーブルまたはIcebergテーブルにアクセスしようとしていますが、外部テーブルとIcebergテーブルがプロバイダーとコンシューマーの両方のアカウントで有効になっていません。

解決策:

プロバイダーとコンシューマーの両方のアカウントで 外部テーブルとIcebergテーブルが有効化されている ことを確認してください。


 

エラー:

SQL コンパイルエラー:ビュー所有者としての共有ビュー「 <CLEAN ROOM VIEW NAME> 」の拡張中の失敗:オブジェクト「 <some object name> 」は存在しないか、許可されていません。

原因:

クリーンルームの付与は、アクセスしようとしているデータセットに存在しなくなりました。ソースオブジェクトの名前が変更されたか、置き換えられたことが原因と考えられます。

解決策:
  • テーブルの名前が変更された場合は、名前をクリーンルームでリンクされているものに戻します。オブジェクトも再登録する必要がある場合があります。

  • テーブルが再作成された場合は、クリーンルームでオブジェクトを再度登録します。


 

エラー:

クエリの結果がゼロで、それは間違っていると思われる場合。

考えられる原因とソリューション:
  • どちらの側にも、データの結合や表示を妨げる​​可能性のあるデータのマスキングポリシーがないことを確認します。

  • 結合列が同じ方法でフォーマットされていることを確認します。

  • 固定のしきい値設定を下回っていないことを確認します。オーディエンス重複のデフォルトのしきい値は5です。つまり、5行未満は結果から省略されます。プロバイダーにしきい値を確認し、その数を超える重複があるかどうかを確認します。大規模なセグメントグループを保証するため、一時的に重複仕様を変更して、その後に結果が得られるかどうかを確認します。


 

エラー:

Uncaught exception of type 'STATEMENT_ERROR' ... SQL compilation error: invalid URL prefix found ...

原因:

テンプレートは、列名またはテーブル名に、識別子ではなく文字列値を使用します。これは、テンプレートが sqlsafe フィルターまたは IDENTIFIER 関数のいずれかを使用して文字列変数を識別子に適切に変換しない場合に発生します。

たとえば、p.col1 から my_column をテンプレート SELECT {{ my_column }} ... に渡すと、SELECT "p.col1" ... に解決されます。「p.col1」は文字列であり、有効な識別子ではありません(また、p. は URL プレフィックスとして解釈されます)。

解決策:

変数に IDENTIFIER 関数(推奨)または sqlsafe フィルターのいずれかを適用します。

  • SELECT IDENTIFIER({{ my_column }}) ... (推奨)

  • SELECT {{ my_column | sqlsafe }} ...


 

エラー:

**FAILURE**: Unauthorized columns: column_name

原因:

クエリは、クリーンルームのコラボレーターの利用ポリシーに含まれないコラボレーターデータの列を使用します。たとえば、列ポリシーに含まれていないコラボレーターデータの列を SELECT しようとしています。

解決策:

クエリでは、コラボレーターが投影、結合、またはアクティブ化を承認した列を使用します。consumer.view_template_definition を呼び出してテンプレートのポリシーフィルターを調べ、次に consumer.view_provider_join_policy または consumer.view_provider_column_policy を呼び出して、プロバイダーが投影または結合を許可している列を確認します。最後に、承認された列を渡すようにクエリを更新するか、コラボレーターに使用ポリシーを調整して使用する列を含めるように依頼します。


 

エラー:

**FAILURE**: Invalid aliases: P.column name' または **FAILURE**: Invalid aliases: C.column name'

原因:

列名のスコープを指定するために、大文字の P または C のテーブルエイリアスを使用しています。列名のスコープを指定するときは、小文字の p または c のエイリアスを使用する必要があります。(テンプレート自体は、エイリアスを 宣言 するときに大文字または小文字のどちらでも使用できます。)

解決策:

列をスコープするときは、常に小文字のエイリアスを使用します。

例:

-- Always scope the column name with a lowercase alias.
-- The casing of the alias declared for the table doesn't matter.

-- These will fail.
SELECT P.hashed_email FROM mydb.mysch.t1 AS P;
SELECT P.hashed_email FROM mydb.mysch.t1 AS p;

-- These will succeed.
SELECT p.hashed_email FROM mydb.mysch.t1 AS P;
SELECT p.hashed_email FROM mydb.mysch.t1 AS p;
Copy

 

エラー:

**FAILURE**: Invalid aliases: database name.schema name.column name

原因:

テーブルに対して宣言された p または c エイリアスを使用して、常に列を参照する必要があります。列はそのフルパスでテーブルを参照できません。

無効: SELECT hashed_email FROM mydb.mysch.t1;

解決策:

列を参照するときは、p または ``c``(必ず小文字にします)のテーブルエイリアスを使用します。

有効: SELECT p.hashed_email FROM mydb.mysch.t1 AS p;

クロスクラウドの問題

エラー:

単一アカウントのテストクリーンルームでの Analysis Execution Failure: 'SnowparkSQLException' due to Database Listing Conflict

原因:

クロスクラウドの自動フルフィルメントは単一アカウントのテストクリーンルームではサポートされていません。

解決策:

テスト中に library.disable_laf_on_account を呼び出して、このクリーンルームアカウントでのクロスクラウドの自動フルフィルメントを無効にするか、このクリーンルームでクロスクラウドのプロシージャ呼び出しを行わないようにしてください。

クラウドデータコネクタの問題

AWS 、Azure、またはGoogle Cloud Storage用の外部データコネクタで問題が発生している場合は、 Snowflake Data Clean Rooms: 外部データコネクタのトラブルシューティング をご参照ください。

リクエストログの問題

エラー:

**Failure**: Request logs unable to be mounted. Try again.

原因:

マウントリクエストログは内部クリーンルームでは成功しましたが、同じアカウントの外部クリーンルームでは失敗しました。内部クリーンルームは、外部クリーンルームよりも要件が少なくなっています。インストールは、内部クリーンルームの使用要件を満たしていましたが、外部クリーンルームの使用要件を満たしていませんでした。

解決策:

メールがクリーンルームによって検証され、すべての クリーンルームのアカウント要件 を満たしていることを確認してください。

データアクセスの問題

データアクセスの問題に関する一般的なガイドライン

使用フローのいくつかの時点で、データソースにアクセスできないことを報告するエラーメッセージが表示される場合があります。

登録プロセス中にエラーが発生した場合:

  • API を使用している場合、テーブル名またはパスのスペルが間違っています。

  • これが外部テーブルまたはIcebergテーブルの場合、外部テーブルまたはIcebergテーブルを登録するための 要件と手順 を満たしていることを確認します。

  • 現在のロールに、登録されるオブジェクトに対する OWNERSHIP 権限があることを確認します。

リンクプロセス中にエラーが発生した場合:

  • API 内で間違ったロールを使用している可能性があります。

  • オブジェクトが登録されていない可能性があります。API 内で登録されていないオブジェクトをリンクしようとすると、エラーが表示されます。UI 内では、リンク可能として登録されたオブジェクトのみが表示されます。

  • SAMOOHA_APP_ROLE に、オブジェクトに対する USAGE および SELECT 権限があることを確認します。

  • 登録後にテーブルが移動されたか、名前が変更されたか、権限(またはSnowflakeポリシー権限)が変更された可能性があります。これが発生した場合、次のエラーも表示される可能性があります。SQL アクセス制御エラー:テーブルを操作するための権限が不足しています...

データが正常に登録され、リンクされた後にエラーが発生した場合:

API を使用している場合、完全修飾テーブル名のスペルが正しいことを確認します。

データアクセスエラー

エラー:

オブジェクト「 <some_object_name> 」は存在しないか、許可されていません

原因:

ソーステーブルは移動されているか、名前が変更されているか、権限(または、それが依存するポリシーまたは祖先オブジェクトに対する権限)が変更されている可能性があります。

解決策:

アカウント内のオブジェクトを再登録して再リンクするか、オブジェクトを元の場所に移動するか、追加された権限を元に戻してみてください。


 

エラー:

外部/Icebergテーブルを解決する権限が不足しています

原因:

クエリに外部テーブルまたはIcebergテーブルが含まれている場合、テーブルは正しく登録されませんでした。

解決策:

これらのテーブル型を使用するための要件と手順を満たしていることを確認するには、 外部テーブルと Apache Iceberg™ テーブルの有効化 をご参照ください。テーブルに対する SELECT を SAMOOHA_BY_SNOWFLAKE に明示的に付与すると解決できる場合があります。


 

エラー:

実行分析の結果としての 未承認: 許可されていない列が使用されている エラー

原因:

コラボレーターの結合または列ポリシーに対して、コラボレーターの列を結合または投影します。

解決策:

consumer.view_provider_column_policy および consumer.view_provider_join_policy を呼び出して、コラボレーターが設定した結合および列ポリシーを表示します。

CALL samooha_by_snowflake_local_db.consumer.view_provider_join_policy($cleanroom_name);
CALL samooha_by_snowflake_local_db.consumer.view_provider_column_policy($cleanroom_name);
Copy

プライバシー予算も使い果たした可能性があります。

CALL samooha_by_snowflake_local_db.consumer.view_remaining_privacy_budget($cleanroom_name);
Copy

 

エラー:

コンシューマーがクリーンルーム名を受け取り、Application 'SAMOOHA_CLEANROOM_APP<some name>' does not exist or not authorized. というプロシージャを呼び出す場合

原因:

クリーン ルーム名が SAMOOHA_CLEANROOM_APP_<cleanroom name> ではなく SAMOOHA_CLEANROOM_APP<cleanroom name> として報告されている場合(SAMOOHA_CLEANROOM_APP の後のアンダースコアがない場合)、プロバイダー が自分のアカウントにクリーンルーム環境を正しくインストールしていません。

解決策:

プロバイダーに、この手順(Snowflake Data Clean Rooms 環境のインストール)に従ってクリーンルーム環境をインストールする必要があることを伝えてください。それにより、プロバイダーはクリーンルームの再作成と共有が可能になります。

外部テーブルとIcebergテーブルの問題

エラー:

ビュー所有者としての共有ビュー <CLEAN ROOM VIEW NAME> の拡張中の失敗:アプリケーション SAMOOHA_CLEANROOM_APP_<CLEAN ROOM ID> が共有する外部/Icebergテーブル <TABLE_NAME> を解決する権限が不足しています

原因:

外部テーブルまたはIcebergテーブルは、プロバイダーアカウントとコンシューマーアカウントの両方で有効になっていません。

解決策:

プロバイダーとコンシューマーの両方のアカウントで 外部テーブルとIcebergテーブルが有効化されている ことを確認してください。


 

エラー:

コンシューマーは外部テーブルまたはIcebergテーブルにリンクするときに、 無効な制限機能「external_data」 を取得します。

原因:

プロバイダーは外部テーブルとIcebergテーブルをまだ有効にしていません。

解決策:

プロバイダーは アカウントの外部テーブルとIcebergテーブルを有効にする プロセスを完了する必要があります。これをコードで行う場合、プロバイダーはセキュリティスキャン結果をチェックし、成功した場合はデフォルトのリリースバージョンを更新する必要があります。


 

エラー:

外部テーブルまたはIcebergテーブルを含む分析を実行する際に、 外部/Icebergテーブルを解決するための権限が不足している エラーが発生します。

原因:

テーブルはプロバイダーとコンシューマーの両方によって適切に登録されなかった可能性があります。

解決策:

外部テーブルおよびIcebergテーブルの登録情報を読み、 プロバイダー側とコンシューマー側の両方ですべての指示に従ってください。