구조적 스트리밍 상태 정보 읽기

Important

이 기능은 공개 미리 보기 상태입니다.

Databricks Runtime 14.3 LTS 이상에서는 DataFrame 작업 또는 SQL 테이블 반환 함수를 사용하여 구조적 스트리밍 상태 데이터 및 메타데이터를 쿼리할 수 있습니다. 이러한 함수를 사용하여 구조적 스트리밍 상태 저장 쿼리에 대한 상태 정보를 관찰할 수 있습니다. 이는 모니터링 및 디버깅에 유용할 수 있습니다.

상태 데이터 또는 메타데이터를 쿼리하려면 스트리밍 쿼리의 검사점 경로에 대한 읽기 권한이 있어야 합니다. 이 문서에 설명된 함수는 상태 데이터 및 메타데이터에 대한 읽기 전용 액세스를 제공합니다. 배치 읽기 의미 체계만 사용하여 상태 정보를 쿼리할 수 있습니다.

참고 항목

Delta Live Tables 파이프라인, 스트리밍 테이블 또는 구체화된 뷰에 대한 상태 정보를 쿼리할 수 없습니다.

구조적 스트리밍 상태 저장소 읽기

지원되는 모든 Databricks Runtime에서 실행되는 구조적 스트리밍 쿼리에 대한 상태 저장소 정보를 읽을 수 있습니다. 다음 구문을 사용합니다.

Python

df = (spark.read
  .format("statestore")
  .load("/checkpoint/path"))

SQL

SELECT * FROM read_statestore('/checkpoint/path')

다음 옵션 구성이 지원됩니다.

옵션 Type 기본값 설명
batchId Long 최신 배치 ID 읽을 대상 배치를 나타냅니다. 쿼리의 이전 상태에 대한 상태 정보를 쿼리하려면 이 옵션을 지정합니다. 배치는 커밋되어야 하지만 아직 정리되지 않았습니다.
operatorId Long 0 읽을 대상 연산자를 나타냅니다. 이 옵션은 쿼리에서 여러 상태 저장 연산자를 사용하는 경우에 사용됩니다.
storeName 문자열 “DEFAULT” 읽을 대상 상태 저장소 이름을 나타냅니다. 이 옵션은 상태 저장 연산자가 여러 상태 저장소 인스턴스를 사용하는 경우에 사용됩니다. storeName 또는 joinSide를 스트림 스팀 조인에 대해 지정해야 하지만 둘 다 지정하지는 않습니다.
joinSide 문자열('왼쪽' 또는 '오른쪽') 읽을 대상 쪽을 나타냅니다. 이 옵션은 사용자가 스트림 스트림 조인에서 상태를 읽으려는 경우에 사용됩니다.

반환된 데이터는 다음 스키마를 보유합니다.

Column Type 설명
key 구조체(상태 키에서 파생된 추가 형식) 상태 검사점에서 상태 저장 연산자 레코드의 키입니다.
value 구조체(상태 값에서 파생된 추가 형식) 상태 검사점의 상태 저장 연산자 레코드 값입니다.
partition_id 정수 상태 저장 연산자 레코드를 포함하는 상태 검사점의 파티션입니다.

구조적 스트리밍 상태 메타데이터 읽기

Important

상태 메타데이터를 기록하려면 Databricks Runtime 14.2 이상에서 스트리밍 쿼리를 실행해야 합니다. 상태 메타데이터 파일은 이전 버전과의 호환성을 손상시키지 않습니다. Databricks Runtime 14.1 이하에서 스트리밍 쿼리를 실행하도록 선택하면 기존 상태 메타데이터 파일이 무시되고 새 상태 메타데이터 파일이 기록되지 않습니다.

Databricks Runtime 14.2 이상에서 실행되는 구조적 스트리밍 쿼리에 대한 상태 메타데이터 정보를 읽을 수 있습니다. 다음 구문을 사용합니다.

Python

df = (spark.read
  .format("state-metadata")
  .load("<checkpointLocation>"))

SQL

SELECT * FROM read_state_metadata('/checkpoint/path')

반환된 데이터는 다음 스키마를 보유합니다.

Column Type 설명
operatorId 정수 상태 저장 스트리밍 연산자의 정수 ID입니다.
operatorName 정수 상태 저장 스트리밍 연산자의 이름입니다.
stateStoreName 문자열 연산자 상태 저장소의 이름입니다.
numPartitions 정수 상태 저장소의 파티션 수입니다.
minBatchId Long 쿼리 상태에 사용할 수 있는 최소 배치 ID입니다.
maxBatchId Long 쿼리 상태에 사용할 수 있는 최대 배치 ID입니다.

참고 항목

검사점을 작성할 때 minBatchIdmaxBatchId에서 제공한 배치 ID 값과 상태를 반영합니다. 이전 배치는 마이크로 일괄 처리 실행으로 자동으로 정리되므로 여기에 제공된 값은 계속 사용할 수 있다고 보장되지 않습니다.