<service_name>!SPCS_GET_LOGS¶
Snowflake가 지정된 서비스의 컨테이너에서 수집한 로그를 반환합니다. 자세한 내용은 컨테이너 로그 게시 및 액세스하기 섹션을 참조하십시오.
- 참고 항목:
구문¶
<service_name>!SPCS_GET_LOGS(
[ START_TIME => <constant_expr> ],
[ END_TIME => <constant_expr> ] )
인자¶
START_TIME => constant_expr로그를 검색할 시간 범위의 시작 시간(TIMESTAMP_LTZ 형식)입니다. 데이터, 시간 및 타임스탬프 데이터를 구성하는 데 사용할 수 있는 함수에 대해서는 날짜 및 시간 함수 섹션을 참조하세요.
START_TIME이 지정되지 않은 경우, 기본값은 1일 전입니다.END_TIME => constant_expr로그를 검색할 시간 범위의 종료 시간(TIMESTAMP_LTZ 형식)입니다.
END_TIME이 지정되지 않은 경우, 기본값은 현재 타임스탬프입니다.
출력¶
출력의 각 행은 이벤트 테이블에 기록된 하나의 이벤트에 해당합니다. 서비스가 stdout 또는 stderr 에 출력하는 각 줄은 출력에서 하나의 행을 생성합니다.
이 함수는 다음 열을 반환합니다.
열 |
데이터 타입 |
설명 |
|---|---|---|
|
TIMESTAMP_NTZ |
Snowflake가 컨테이너에서 로그를 수집한 시점의 UTC(협정 세계시) 타임스탬프입니다. 이 값은 이벤트 테이블의 TIMESTAMP 열에 매핑됩니다. |
|
NUMBER |
작업 서비스 인스턴스의 ID입니다. 이 값은 이벤트 테이블의 RESOURCE_ATTRIBUTES 열에 있는 |
|
VARCHAR |
컨테이너의 이름입니다. 이 값은 이벤트 테이블의 RESOURCE_ATTRIBUTES 열에 있는 |
|
VARCHAR |
Snowflake가 애플리케이션 컨테이너에서 수집한 로그입니다. 이 값은 이벤트 테이블의 VALUE 열에 매핑됩니다. |
|
OBJECT |
로그에 대한 추가 정보입니다. 예를 들어, 로그가 수집된 로그 스트림(stderr 또는 stdout)입니다. 이 값은 이벤트 테이블의 RECORD_ATTRIBUTES 열에 매핑됩니다. |
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
|---|---|---|
MONITOR |
서비스 |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
컨테이너 로그가 출력에 표시되기까지 몇 분 정도 걸릴 수 있습니다.
예¶
Snowflake가 지난 하루 동안 my_test_job 작업에 대해 컨테이너에서 수집한 로그를 검색합니다.
SELECT * FROM TABLE(mydb.myschema.my_test_job!SPCS_GET_LOGS());
출력 예:
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
| TIMESTAMP | INSTANCE_ID | CONTAINER_NAME | LOG | RECORD_ATTRIBUTES |
|-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------|
| 2025-06-26 00:23:40.281 | 0 | main | job-tutorial - INFO - Job finished | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Executing query [select current_time() as time,'hello'] and writing result to table [results] | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:38.787 | 0 | main | job-tutorial - INFO - Connection succeeded. Current session context: database="TUTORIAL_DB", schema="DATA_SCHEMA", warehouse="TUTORIAL_WAREHOUSE", role="TEST_ROLE" | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
| 2025-06-26 00:23:36.852 | 0 | main | job-tutorial - INFO - Job started | { |
| | | | | "log.iostream": "stdout" |
| | | | | } |
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
Snowflake가 지난 3일 동안 my_test_job 작업에 대해 컨테이너에서 수집한 로그를 검색합니다.
SELECT * FROM TABLE(mydb.myschema.my_test_job!SPCS_GET_LOGS(START_TIME => DATEADD('day', -3, CURRENT_TIMESTAMP())));
이름이 main 인 컨테이너의 my_test_job 작업 인스턴스 0 에 대한 로그를 검색합니다. 다음 예제와 같이, START_TIME 및 END_TIME 인자를 생략하면 이 함수는 지난 하루 동안의 로그를 검색합니다.
SELECT * FROM TABLE(mydb.myschema.my_test_job!SPCS_GET_LOGS())
WHERE instance_id = 0 AND container_name = 'main';