Azure Databricks에서 구조적 스트리밍 일괄 처리 크기 구성
구조적 스트리밍 쿼리에 대한 입력 속도를 제한하면 일관된 일괄 처리 크기를 유지하는 데 도움이 되며 대량 일괄 처리로 인해 분산 및 연속 마이크로 일괄 처리 지연이 발생하지 않도록 방지할 수 있습니다.
Azure Databricks는 Delta Lake 및 자동 로더 모두에 대해 구조적 스트리밍 일괄 처리 크기를 제어하는 동일한 옵션을 제공합니다.
maxFilesPerTrigger를 사용하여 입력 속도 제한
maxFilesPerTrigger
설정(또는 자동 로더의 경우 cloudFiles.maxFilesPerTrigger
)은 각 마이크로 일괄 처리에서 처리되는 파일 수에 대한 상한을 지정합니다. Delta Lake 및 자동 로더의 기본값은 1000입니다. (이 옵션은 기본적으로 최댓값이 없는 다른 파일 원본의 경우 Apache Spark에도 있습니다.)
maxBytesPerTrigger를 사용하여 입력 속도 제한
maxBytesPerTrigger
설정(또는 자동 로더의 경우 cloudFiles.maxBytesPerTrigger
)은 각 마이크로 일괄 처리에서 처리되는 데이터의 양에 대해 "소프트 최댓값"을 설정합니다. 즉, 일괄 처리는 대략 이 규모의 데이터를 처리하며, 가장 작은 입력 단위가 이 제한보다 큰 경우 스트리밍 쿼리를 진행하기 위해 제한보다 더 많이 처리할 수 있습니다. 이 설정에는 기본값이 없습니다.
예를 들어 각 마이크로 일괄 처리를 10GB의 데이터로 제한하는 10g
와 같은 바이트 문자열을 지정하고 각각 3GB인 파일이 있는 경우 Azure Databricks는 마이크로 일괄 처리에서 12GB를 처리합니다.
여러 입력 속도를 함께 설정
maxBytesPerTrigger
를 maxFilesPerTrigger
와 함께 사용하는 경우 마이크로 일괄 처리는 maxFilesPerTrigger
또는 maxBytesPerTrigger
의 하한에 도달할 때까지 데이터를 처리합니다.
다른 구조적 스트리밍 원본에 대한 입력 속도 제한
Apache Kafka와 같은 스트리밍 원본에는 각각 사용자 지정 입력 제한(예: maxOffsetsPerTrigger
)이 있습니다. 자세한 내용은 스트리밍 데이터 원본 구성을 참조 하세요.