테이블 값 함수
적용 대상:
Databricks SQL
Databricks Runtime 11.3 LTS 이상
자동 로더 또는 read_files 스트림의 파일 수준 상태를 반환합니다.
구문
cloud_files_state( { TABLE ( table_name ) | checkpoint } )
논쟁
-
table_name: 에 의해 기록되는
read_files의 식별자입니다. 이름에는 임시 사양이 포함되지 않아야 합니다. Databricks Runtime 13.3 LTS 이상에서 사용할 수 있습니다. -
checkpoint: 리터럴입니다STRING. 자동 로더 원본을 사용하는 스트림의 검사점 디렉터리입니다. 자동 로더란?을 참조하세요.
반품
다음 스키마가 있는 테이블을 반환합니다.
path STRING NOT NULL PRIMARY KEY파일의 경로입니다.
size BIGINT NOT NULL파일의 크기(바이트)입니다.
create_time TIMESTAMP NOT NULL파일을 만든 시간입니다.
discovery_time TIMESTAMP NOT NULL적용 대상:
Databricks SQL
Databricks Runtime 16.4 이상파일이 검색된 시간입니다.
processed_time TIMESTAMP NOT NULL적용 대상:
Databricks SQL
Databricks Runtime 16.4 이상, cloudFiles.cleanSource가 활성화된 경우. 자동 로더 옵션을 참조하세요.파일이 처리된 시간입니다. 일괄 처리에서 오류가 발생하고 다시 시도되면 파일이 여러 번 처리될 수 있습니다. 재시도 시 이 필드에는 가장 최근의 처리 시간이 포함됩니다.
commit_time TIMESTAMP적용 대상:
Databricks SQL
Databricks Runtime 16.4 이상, cloudFiles.cleanSource가 활성화된 경우. 자동 로더 옵션을 참조하세요.처리 후 파일이 검사점으로 커밋된 시간입니다.
NULL파일이 아직 처리되지 않은 경우입니다. 파일을 커밋된 것으로 표시하기 위한 대기 시간은 보장되지 않습니다. 파일이 처리될 수 있지만 나중에 임의로 커밋된 것으로 표시됩니다. 파일을 커밋된 파일로 표시하면 자동 로더에서 파일을 다시 처리할 필요가 없습니다.archive_time TIMESTAMP적용 대상:
Databricks SQL
Databricks Runtime 16.4 이상, cloudFiles.cleanSource가 활성화된 경우. 자동 로더 옵션을 참조하세요.파일이 보관된 시간입니다.
NULL파일이 보관되지 않은 경우입니다.archive_mode STRING적용 대상:
Databricks SQL
Databricks Runtime 16.4 이상, cloudFiles.cleanSource가 활성화된 경우. 자동 로더 옵션을 참조하세요.MOVE파일이 보관될 때cloudFiles.cleanSource이/가MOVE으로 설정되었다면.DELETE파일이 보관될 때cloudFiles.cleanSource이/가DELETE으로 설정되었다면.NULL이cloudFiles.cleanSource(기본값)으로 설정되었으면OFF입니다.move_location STRING적용 대상:
Databricks SQL
Databricks Runtime 16.4 이상, cloudFiles.cleanSource가 활성화된 경우. 자동 로더 옵션을 참조하세요.cloudFiles.cleanSource이MOVE로 설정되었을 때 보관 작업 중에 파일이 이동된 전체 경로입니다.NULL파일이 보관되지 않았거나cloudFiles.cleanSource이/가DELETE또는OFF중 하나인 경우.source_id STRING스트리밍 쿼리의 자동 로더 원본 ID입니다. 이 값은 단일 클라우드 개체 저장소 위치에서 수집하는 스트림에 대한 값입니다
'0'.flow_name STRING적용 대상:
Databricks SQL
Databricks Runtime 13.3 이상하나 이상의 클라우드 파일 원본을 포함하는 Lakeflow Spark 선언적 파이프라인의 특정 스트리밍 흐름을 나타냅니다. table_name 지정되지 않은 경우 NULL입니다.
ingestion_state STRING적용 대상:
Databricks SQL
Databricks Runtime 16.4 이상, cloudFiles.cleanSource가 활성화된 경우. 자동 로더 옵션을 참조하세요.다음 상태 중 하나로 표시된 파일이 수집되었는지 여부입니다.
-
NULL: 파일이 아직 처리되지 않았거나 자동 로더에서 파일 상태를 확인할 수 없습니다. -
PROCESSING: 파일이 처리 중입니다. -
SKIPPED_CORRUPTED: 파일이 손상되어 처리되지 않았습니다. -
SKIPPED_MISSING: 파일이 처리 중에 발견되지 않아 수집되지 않았습니다. -
INGESTED: 파일이 싱크에서 한 번 이상 처리되었습니다. 스트림에 오류가 발생할 경우,foreachBatch같은 멱등이 아닌 싱크에서 다시 처리될 수 있습니다. nullcommit_time이 아닌 필드가 있는 상태의INGESTED파일만 처리를 완료했습니다. -
NOT_RECOGNIZED_BY_DBR: 버전 호환성을 위해 예약되었습니다. 이 상태는 이전 Databricks 런타임 버전에서 인식할 수 없는 이후 Databricks 런타임 버전에 도입된 상태에 대해 표시됩니다.
-
사용 권한
필요한 것은 다음과 같습니다.
- 스트리밍 테이블 식별자를 사용하는 경우
- Databricks Runtime 17.1 이하:
OWNER스트리밍 테이블에 대한 권한 - Databricks SQL 및 Databricks Runtime 17.2 이상: 스트리밍 테이블에 대한
SELECT및MODIFY권한
- Databricks Runtime 17.1 이하:
-
READ FILES외부 위치에 검사점을 제공하는 경우 검사점 위치에 대한 권한입니다.
예제
-- Simple example from checkpoint
> SELECT path FROM CLOUD_FILES_STATE('/some/checkpoint');
/some/input/path
/other/input/path
-- Simple example from source subdir
> SELECT path FROM CLOUD_FILES_STATE('/some/checkpoint/sources/0');
/some/input/path
/other/input/path
-- Simple example from streaming table
> SELECT path FROM CLOUD_FILES_STATE(TABLE(my_streaming_table));
/some/input/path
/other/input/path
제한점
- 스트리밍 테이블을 참조
cloud_files_state하는 보기를 읽는 사용자는 보기에 대한 권한과 스트리밍 테이블에 필요한 권한이 모두SELECT있어야 합니다.