EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY
EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY (외부 테이블 파일 등록 이력)
이 테이블 함수는 외부 테이블의 메타데이터 이력에 대한 정보를 쿼리하는 데 사용할 수 있어요:
- 메타데이터 새로 고침의 일부로 자동으로 추가되거나 제거된 파일들
- 메타데이터를 새로 고칠 때 발견된 모든 오류
출처: Snowflake SQL Reference - EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY
본문
구문
EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY (
TABLE_NAME => '<string>'
[, START_TIME => <constant_expr> ] )
인자
필수:
TABLE_NAME => '<string>'
외부 테이블 이름을 지정하는 문자열이에요.
선택:
START_TIME => <constant_expr>
지난 30일 이내의, 메타데이터 업데이트 이벤트를 가져올 시간 범위의 시작을 나타내는 타임스탬프(TIMESTAMP_LTZ 형식)예요. 참고: 시작 시간을 지정하지 않으면 함수는 지난 30일 이내의 모든 업데이트 이벤트를 반환해요. 시작 시간이 지난 30일 밖에 있으면 함수는 지난 30일 이내의 결과를 반환해요. 시작 시간이 타임스탬프가 아니면 무시돼요.
사용 참고 사항
- 외부 테이블 소유자(즉 외부 테이블에 OWNERSHIP 권한이 있는 역할), 더 높은 역할, 또는 외부 테이블을 포함하는 데이터베이스와 스키마에 USAGE 권한이 있고 외부 테이블에 임의의 권한이 있는 역할에 대한 결과를 반환해요.
- 외부 테이블이 스테이징된 데이터 파일을 메타데이터에 포함하도록 새로 고쳐질(즉 동기화될) 때까지 테이블 함수는 스테이징된 데이터 파일에 대한 메타데이터를 가져올 수 없어요.
- 정보 스키마 테이블 함수를 호출할 때 세션에 INFORMATION_SCHEMA 스키마가 사용 중이거나 함수 이름이 정규화되어 있어야 해요. 자세한 내용은 Snowflake 정보 스키마를 참고해요.
출력
이 함수는 다음 컬럼을 반환해요:
| 컬럼 이름 | 데이터 타입 | 설명 |
|---|---|---|
| JOB_CREATED_TIME | TIMESTAMP_LTZ | 작업이 발생한 시각의 타임스탬프 |
| FILE_NAME | TEXT | 스테이징된 소스 파일의 이름과 파일의 상대 경로 |
| OPERATION_STATUS | TEXT | 상태: REGISTERED_NEW, REGISTERED_UPDATE, REGISTER_SKIPPED, REGISTER_FAILED, UNREGISTERED 또는 UNREGISTER_FAILED |
| MESSAGE | TEXT | 작업 상태에 수반되는 메시지 |
| FILE_SIZE | NUMBER | 외부 테이블에 추가된 파일의 크기(바이트) |
| LAST_MODIFIED | TIMESTAMP_LTZ | 파일이 스테이지에서 마지막으로 갱신된 시각의 타임스탬프 |
예시
mytable 외부 테이블이 참조하는 모든 데이터 파일에 대해 저장된 메타데이터를 가져와요:
select * from table(information_schema.external_table_file_registration_history(TABLE_NAME=>'MYTABLE'));
지난 한 시간 이내에 시작된 외부 테이블 mydb.public.external_table_name의 등록 이벤트를 가져와요:
select * from table(information_schema.external_table_file_registration_history( start_time=>dateadd('hour',-1,current_timestamp()), table_name=>'mydb.public.external_table_name'));
2022년 4월 25일 자정에 시작된 외부 테이블 mydb.public.external_table_name의 등록 이벤트를 가져와요:
select * from table(information_schema.external_table_file_registration_history( start_time=>cast('2022-04-25' as timestamp), table_name=>'mydb.public.external_table_name'));