구조적 스트리밍에 대한 프로덕션 고려 사항

이 문서에서는 실시간 또는 일괄 처리 애플리케이션에 대한 대기 시간 및 비용 요구 사항을 충족하도록 Azure Databricks의 구조적 스트리밍을 사용하여 프로덕션 증분 처리 워크로드를 구성하기 위한 권장 사항을 제공합니다. Azure Databricks에서 구조적 스트리밍의 주요 개념을 이해하면 데이터의 볼륨과 속도를 확장하고 개발에서 프로덕션으로 이동할 때 일반적인 문제를 방지할 수 있습니다.

Azure Databricks는 구조적 스트리밍 워크로드에 대한 프로덕션 인프라 관리의 복잡성을 줄이기 위해 Delta Live Tables를 도입했습니다. Databricks는 새로운 구조적 스트리밍 파이프라인에 델타 라이브 테이블을 사용하는 것이 좋습니다. 델타 라이브 테이블이란?을 참조하세요.

참고 항목

컴퓨팅 자동 크기 조정에는 구조적 스트리밍 워크로드에 대한 클러스터 크기를 축소하는 데 제한이 있습니다. Databricks는 스트리밍 워크로드에 대해 향상된 자동 크기 조정과 함께 Delta Live Tables를 사용하는 것이 좋습니다. 향상된 자동 크기 조정을 사용하여 Delta Live Tables 파이프라인의 클러스터 사용률 최적화를 참조 하세요.

구조적 스트리밍 워크로드에 Notebook 사용

Databricks Notebook을 사용한 대화형 개발을 위해서는 쿼리를 수동으로 실행하기 위해 Notebook을 클러스터에 연결해야 합니다. 워크플로를 사용하여 자동화된 배포 및 쿼리 실패로부터 자동 복구를 위해 Databricks Notebook을 예약할 수 있습니다.

대화형 개발 중 또는 프로덕션 워크로드의 대화형 모니터링을 위해 Notebook에서 구조적 스트리밍 쿼리를 시각화할 수 있습니다. 사람이 Notebook의 출력을 정기적으로 모니터링하는 경우에만 프로덕션에서 구조적 스트리밍 쿼리를 시각화해야 합니다. triggercheckpointLocation 매개 변수는 선택 사항이지만 Databricks는 프로덕션 환경에서 항상 지정하는 것이 좋습니다.

Azure Databricks에서 구조적 스트리밍에 대한 일괄 처리 크기 및 빈도 제어

Azure Databricks의 구조적 스트리밍에는 자동 로더 및 Delta Lake를 사용하여 스트리밍하는 동안 비용 및 대기 시간을 제어하는 데 도움이 되는 향상된 옵션이 있습니다.

상태 저장 스트리밍이란?

상태 저장 구조적 스트리밍 쿼리에는 중간 상태 정보에 대한 증분 업데이트가 필요한 반면 상태 비저장 구조적 스트리밍 쿼리는 원본에서 싱크로 처리된 행에 대한 정보만 추적합니다.

상태 저장 작업에는 스트리밍 집계, 스트리밍 dropDuplicates, 스트림-스트림 조인, mapGroupsWithStateflatMapGroupsWithState가 포함됩니다.

상태 저장 구조적 스트리밍 쿼리에 필요한 중간 상태 정보는 제대로 구성되지 않은 경우 예기치 않은 대기 시간 및 프로덕션 문제로 이어질 수 있습니다.

Databricks Runtime 13.3 LTS 이상에서는 Structured Streaming 워크로드에 대한 검사포인트 기간 및 엔드 투 엔드 대기 시간을 낮추기 위해 RocksDB를 사용하여 변경 로그 검사포인트 지정을 사용하도록 설정할 수 있습니다. Databricks는 모든 구조적 스트리밍 상태 저장 쿼리에 대해 changelog 검사포인트를 사용하도록 설정할 것을 권합니다. changelog 검사pointing 사용을 참조하세요.