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
같은 사용자 지정 입력 제한이 있습니다. 자세한 내용은 스트리밍 데이터 원본 구성