CREATE NOTIFICATION INTEGRATION¶
アカウントに新しい通知統合を作成するか、既存の統合を置き換えます。通知統合は、Snowflakeとサードパーティのメッセージサービス(サードパーティのクラウドメッセージキューサービス、メールサービスなど)間のインターフェイスを提供するSnowflakeオブジェクトです。
- こちらもご参照ください。
ALTER NOTIFICATION INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS
機能¶
通知の統合は、クラウドストレージサービスおよびメースサービスごとの次の機能に不可欠です。
- Amazon Web Services(AWS):
プッシュ通知:
メール通知:
- Google Cloud(GCP):
自動データロードまたはメタデータ更新:
プッシュ通知:
- Microsoft Azure(Azure):
自動データロードまたはメタデータ更新:
プッシュ通知:
構文¶
自動データロードまたはメタデータ更新
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
<name>
ENABLED = { TRUE | FALSE }
TYPE = QUEUE
cloudProviderParamsAuto
[ COMMENT = '<string_literal>' ]
条件:
cloudProviderParamsAuto (for Google Cloud Storage) ::= NOTIFICATION_PROVIDER = GCP_PUBSUB GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'cloudProviderParamsAuto (for Microsoft Azure Storage) ::= NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE AZURE_STORAGE_QUEUE_PRIMARY_URI = '<queue_URL>' AZURE_TENANT_ID = '<directory_ID>';
プッシュ通知
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
<name>
ENABLED = { TRUE | FALSE }
DIRECTION = OUTBOUND
TYPE = QUEUE
cloudProviderParamsPush
[ COMMENT = '<string_literal>' ]
条件:
cloudProviderParamsPush (for Amazon SNS) ::= NOTIFICATION_PROVIDER = AWS_SNS AWS_SNS_TOPIC_ARN = '<topic_arn>' AWS_SNS_ROLE_ARN = '<iam_role_arn>'cloudProviderParamsPush (for Google Pub/Sub) ::= NOTIFICATION_PROVIDER = GCP_PUBSUB GCP_PUBSUB_TOPIC_NAME = '<topic_id>'cloudProviderParamsPush (for Microsoft Azure Event Grid) ::= NOTIFICATION_PROVIDER = AZURE_EVENT_GRID AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>' AZURE_TENANT_ID = '<directory_ID>';
メール通知
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
<name>
TYPE = EMAIL
ENABLED = { TRUE | FALSE }
[ ALLOWED_RECIPIENTS = ( '<email_address_1>' [ , ... '<email_address_N>' ] ) ]
[ COMMENT = '<string_literal>' ]
必須パラメーター¶
name
統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
ENABLED = { TRUE | FALSE }
統合の操作を開始するか、中断するかを指定します。
TRUE
は、統合を有効にします。FALSE
は、メンテナンスのための統合を無効にします。Snowflakeとサードパーティサービス間の統合はいずれも機能しません。
TYPE = QUEUE | EMAIL
統合のタイプを指定します。
QUEUE
: Snowflakeとサードパーティのクラウドメッセージキューサービスの間のインターフェイスを作成します。EMAIL
: Snowflakeとサードパーティメールサービスの間のインターフェイスを作成します。特定のアカウントに対して最大10個のメール通知統合を定義できます。
オプションのパラメーター¶
DIRECTION = OUTBOUND
(
TYPE = QUEUE
を使用するプッシュ通知の場合)Snowflakeに関するクラウドメッセージングの方向。クラウドメッセージングサービスへのプッシュ通知を構成する場合にのみ必要です。OUTBOUND
: Snowflakeがクラウドメッセージングサービスに送信される通知を生成することを指定します。COMMENT = 'string_literal'
統合のコメントを指定する文字列(リテラル)。
デフォルト: 値なし
自動データロードまたはメタデータ更新のためのクラウドプロバイダーパラメーター(cloudProviderParamsAuto
)¶
Google Cloud Storage
NOTIFICATION_PROVIDER = GCP_PUBSUB
Google Cloud Pub/Subをサードパーティのクラウドメッセージキューサービスとして指定します。
GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>'
Snowflakeがイベントメッセージにアクセスできるようにするために使用される、Pub/Subトピックサブスクリプション ID。
注釈
単一の通知統合は、単一のGoogle Cloud Pub/Subサブスクリプションをサポートします。イベント通知は通知の統合間で分割されるため、複数の通知統合で同一のPub/Subサブスクリプションを参照すると、ターゲットテーブルのデータが失われる可能性があります。
Microsoft Azure Storage
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
Microsoft Azure Event Gridを、サードパーティクラウドメッセージキューサービスとして指定します。
AZURE_STORAGE_QUEUE_PRIMARY_URI = 'https://storage_queue_account.queue.core.windows.net/storage_queue_name'
Event Grid通知用に作成されたAzure Queue Storageキューのキュー ID を指定します。
注釈
単一の通知統合は、単一のAzure Storageキューをサポートします。イベント通知は通知の統合間で分割されるため、複数の通知統合で同一のストレージキューを参照すると、ターゲットテーブルのデータが失われる可能性があります。
AZURE_TENANT_ID = 'ad_directory_id'
ID管理に使用されるAzure Active Directoryテナントの ID を指定します。Event Grid通知サブスクリプションへのSnowflakeアクセスを許可する同意URLを生成するには、このIDが必要です。
プッシュ通知用のクラウドプロバイダーパラメーター(cloudProviderParamsPush
)¶
Amazon Simple Notification Service
NOTIFICATION_PROVIDER = AWS_SNS
サードパーティのクラウドメッセージキューサービスとしてAmazon Simple Notification Service(SNS)を指定します。
AWS_SNS_TOPIC_ARN = '<topic_arn>'
通知がプッシュされるAmazon SNS(SNS)トピックのAmazon Resource Name(ARN)。
AWS_SNS_ROLE_ARN = '<iam_role_arn>'
SNS トピックにエラーメッセージを公開する権限を持つ IAM ロールの ARN。
Google Pub/Sub
NOTIFICATION_PROVIDER = GCP_PUBSUB
Google Cloud Pub/Subをサードパーティのクラウドメッセージキューサービスとして指定します。
GCP_PUBSUB_TOPIC_NAME = '<topic_id>'
Snowpipeが通知をプッシュするPub/Subトピックの識別。
Microsoft Azure Event Grid
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
Microsoft Azure Event Gridを、サードパーティクラウドメッセージキューサービスとして指定します。
AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>'
Snowpipeが通知をプッシュするEvent Gridトピックエンドポイント。
AZURE_TENANT_ID = 'ad_directory_id'
ID管理に使用されるAzure Active DirectoryテナントのIDを指定します。Event GridトピックへのSnowflakeアクセスを許可する同意URLを生成するには、ディレクトリIDが必要です。
メール通知のパラメーター¶
ALLOWED_RECIPIENTS=('email_address_1' [, ... 'email_address_N'])
(
TYPE = EMAIL
の場合)この統合からの通知メールを受信できる、引用されたメールアドレスのコンマで区切られたリスト。現在のアカウントにあるユーザーのメールアドレスを指定する必要があります。これらのユーザーは、 メールアドレスを確認する 必要があります。
指定できるメールアドレスの最大数は50です。
このパラメーターを省略すると、現在のアカウントで検証されたメールアドレスにメール通知を送信できます。
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE INTEGRATION |
アカウント |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
複数のMicrosoft Azure StorageキューまたはGoogle Cloud Pub/Subサブスクリプションのために、単一の通知統合を作成することはサポートされていません。
別の通知統合と同じキュー URL を持つ通知統合を使用して新しいパイプを作成すると、パイプの作成は次のエラーで失敗します。
Notification queue already in use with another integration
。
自動データロードまたはメタデータ更新では、複数のインバウンド通知統合に同一のMicrosoft Azure StorageキューまたはGoogle Cloud Pub/Subサブスクリプションを使用することはサポートされていません。
プッシュ通知では、複数のパイプに同じアウトバウンド通知統合を使用することがサポートされています。
メタデータについて、
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
クラウドプロバイダーの政府リージョンでは、他の商用リージョンとの間でイベント通知を送受信することは許可されていません。詳細については、 AWSGovCloud (US) および Azure Government をご参照ください。
例¶
Snowflake機能固有の例については、 機能 (このトピック内)で参照されているトピックをご参照ください。