Snowflakeで Snowflake Open Catalog を使用して Apache Iceberg™ テーブルを使用する際のトラブルシューティング¶
以下のシナリオは、Snowflakeで Snowflake Open Catalog を使用して Apache Iceberg™ テーブルを使用する際に発生する可能性のある問題のトラブルシューティングに役立ちます。
オープンカタログのカタログ統合が作成できない¶
このセクションでは、オープンカタログのカタログ統合を作成する際のトラブルシューティング方法について説明します。
トラブルシューティングを行うには、カタログ統合の作成に失敗したときに SQL 出力に表示されたエラーメッセージを特定します。
エラー |
|
|---|---|
原因 |
カタログ統合の |
解決策 |
重要
|
エラー |
|
|---|---|
原因 |
カタログ統合で指定した OAuth トークンが有効ではありません。 |
解決策 |
カタログ統合で |
Snowflake管理テーブルが作成できない¶
このセクションでは、Snowflake管理テーブルを作成する際のトラブルシューティング方法について説明します。
トラブルシューティングを行うには、テーブル作成に失敗したときに SQL 出力に表示されたエラーメッセージを特定します。
エラー |
|
|---|---|
原因 |
接続先の外部カタログのカタログロールには、オープンカタログに通知を送信するのに必要な権限がありません。 |
解決策 |
外部カタログのカタログロールに以下のすべての権限を付与して、カタログロールを更新します。
カタログロールをどこで更新するかは、そのロールが持つ付与がカタログレベル、名前空間レベル、またはテーブルレベルのどれに適用されるかに依存します。カタログロールに該当する手順を参照してください。 |
エラー |
|
|---|---|
原因 |
外部カタログの AWS IAM ユーザーは、S3へのアクセス権限を持つロールを引き受けることができません。 |
解決策 |
AWS のポリシードキュメントを修正して、Open Catalogアカウントの IAM ユーザーに、S3バケットへのアクセス権限を持つロールを引き受ける権限を許可します。ポリシードキュメントを変更するには、 AWS の IAM ロールを更新する必要があります。詳細については、 Snowflake Open Catalogアカウントの AWS IAM ユーザーを取得 を参照してから、 バケットオブジェクトへのアクセス許可を IAM ユーザーに付与 を参照してください。 ポリシードキュメントには、オープンカタログの外部ボリュームと外部カタログの両方について、 IAM ユーザー ARN と外部 ID を含める必要があることに注意してください。以下のポリシードキュメントの例では、以下の値に注意してください。
|
エラー |
|
|---|---|
原因 |
Snowflakeで管理されたテーブルをオープンカタログの内部カタログに同期しようとしています。Snowflake管理テーブルは、オープンカタログの外部カタログにのみ同期できます。 |
解決策 |
既存の内部カタログを外部カタログに更新することはできないので、新しい外部カタログを作成する必要があります。
|
エラー |
|
|---|---|
原因 |
作成したいテーブルのメタデータファイルへのパスが、外部クラウドプロバイダーの許可された場所のリストに含まれていません。その結果、オープンカタログはそのテーブルのメタデータファイルにアクセスできません。 |
解決策 |
メタデータファイルの場所が、サービス管理者がオープンカタログで作成したカタログのデフォルトの基本場所のファイルパスの下にあるか、または該当する場合は追加の許可された場所のいずれかにあることを確認します。許可された場所のリストについては、オープンカタログでカタログを選択し、 場所 フィールドを参照してください。 |
CATALOG_SYNC パラメーターを指定した際、Icebergテーブルを変更することができない¶
このセクションでは、 CATALOG_SYNC パラメーターを変更した場合のトラブルシューティング方法について説明します。
トラブルシューティングを行うには、テーブル変更に失敗したときに SQL 出力に表示されたエラーメッセージを特定します。
エラー |
|
|---|---|
原因 |
接続先の外部カタログのカタログロールには、オープンカタログに通知を送信するのに必要な権限がありません。 |
解決策 |
外部カタログのカタログ・ロールに以下の権限をすべて付与します。
カタログロールをどこで更新するかは、そのロールの付与がカタログレベル、名前空間レベル、またはテーブルレベルのどれに適用されるかに依存します。カタログロールに該当する手順を参照してください。 |
エラー |
|
|---|---|
原因 |
外部カタログの AWS IAM ユーザーには、S3バケットオブジェクトにアクセスする権限がありません。 |
解決策 |
AWS のポリシードキュメントを変更して、オープンカタログアカウントの IAM ユーザーがS3バケットのオブジェクトにアクセスできるようにします。ポリシードキュメントを変更するには、 AWS の IAM ロールを更新する必要があります。詳細については、 Polaris Open Catalogアカウントの AWS IAM ユーザーを取得 を参照してから、 バケットオブジェクトへのアクセス許可を IAM ユーザーに付与 を参照してください。 ポリシードキュメントには、オープンカタログの外部ボリュームと外部カタログの両方について、 IAM ユーザー ARN と外部 ID を含める必要があることに注意してください。以下のポリシードキュメントの例では、以下の値に注意してください。
|
エラー |
|
|---|---|
原因 |
Snowflakeで管理されているIcebergテーブルをオープンカタログの内部カタログのカタログ統合に同期しようとしています。Snowflakeで管理されているIcebergテーブルを外部カタログに同期できるのは、オープンカタログのみです。 |
解決策 |
既存の内部カタログを外部カタログに更新することはできないので、新しい外部カタログを作成する必要があります。
|
エラー |
|
|---|---|
原因 |
作成したいテーブルのメタデータファイルへのパスが、外部クラウドプロバイダーの許可された場所のリストに含まれていません。その結果、オープンカタログはそのテーブルのメタデータファイルにアクセスできません。 |
解決策 |
メタデータファイルの場所が、サービス管理者がオープンカタログで作成したカタログのデフォルトの基本場所のファイルパスの下にあるか、または該当する場合は追加の許可された場所のいずれかにあることを確認します。許可された場所のリストについては、オープンカタログでカタログを選択し、 Locations フィールドを参照してください。 |