- 카테고리:
시스템 함수 (시스템 정보)
SYSTEM$EXTERNAL_TABLE_PIPE_STATUS¶
외부 테이블과 연결된 내부(숨겨진) 파이프 오브젝트에 대한 현재 새로 고침 상태의 JSON 표현을 검색합니다.
외부 테이블에 대한 메타데이터 자동 새로 고침은 Snowpipe에 내부적으로 의존하며, 이 Snowpipe는 모니터링되는 클라우드 저장소에서 변경 사항이 발생할 때 이벤트 알림을 수신합니다. 자세한 내용은 외부 테이블 소개 섹션을 참조하십시오.
구문¶
SYSTEM$EXTERNAL_TABLE_PIPE_STATUS( '<external_table_name>' )
인자¶
external_table_name
현재 자동 새로 고침 상태를 검색하려는 외부 테이블입니다.
사용법 노트¶
이 함수는 외부 테이블 소유자(즉, 외부 테이블에 대한 OWNERSHIP 권한이 있는 역할)에 대한 결과만 반환합니다.
external_table_name
은 문자열이므로 작은따옴표로 묶어야 합니다.데이터베이스와 스키마(이름이 정규화된 경우)를 포함하여 전체 이름을 작은따옴표로 묶어야 합니다. 즉,
'<db>.<스키마>.<외부_테이블_이름>'
이어야 합니다.외부 테이블 이름이 대/소문자를 구분하거나 특수 문자나 공백이 포함된 경우, 대/소문자를 처리하려면 큰따옴표가 필요합니다. 큰따옴표는 작은따옴표로 묶어야 합니다. 즉,
'"<파이프_이름>"'
이어야 합니다.
출력¶
이 함수는 다음 이름/값 쌍을 포함하는 JSON 오브젝트를 반환합니다(현재 파이프 상태에 적용 가능한 경우).
{“executionState”:”<값>”,”oldestPendingFilePath”:”<값>”,”oldestFileTimestamp”:<값>,”pendingFileCount”:<값>,”lastPipeFaultTimestamp”:”<값>”,”notificationChannelName”:”<값>”,”numOutstandingMessagesOnChannel”:<값>,”lastReceivedMessageTimestamp”:”<값>”,”lastForwardedMessageTimestamp”:”<값>”,”error”:<값>,”fault”:<값>,”lastPulledFromChannelTimestamp”:”<값>”,”lastForwardedFilePath”:”<값>”}
여기서:
executionState
파이프의 현재 실행 상태입니다. 값은 다음 중 하나일 수 있습니다.
RUNNING
(즉, 모든 것이 정상으로, Snowflake는 이 파이프에 대한 이벤트 메시지를 적극적으로 처리하거나 처리하지 않을 수 있음)
STOPPED_CLONED
(즉, 파이프가 데이터베이스 또는 스키마 복제본에 포함됨)
STOPPED_FEATURE_DISABLED
STOPPED_STAGE_DROPPED
STOPPED_FILE_FORMAT_DROPPED
STOPPED_NOTIFICATION_INTEGRATION_DROPPED
STOPPED_MISSING_PIPE
STOPPED_MISSING_TABLE
(파이프 정의에 정의된 대상 테이블이 삭제됨)
STALLED_COMPILATION_ERROR
STALLED_INITIALIZATION_ERROR
STALLED_EXECUTION_ERROR
STALLED_INTERNAL_ERROR
PAUSED
PAUSED_BY_SNOWFLAKE_ADMIN
PAUSED_BY_ACCOUNT_ADMIN
oldestPendingFilePath
메타데이터 새로 고침 작업을 위해 현재 큐에 대기 중인 가장 오래된 데이터 파일의 경로입니다. 파일이 큐에 추가된 시점의 타임스탬프는
oldestFileTimestamp
속성에 반환됩니다.oldestFileTimestamp
메타데이터 새로 고침 작업을 위해 현재 큐에 있는 데이터 파일 중 가장 빠른 타임스탬프(해당되는 경우)로, 파일이 큐에 추가될 때 타임스탬프가 설정됩니다.
pendingFileCount
파이프에서 현재 처리 중인 파일의 수입니다. 외부 테이블 메타데이터를 새로 고치면 이 값이 감소합니다. 이 값이
0
인 경우, 이 파이프에 대해 큐에 있는 메타데이터 새로 고침이 없습니다.lastPipeFaultTimestamp
내부 Snowflake 프로세스 오류가 마지막으로 감지된 타임스탬프입니다.
notificationChannelName
파이프와 연결된 Amazon SQS 큐 또는 Microsoft Azure 저장소 큐입니다.
numOutstandingMessagesOnChannel
큐에 있지만, 아직 수신되지 않은 큐의 메시지 수입니다.
lastReceivedMessageTimestamp
큐에서 받은 마지막 메시지의 타임스탬프입니다.
lastForwardedMessageTimestamp
파이프에 전달된 일치하는 경로/접두사가 포함된 적용 가능한 마지막 이벤트 메시지의 타임스탬프입니다.
channelErrorMessage
연결된 클라우드 메시징 서비스 큐에서 메시지를 읽으려고 할 때 생성되는 오류 메시지입니다.
lastErrorRecordTimestamp
마지막 채널 오류 메시지의 타임스탬프입니다(즉,
channelErrorMessage
값에 보고된 오류 메시지).error
파이프가 실행을 위해 마지막으로 컴파일되었을 때 생성된 오류 메시지입니다(해당되는 경우). 권한 문제 또는 삭제된 오브젝트로 인해 필요 오브젝트(즉, 테이블, 스테이지, 파일 형식)에 액세스하는 데 문제가 발생하여 일어나는 경우가 많습니다.
fault
가장 최근의 내부 Snowflake 프로세스 오류입니다(해당되는 경우). 주로 Snowflake에서 디버깅 목적으로 사용됩니다.
lastPulledFromChannelTimestamp
Snowpipe가 클라우드 메시징 서비스 큐에서 파이프에 대해 마지막으로 이벤트 알림을 끌어온 때의 타임스탬프입니다.
lastForwardedFilePath
파이프로 전달된 적용 가능한 마지막 이벤트 메시지에서 식별된 데이터 파일의 경로입니다.
예¶
대/소문자를 구분하지 않는 이름으로 외부 테이블의 자동 새로 고침 상태를 검색합니다.
SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema.exttable'); +---------------------------------------------------------------+ | SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA.EXTTABLE') | |---------------------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------------------+
대/소문자를 구분하는 이름으로 파이프의 상태를 검색합니다.
SELECT SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('mydb.myschema."extTable"'); +---------------------------------------------------------------+ | SYSTEM$EXTERNAL_TABLE_PIPE_STATUS('MYDB.MYSCHEMA."extTable"') | |---------------------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------------------+