カテゴリ:

ユーザーとセキュリティ DDL (サードパーティのサービス統合)

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_EVENT_GRID
  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>';

必須パラメーター

name

統合の識別子(つまり、名前)を指定する文字列。アカウント内で一意である必要があります。

また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

ENABLED = TRUE | FALSE

統合の操作を開始するか、中断するかを指定します。

  • TRUE は、統合を有効にします。

  • FALSE は、メンテナンスのための統合を無効にします。Snowflakeとサードパーティサービスの統合はいずれも機能しません。

TYPE = QUEUE

統合のタイプを指定します。

  • QUEUE: Snowflakeとサードパーティのクラウドメッセージキューサービスの間のインターフェイスを作成します。

オプションのパラメーター

DIRECTION = OUTBOUND

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が必要です。

アクセス制御の要件

この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

CREATE INTEGRATION

アカウント

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 Snowflakeのアクセス制御 をご参照ください。

使用上の注意

  • 複数のMicrosoft Azure StorageキューまたはGoogle Cloud Pub/Subサブスクリプションのために、単一の通知統合を作成することはサポートされていません。

  • 複数の通知統合に同一のMicrosoft Azure StorageキューまたはGoogle Cloud Pub/Subサブスクリプションを使用することはサポートされていません。

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

  • CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、古いオブジェクトの削除と新しいオブジェクトの作成が1つのトランザクションで処理されます。

Snowflake機能固有の例については、 機能 (このトピック内)で参照されているトピックをご参照ください。

最上部に戻る