<service_name>!SPCS_GET_LOGS¶
Snowflake가 지정된 서비스의 컨테이너에서 수집한 로그를 반환합니다. 자세한 내용은 컨테이너 로그에 액세스하기 섹션을 참조하십시오.
참고
이 함수는 릴리스 9.20 이상에서 생성된 서비스 및 작업에 대해서만 지원됩니다.
- 참고 항목:
구문¶
<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 열에 매핑됩니다. |
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
OWNERSHIP |
서비스 |
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
컨테이너 로그가 출력에 표시되기까지 몇 분 정도 걸릴 수 있습니다.
예¶
Snowflake가 지난 하루 동안 my_test_job
작업에 대해 컨테이너에서 수집한 로그를 검색합니다.
SELECT * FROM TABLE(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(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(my_test_job!SPCS_GET_LOGS())
WHERE instance_id = 0 AND container_name = 'main';