- カテゴリ:
システム関数 (システム制御)
SYSTEM$SEND_NOTIFICATIONS_TO_CATALOG¶
Snowflakeオープンカタログ に通知を送信して、 Open Catalog のSnowflake管理の Apache Iceberg™ テーブル を最新のテーブル変更で更新し、通知が正常に送信されたかどうかを、失敗した場合はエラーコードとエラーメッセージとともに返します。
通知は、 Open Catalog に同期されているSnowflake管理のIcebergテーブルを、最新のテーブル変更で更新し続けるためのメカニズムです。テーブルが Open Catalog に同期されると、通知が継続的に送信されます。しかし、テーブルに通知が送信されない場合は、この関数を呼び出し、それが返すエラーメッセージを使って同期失敗の原因を診断することができます。
構文¶
SYSTEM$SEND_NOTIFICATIONS_TO_CATALOG( '<domain>' , '<entity_name>' [ , '<notification_type>'] [ , '<catalog_sync_integration_name>'] )
引数¶
必須:
domain
通知を送信するドメイン。次のいずれかのドメインを指定できます。
DATABASE
SCHEMA
TABLE
例えば、特定のスキーマにあるテーブルに通知を送信したい場合は、
SCHEMA
を指定します。entity_name
指定した
domain
のエンティティの名前。指定したドメインによって、entity_name
はデータベース、スキーマ、テーブルの名前を指定します。
オプション:
notification_type
Open Catalog に送信する通知のタイプ。次のいずれかの型を指定できます。
UPDATE
: Open Catalog のテーブルの状態を更新します。テーブルがまだ存在しない場合は、 Open Catalog はテーブルを作成します。DROP
: テーブルが存在する場合、 Open Catalog からそのテーブルを削除します。
デフォルト:
UPDATE
catalog_sync_integration_name
通知をスコープしたい Open Catalog のカタログ統合の名前。テーブルの
CATALOG_SYNC
パラメーターがこのカタログ統合に設定されている場合にのみ、指定したテーブルに通知が送信されます。重要
catalog_sync_integration_name
に値を指定する必要がある場合、notification_type
を空のままにしてデフォルト値を使用することはできません。言い換えると、デフォルトを使用するのではなくcatalog_sync_integration_name
に値を指定する必要がある場合、まずnotification_type
にUPDATE
またはDROP
を指定する必要があります。デフォルト: 引数が指定されていない場合、カタログ同期統合に関係なく、必要な引数で指定されたドメイン内のすべてのテーブルに通知が送信されます。例えば、
domain
にSCHEMA
を、entity_name
にschema1
を指定し、catalog_sync_integration_name
にデフォルトを使用した場合、schema1
以下のすべてのテーブルに通知されます。この引数は、通知の範囲を単一のカタログ同期統合に限定するために使用されます。
戻り値¶
この関数は、以下に説明するプロパティを持つ JSON オブジェクトを返します。
プロパティ |
説明 |
---|---|
TABLENAME |
通知が送信されたテーブル名。完全修飾テーブル名(Database.Schema.Table)として表示されます。 |
NOTIFICATIONSTATUS |
通知のステータス。通知が Open Catalog に正常に送信された場合は |
ERRORCODE |
通知送信失敗のエラーコード。通知が正常に送信された場合、このフィールドは空です。 |
ERRORMESSAGE |
通知が失敗した理由を説明するエラーメッセージ。通知が正常に送信された場合、このフィールドは空です。 |
使用上の注意¶
domain
、 entity_name
、 notification_type
、および catalog_sync_integration_name
はすべて文字列データ型であるため、それぞれ一重引用符で囲む必要があります。
例¶
Snowflake内の testSchema
スキーマの下にあり、 Open Catalog に同期されている Open Catalog のSnowflake管理Icebergテーブルに、 UPDATE
通知を送信します。
SELECT VALUE[0]::STRING AS tableName,
VALUE[1]::BOOLEAN notificationStatus,
VALUE[2]::STRING errorCode,
VALUE[3]::STRING errorMessage
FROM TABLE(FLATTEN(PARSE_JSON(
SELECT SYSTEM$SEND_NOTIFICATIONS_TO_CATALOG(
'SCHEMA',
'testSchema'))));
icebergTable
という名前で、 my_catalog_sync_integration
カタログ統合を通じて Open Catalog に同期されている Open Catalog のSnowflake管理Icebergテーブルに DROP
通知を送信します。
SELECT VALUE[0]::STRING AS tableName,
VALUE[1]::BOOLEAN notificationStatus,
VALUE[2]::STRING errorCode,
VALUE[3]::STRING errorMessage
FROM TABLE(FLATTEN(PARSE_JSON(
SELECT SYSTEM$SEND_NOTIFICATIONS_TO_CATALOG(
'TABLE',
'icebergTable',
'DROP',
'my_catalog_sync_integration'))));