SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL

SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL

복제된 파이프(pipe)가 복제(replication) 중에 알림 채널(notification channel)에 성공적으로 바인딩되지 않았을 때 알림 채널 바인딩 과정을 재시도하는 시스템 함수예요. 바인딩은 다음 이유 중 하나로 실패할 수 있어요:

  • 복제 중에 보조(secondary) 배포에서 클라우드 메시징이 올바르게 설정되지 않았어요. 예를 들어 같은 이름의 알림 통합(notification integration)이 수동으로 생성되지 않았거나, SNS 정책이 구독을 허용하도록 설정되지 않은 경우 등이에요.
  • Snowpipe가 파이프를 알림 채널에 바인딩하려고 할 때 클라우드 제공자 오류가 발생했어요.
  • 파이프와 그 원본 스테이지(source stage)가 서로 다른 복제 그룹에 있고, 파이프가 복제될 때 스테이지가 복제되지 않았어요.

복제 그룹이나 데이터베이스를 새로고침(refresh)해 알림 바인딩을 재시도할 수도 있어요. 하지만 기본(primary) 계정이 다운되었거나 페일오버(failover)가 이미 완료된 경우에는 이 시스템 함수를 호출하는 것이 유일한 방법이에요.

자세한 내용은 Snowpipe and Stage, pipe, and load history replication을 참고하세요.

출처: Snowflake SQL Reference

본문

Syntax

SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL( '<pipe_name>' )

Arguments

'pipe_name':

리바인드 알림(re-bind notification) 과정을 거쳐야 하는 파이프의 이름이에요.

Access control requirements

  • 파이프 소유자(즉 파이프에 대한 OWNERSHIP 권한이 있는 역할) 또는 파이프에 대한 OPERATE 권한이 있는 역할만 이 SQL 함수를 호출할 수 있어요. 스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한이 하나 이상, 상위 스키마에 대한 권한이 하나 이상 필요해요.

Usage notes

  • pipe_name은 문자열이므로 작은따옴표로 묶어야 해요. 이름이 정규화(fully qualified)된 경우 데이터베이스와 스키마를 포함한 전체 이름을 작은따옴표로 묶어야 해요, 즉 'db.schema.pipe_name'처럼요. 파이프 이름이 대소문자를 구분하거나 특수 문자·공백을 포함하면 대소문자/문자를 처리하기 위해 큰따옴표가 필요해요. 큰따옴표는 작은따옴표 안에 묶여야 해요, 즉 '"pipe_name"'처럼요.

Examples

mypipe의 알림 채널 바인딩 과정 재시도하기:

SELECT SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL('mydb.myschema.mypipe');

더 알아보기 (Learn more)