外部テーブルのトラブルシューティング

このトピックでは、外部テーブルの問題をトラブルシューティングする方法について説明します。

このトピックの内容:

自動メタデータ更新が無効になっている

外部テーブルの所有権(つまり、外部テーブルに対する OWNERSHIP 権限)が別のロールに譲渡された場合、外部テーブルの AUTO_REFRESH パラメーターはデフォルトで FALSE に設定されます。外部テーブルメタデータの自動更新を再度有効にするには、 ALTER EXTERNAL TABLE ステートメントを使用して AUTO_REFRESH パラメータを TRUE に設定します。

外部クラウドメッセージングサービスの構成済み設定がまだ正確であることを確認します。詳細については、クラウドストレージプロバイダーの手順をご参照ください。

自動メタデータ更新の進行状況の確認

外部テーブルによって使用される内部の非表示パイプの現在におけるステータスを取得して、メタデータを更新します。結果は JSON 形式で表示されます。詳細については、 SYSTEM$EXTERNAL_TABLE_PIPE_STATUS をご参照ください。

以下の値を確認します。

lastReceivedMessageTimestamp

メッセージキューから受信した、最後のイベントメッセージのタイムスタンプを指定します。

タイムスタンプが予想よりも早い場合は、クラウドイベント通知サービスの構成か、サービス自体に問題があることを示している可能性があります。フィールドが空の場合、サービス構成設定を確認します。フィールドにタイムスタンプが含まれているが、予想よりも早い場合、サービス構成で設定が変更されたかどうかを確認します。

lastForwardedMessageTimestamp

パイプに転送された最後のイベントメッセージのタイムスタンプを指定します。

Error: Integration {0} associated with the stage {1} cannot be found

外部テーブルをクエリすると、次のようなエラーが発生する場合があります。

003139=SQL compilation error:\nIntegration ''{0}'' associated with the stage ''{1}'' cannot be found.

このエラーは、外部ステージと、ステージにリンクされているストレージ統合との関連付けが壊れている場合に発生する可能性があります。これは、ストレージ統合オブジェクトが再作成されたときに発生します( CREATE OR REPLACE STORAGE INTEGRATION を使用)。ステージは、ストレージ統合の名前ではなく、非表示の ID を使用してストレージ統合にリンクします。バックグラウンドでは、 CREATE OR REPLACE 構文はオブジェクトをドロップし、別の非表示の IDでオブジェクトを再作成します。

1つ以上のステージにリンクされた後にストレージ統合を再作成する必要がある場合は、 ALTER STAGE ステージ名 SET STORAGE_INTEGRATION = ストレージ統合名 を実行して、各ステージとストレージ統合間の関連付けを再確立する必要があります。

  • ステージ名 は、ステージの名前です。

  • ストレージ統合名 は、ストレージ統合の名前です。