- 카테고리:
시스템 함수 (시스템 정보)
SYSTEM$PIPE_STATUS¶
파이프의 현재 상태에 대한 JSON 표현을 검색합니다.
자세한 내용은 Snowpipe 섹션을 참조하십시오.
구문¶
SYSTEM$PIPE_STATUS( '<pipe_name>' )
인자¶
pipe_name
현재 상태를 검색하려는 파이프입니다.
사용법 노트¶
파이프 소유자(즉, 파이프에 대한 OWNERSHIP 권한이 있는 역할) 또는 파이프에 대한 MONITOR 권한이 있는 역할에 대한 결과만 반환합니다.
pipe_name
은 문자열이므로 작은따옴표로 묶어야 합니다.데이터베이스와 스키마(이름이 정규화된 경우)를 포함하여 전체 이름을 작은따옴표로 묶어야 합니다(즉,
'<db>.<스키마>.<파이프_이름>'
).파이프 이름이 대/소문자를 구분하거나 특수 문자나 공백이 포함된 경우, 대/소문자를 처리하려면 큰따옴표가 필요합니다. 큰따옴표는 작은따옴표로 묶어야 합니다. 즉,
'"<파이프_이름>"'
이어야 합니다.
출력¶
이 함수는 다음 이름/값 쌍을 포함하는 JSON 오브젝트를 반환합니다(현재 파이프 상태에 적용 가능한 경우).
{“executionState”:”<값>”,”oldestPendingFilePath”:”<값>”,”oldestFileTimestamp”:<값>,”pendingFileCount”:<값>,”lastPipeErrorTimestamp”:”<값>”,”lastPipeFaultTimestamp”:”<값>”,”lastIngestedTimestamp”:”<값>”,”lastIngestedFilePath”:”<값>”,”notificationChannelName”:”<값>”,”numOutstandingMessagesOnChannel”:<값>,”lastReceivedMessageTimestamp”:”<값>”,”lastForwardedMessageTimestamp”:”<값>”,”error”:<값>,”fault”:<값>,”lastPulledFromChannelTimestamp”:”<값>”,”lastForwardedFilePath”:”<값>”}
여기서:
executionState
파이프의 현재 실행 상태입니다. 값은 다음 중 하나일 수 있습니다.
FAILING_OVER
(파이프가 기본 계정에서 보조 계정으로 장애 조치하는 중임)
PAUSED
READ_ONLY
(파이프 또는 대상 테이블이 보조 읽기 전용 데이터베이스에 있습니다.)
RUNNING
(모든 것이 정상으로, Snowflake는 이 파이프에 대한 파일을 적극적으로 처리하거나 처리하지 않을 수 있음)
STOPPED_BY_SNOWFLAKE_ADMIN
(파이프는 Snowflake 지원 에서 중지합니다. 파이프는 수집을 위해 새 파일을 허용하지 않습니다.)
STOPPED_CLONED
(파이프가 데이터베이스 또는 스키마 복제본에 포함됨)
STOPPED_FEATURE_DISABLED
STOPPED_STAGE_ALTERED
(기본 스테이지 위치가 변경되어 파이프가 중지됩니다.)
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
STALLED_STAGE_PERMISSION_ERROR
(외부 스테이지 권한 오류가 감지되었습니다.)oldestPendingFilePath
처리를 위해 현재 큐에 대기 중인 가장 오래된 데이터 파일의 경로입니다. 파일이 큐에 추가된 시점의 타임스탬프는 기존 oldestFileTimestamp 속성에 반환됩니다.
oldestFileTimestamp
현재 큐에 있는 데이터 파일 중 가장 빠른 타임스탬프(해당되는 경우)로, 파일이 큐에 추가될 때 타임스탬프가 설정됩니다.
pendingFileCount
파이프에서 로딩하기 위해 큐에 대기 중인 파일 수입니다.
파이프가 일시 중지된 경우에도 이 수는 증가할 수 있습니다. 파이프의
AUTO_INGEST
설정에 따라, 큐에 대기 중인 파일의 수가 다음과 같이 증가할 수 있습니다.
AUTO_INGEST = TRUE
클라우드 저장소 버킷 또는 컨테이너에 추가된 파일은 파이프에 대한 새 파일 이벤트 알림을 트리거합니다.
일시 중지된 파이프가 부실 상태가 되는 경우,
pendingFileCount
수는 제한된 보존 기간보다 오래된 이벤트 알림을 무시합니다.AUTO_INGEST = FALSE
파이프에서 로딩하기 위해 큐에 대기할
insertFiles
REST 엔드포인트 트리거 파일에 대한 호출입니다.lastPipeErrorTimestamp
마지막 실행을 위해 파이프 정의에서 COPY INTO <table> 문을 컴파일할 때 타임스탬프에서 오류가 발생했습니다.
lastPipeFaultTimestamp
내부 Snowflake 프로세스 오류가 마지막으로 감지된 타임스탬프입니다.
lastIngestedTimestamp
Snowpipe가 가장 최근 파일을 대상 테이블에 성공적으로 로딩한 시점의 타임스탬프입니다.
lastIngestedFilePath
lastIngestedTimestamp에 지정된 타임스탬프에 로딩된 파일의 경로입니다.
notificationChannelName
파이프와 연결된 Amazon SQS 큐 또는 Microsoft Azure 저장소 큐입니다.
numOutstandingMessagesOnChannel
큐에 있지만, 아직 수신되지 않은 큐의 메시지 수입니다.
lastReceivedMessageTimestamp
큐에서 받은 마지막 메시지의 타임스탬프입니다. 이 메시지는 특정 파이프에 적용되지 않을 수 있습니다(예: 메시지와 연결된 경로/접두사가 파이프 정의의 경로/접두사와 일치하지 않는 경우). 또한, 생성된 데이터 오브젝트에 의해 트리거된 메시지만 자동 수집 파이프에서 사용됩니다.
lastForwardedMessageTimestamp
파이프에 전달된 일치하는 경로/접두사가 포함된 마지막 “오브젝트 생성” 이벤트 메시지의 타임스탬프입니다.
channelErrorMessage
연결된 Google Cloud Pub/Sub 큐 또는 Microsoft Azure Event Grid 저장소 큐에서 메시지를 읽으려고 할 때 생성되는 오류 메시지입니다.
lastErrorRecordTimestamp
마지막 채널 오류 메시지의 타임스탬프입니다(즉,
channelErrorMessage
값에 보고된 오류 메시지).error
파이프가 실행을 위해 마지막으로 컴파일되었을 때 생성된 오류 메시지입니다(해당되는 경우). 권한 문제 또는 삭제된 오브젝트로 인해 필요 오브젝트(즉, 테이블, 스테이지, 파일 형식)에 액세스하는 데 문제가 발생하여 일어나는 경우가 많습니다.
fault
가장 최근의 내부 Snowflake 프로세스 오류입니다(해당되는 경우). 주로 Snowflake에서 디버깅 목적으로 사용됩니다.
lastPulledFromChannelTimestamp
Snowpipe가 Amazon Simple Queue Service(SQS) 큐, Google Pub/Sub 큐 또는 Microsoft Azure 저장소 큐에서 파이프에 대한 “오브젝트 생성” 이벤트 알림을 마지막으로 끌어온 시점의 타임스탬프입니다.
이 값은 자동 수집 Snowpipe 로딩에만 적용됩니다.
lastForwardedFilePath
파이프로 전달된 마지막 “오브젝트 생성” 이벤트 메시지에서 식별된 데이터 파일의 경로입니다.
예¶
대/소문자를 구분하지 않는 이름으로 파이프의 상태를 검색합니다.
SELECT SYSTEM$PIPE_STATUS('mydb.myschema.mypipe'); +---------------------------------------------------+ | SYSTEM$PIPE_STATUS('MYDB.MYSCHEMA.MYPIPE') | |---------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------+
대/소문자를 구분하는 이름으로 파이프의 상태를 검색합니다.
SELECT SYSTEM$PIPE_STATUS('mydb.myschema."myPipe"'); +---------------------------------------------------+ | SYSTEM$PIPE_STATUS('MYDB.MYSCHEMA."MYPIPE"') | |---------------------------------------------------| | {"executionState":"RUNNING","pendingFileCount":0} | +---------------------------------------------------+