Unity 카탈로그 뷰에서 스트림
Important
이 기능은 공개 미리 보기 상태입니다.
Databricks Runtime 14.1 이상에서는 구조적 스트리밍을 사용하여 Unity 카탈로그에 등록된 보기에서 스트리밍 읽기를 수행할 수 있습니다. Azure Databricks는 델타 테이블에 대해 정의된 뷰의 스트리밍 읽기만 지원합니다.
보기를 스트림으로 읽기
구조적 스트리밍을 사용하여 보기를 읽으려면 다음 예제와 같이 메서드에 보기의 .table()
식별자를 제공합니다.
df = (spark.readStream
.table("demoView")
)
사용자는 대상 보기에 대한 권한이 있어야 합니다 SELECT
.
뷰에 대해 스트리밍 읽기를 구성하기 위한 지원되는 옵션
뷰에 대해 스트리밍 읽기를 구성할 때 지원되는 옵션은 다음과 같습니다.
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
스트리밍 판독기는 기본 델타 테이블을 정의하는 파일 및 메타데이터에 이러한 옵션을 적용합니다.
Important
정의된 뷰에 대한 읽기는 UNION ALL
옵션을 withEventTimeOrder
startingVersion
지원하지 않으며 .
원본 뷰에서 지원되는 작업
모든 보기가 스트리밍 읽기를 지원하는 것은 아닙니다. 원본 뷰에서 지원되지 않는 작업에는 집계 및 정렬이 포함됩니다.
다음 목록에서는 지원되는 작업에 대한 설명 및 예제 보기 정의를 제공합니다.
프로젝트
설명: 열 수준 사용 권한을 제어합니다.
연산자:
SELECT... FROM...
예제 문:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filter
설명: 행 수준 사용 권한을 제어합니다.
연산자:
WHERE...
예제 문:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
모두 통합
설명: 여러 테이블의 결과
연산자:
UNION ALL
예제 문:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
참고 항목
뷰에서 참조되는 테이블을 추가하거나 변경하고 동일한 스트리밍 검사포인트를 사용하도록 뷰 정의를 수정할 수 없습니다.
제한 사항
다음과 같은 제한 사항이 적용됩니다.
델타 테이블에서 지원되는 보기에서만 스트리밍할 수 있습니다. 다른 데이터 원본에 대해 정의된 뷰는 지원되지 않습니다.
Unity 카탈로그에 보기를 등록해야 합니다.
지원되지 않는 연산자를 사용하여 보기에서 스트리밍하는 경우 다음 예외가 표시됩니다.
UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.
지원되지 않는 옵션을 제공하는 경우 다음 예외가 표시됩니다.
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.