Amazon SNS のSnowpipeエラー通知の有効化¶
このトピックでは、Snowpipeエラー通知を Amazon Simple Notification Service (SNS)サービスにプッシュする手順について説明します。SNS は、パブリッシュ/サブスクライブメッセージングサービスです。
この機能は、次に挙げる型のロードのエラー通知をプッシュできます。
自動インジェストSnowpipe。
Snowpipe
insertFilesREST API エンドポイントへの呼び出し。Kafka用Snowflakeコネクタを使用したApache KafkaとSnowpipeインジェスチョンメソッド併用のロード限定。
クラウドプラットフォームのサポート¶
現在この機能は、Amazon Web Services(AWS)でホストされているSnowflakeアカウントに限定されています。Snowpipeは、サポートされているクラウドストレージサービスのファイルからデータを読み込むことができます。ただし、SNSへのプッシュ通知は、AWSでホストされているSnowflakeアカウントでのみサポートされます。
メモ¶
この機能は、通知統合オブジェクトを使用して実装されます。通知統合は、Snowflakeとサードパーティのクラウドメッセージキューサービス間のインターフェイスを提供するSnowflakeオブジェクトです。単一の通知統合で複数のパイプをサポートできます。
Snowflakeは、エラー通知のメッセージ配信が最低1回あることを保証します(つまり、最低1回の試行が成功することを保証するためにメッセージ配信が複数回試行されることにより、メッセージが重複する可能性があります)。
エラー通知の有効化¶
通知統合の作成¶
Amazon SNSトピックに通知を送信する通知統合の作成 をご参照ください。
パイプでエラー通知を有効にする¶
単一の通知統合は、複数のパイプで共有できます。エラーメッセージの本文は、パイプ、外部ステージとパス、およびエラーが発生したファイルなどの詳細を識別します。
パイプのエラー通知を有効にするには、 ERROR_INTEGRATION パラメーター値を指定します。
注釈
通知統合を参照するパイプを作成または変更するには、通知統合に対する USAGE 権限を持つロールが必要です。さらに、ロールには、スキーマに対する CREATE PIPE 権限、またはパイプに対する OWNERSHIP 権限のいずれかが必要です。
スキーマ内のオブジェクトを操作するには、親データベースの少なくとも1つの権限と、親スキーマの少なくとも1つの権限が必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
新しいパイプ¶
CREATE PIPE を使用して新しいパイプを作成します。自動データロードの構成(つまり、自動インジェストSnowpipe)には、追加のパイプパラメーターが必要であることに注意してください。手順については、 Automate continuous data loading with cloud messaging をご参照ください。
条件:
ERROR_INTEGRATION = <統合名>通知統合を作成する で作成した通知統合の名前。
次の例は、エラー通知と自動データロードの両方をサポートする CREATE PIPE ステートメントを示しています。
既存のパイプ¶
ALTER PIPE を使用して既存のパイプを変更します。
<integration_name> は、 通知統合を作成する で作成した通知統合の名前です。
例:
エラー通知のメッセージペイロード¶
エラーメッセージの本文は、パイプとロード中に発生したエラーを識別します。
以下は、Snowpipeエラーを説明するサンプルのメッセージペイロードです。ペイロードには、1つ以上のエラーメッセージを含めることができます。
ペイロードの値を処理するには、文字列を JSON オブジェクトに解析する必要があることに注意してください。