구조적 스트리밍과 함께 Unity 카탈로그 사용
Unity 카탈로그에 구조적 스트리밍을 사용하여 Azure Databricks에서 증분 및 스트리밍 워크로드에 대해 데이터 거버넌스를 관리합니다. 이 문서에서는 지원되는 기능을 간략하게 설명하고 Unity 카탈로그와 구조화된 스트리밍을 함께 사용하기 위한 모범 사례를 제안합니다.
Unity 카탈로그에서 지원되는 구조적 스트리밍 기능은 무엇인가요?
Unity 카탈로그는 Azure Databricks에서 사용할 수 있는 구조적 스트리밍 원본 및 싱크에 대해 명시적 제한을 추가하지 않습니다. Unity 카탈로그 데이터 거버넌스 모델을 사용하면 Unity 카탈로그의 관리 테이블 및 외부 테이블에서 데이터를 스트리밍할 수 있습니다. Unity 카탈로그에서 관리되는 외부 위치를 사용하고 개체 스토리지 URI를 사용해서 데이터와 상호 작용할 수도 있습니다. 테이블 이름 또는 파일 경로를 사용하여 외부 테이블에 쓸 수 있습니다. Unity 카탈로그에서 테이블 이름을 사용하여 관리되는 테이블과 상호 작용해야 합니다.
구조적 스트리밍 체크포인트의 경로를 지정할 때 Unity 카탈로그에서 관리되는 외부 위치를 사용합니다. Unity 카탈로그를 사용하여 스토리지를 안전하게 연결하는 방법에 대한 자세한 내용은 Unity 카탈로그를 사용하여 클라우드 개체 스토리지 및 서비스에 연결을 참조하세요.
구조적 스트리밍 기능 지원은 실행 중인 Databricks 런타임 버전과 할당된 클러스터 액세스 모드 또는 공유 클러스터 액세스 모드를 사용하는지 여부에 따라 다릅니다. 자세한 내용은 Unity 카탈로그의 스트리밍 제한을 참조하세요.
Unity 카탈로그에서 구조적 스트리밍을 사용하는 엔드투엔드 데모는 자습서: 엔드투엔드 레이크하우스 분석 파이프라인 실행을 참조하세요.
Unity 카탈로그에서 지원되지 않는 구조화된 스트리밍 기능은 무엇인가요?
Unity 카탈로그에서 지원되지 않는 구조화된 스트리밍 기능 목록은 Unity 카탈로그의 스트리밍 제한 사항을 참조하세요.
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
설명: 여러 테이블의 결과
연산자 :
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.