- 카테고리:
시스템 함수 (시스템 제어)
SYSTEM$SEND_NOTIFICATIONS_TO_CATALOG¶
Open Catalog 에서 Snowflake가 관리하는 Apache Iceberg™ 테이블 을 최신 테이블 변경 사항으로 업데이트하라는 알림을 Snowflake Open Catalog 에 보내고, 오류 코드와 실패에 대한 오류 메시지(해당되는 경우)와 함께 알림이 성공적으로 전송되었는지 여부를 반환합니다.
알림은 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'))));
my_catalog_sync_integration
카탈로그 통합을 통해 Open Catalog 와 동기화되고 icebergTable
로 명명된 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'))));