다음을 통해 공유


상태 비저장 스트리밍 쿼리 최적화

이 페이지에서는 Databricks Runtime 18.0 이상에서 상태 비저장 스트리밍 쿼리에 사용할 수 있는 최적화 기능을 설명합니다.

상태 없음 구조적 스트리밍 쿼리는 중간 상태를 유지하지 않고 데이터를 처리합니다. 이러한 쿼리는 스트리밍 집계 dropDuplicates 또는 스트림-스트림 조인과 같은 상태 저장 연산자를 사용하지 않습니다. 예를 들어 스트림-정적 조인 MERGE INTO을 사용하는 쿼리, 델타 테이블과 함께 사용하는 경우 및 원본에서 싱크로 전송된 처리 행을 추적하는 기타 작업이 포함됩니다.

적응형 쿼리 실행 및 자동으로 최적화된 셔플

Azure Databricks는 상태 비저장 스트리밍 쿼리에 대해 적응형 쿼리 실행(AQE) 및 자동 최적화 셔플(AOS)을 지원합니다. 이러한 기능은 델타 테이블 및 유사한 작업을 사용하여 스트림 정적 조인을 MERGE INTO 사용하는 스트리밍 워크로드를 최적화하는 데 도움이 됩니다.

상태 비저장 스트리밍 쿼리에 대해 AQE를 활성화하려면 다음 구성을 true로 설정합니다. 기본적으로 사용하도록 설정됩니다.

spark.sql.adaptive.streaming.stateless.enabled true

무상태 스트리밍 쿼리에 AOS를 작동시키기 위해서는 AQE를 활성화하고 다음 구성을 설정합니다.

spark.sql.shuffle.partitions auto

쿼리 다시 시작 시 셔플 파티션 변경

무상태 스트리밍 쿼리는 쿼리를 재시작할 때 셔플 파티션 수를 변경할 수 있습니다. 이렇게 하면 다양한 입력 볼륨에 맞게 병렬 처리를 조정할 수 있습니다.

이 기능은 역사적인 데이터 보충 시나리오에 특히 유용합니다. 예를 들어 더 높은 병렬 처리로 기록 백필을 처리한 다음 실시간 입력에 대한 병렬 처리를 줄일 수 있습니다.

순서 섞기 파티션 수를 변경하려면 다음 구성을 원하는 값으로 설정하고 쿼리를 다시 시작합니다.

spark.sql.shuffle.partitions <number>