수집 일괄 처리 정책
개요
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
대기 중인 수집 프로세스 중에 서비스는 수집 전에 작은 수신 데이터 청크를 함께 일괄 처리하여 처리량을 최적화합니다. 일괄 처리는 큐에 대기 중인 수집 프로세스에서 사용하는 리소스를 줄이고, 일괄 처리되지 않은 수집으로 생성된 작은 데이터 분할을 최적화하기 위해 수집 후 리소스가 필요하지 않습니다.
수집 전에 일괄 처리를 수행하는 단점은 강제 지연입니다. 따라서 데이터 수집을 요청하는 종단 간 시간은 쿼리 준비가 된 데이터가 더 커질 때까지입니다.
정책을 정의 IngestionBatching
할 때 처리량 최적화와 시간 지연 간의 균형을 찾아야 합니다. 이 정책은 대기 중인 수집에 적용됩니다. 작은 Blob을 함께 일괄 처리할 때 허용되는 최대 강제 지연을 정의합니다. 일괄 처리 정책 명령을 사용하고 처리량을 최적화하는 방법에 대한 자세한 내용은 다음을 참조하세요.
일괄 처리 봉인
대량 수집을 위해 압축되지 않은 데이터의 최적 크기는 약 1GB입니다. 데이터가 훨씬 적은 Blob의 수집은 최적이 않으므로 대기 중인 수집에서 서비스는 작은 Blob을 함께 일괄 처리합니다.
다음 목록에서는 일괄 처리를 봉인하는 기본 일괄 처리 정책 트리거를 보여 줍니다. 첫 번째 조건이 충족되면 일괄 처리가 봉인되고 수집됩니다.
Size
: 일괄 처리 크기 제한에 도달했거나 초과했습니다.Count
: 일괄 처리 파일 수 제한에 도달했습니다.Time
: 일괄 처리 시간이 만료되었습니다.
데이터베이스 IngestionBatching
또는 테이블에 정책을 설정할 수 있습니다. 기본값은 5분 최대 지연 시간, 500개 항목, 총 크기 1GB입니다.
Important
이 정책을 매우 작은 값으로 설정하면 COGS(판매된 상품 비용)가 증가하고 성능이 저하됩니다. 또한 일괄 처리 정책 값을 줄이면 여러 수집 프로세스를 병렬로 관리하는 오버헤드로 인해 실제로 효과적인 엔드투엔드 수집 대기 시간이 증가할 수 있습니다.
다음 목록에는 단일 Blob 수집과 관련된 일괄 처리를 봉인하는 조건이 나와 있습니다. 조건이 충족되면 일괄 처리가 봉인되고 수집됩니다.
SingleBlob_FlushImmediately
: 'FlushImmediately'가 설정되었기 때문에 단일 Blob 수집SingleBlob_IngestIfNotExists
: 'IngestIfNotExists'가 설정되었기 때문에 단일 Blob 수집SingleBlob_IngestByTag
: 'ingest-by'가 설정되었기 때문에 단일 Blob 수집SingleBlob_SizeUnknown
: Blob 크기를 알 수 없으므로 단일 Blob 수집
SystemFlush
조건이 설정되면 시스템 플러시가 트리거될 때 일괄 처리가 봉인됩니다. 매개 변수 집합을 SystemFlush
사용하면 시스템 구성 요소의 데이터베이스 크기 조정 또는 내부 재설정 등으로 인해 시스템이 데이터를 플러시합니다.
기본값 및 제한
Type | 속성 | 기본값 | 짧은 대기 시간 설정 | 최솟값 | 최댓값 |
---|---|---|---|---|---|
항목 수 | MaximumNumberOfItems | 500 | 500 | 1 | 25,000 |
데이터 크기(MB) | MaximumRawDataSizeMB | 1024 | 1024 | 100 | 4096 |
Time(TimeSpan) | MaximumBatchingTimeSpan | 00:05:00 | 00:00:20 - 00:00:30 | 00:00:10 | 00:30:00 |
수집 일괄 처리 정책을 사용하여 엔드투엔드 대기 시간을 제어하는 가장 효과적인 방법은 더 높은 대기 시간 요구 사항에 따라 테이블 또는 데이터베이스 수준에서 시간 경계를 변경하는 것입니다. 데이터베이스 수준 정책은 테이블 수준 정책이 정의되지 않은 해당 데이터베이스의 모든 테이블과 새로 만든 테이블에 영향을 줍니다.
Important
수신이 낮은 테이블에서 수집 일괄 처리 정책의 시간 경계를 너무 낮게 설정하면 데이터베이스가 새로 만든 데이터 분할된 데이터베이스를 최적화하려고 할 때 추가 컴퓨팅 및 스토리지 작업이 발생할 수 있습니다. 데이터 분할된 데이터베이스에 대한 자세한 내용은 익스텐트(extents)를 참조 하세요.
일괄 처리 데이터 크기
일괄 처리 정책 데이터 크기는 압축되지 않은 데이터에 대해 설정됩니다. Parquet, AVRO 및 ORC 파일의 경우 파일 크기에 따라 예측값이 계산됩니다. 압축된 데이터의 경우 압축되지 않은 데이터 크기는 다음과 같이 정확도의 내림차순으로 평가됩니다.
- 압축되지 않은 크기가 수집 원본 옵션에 제공된 경우 해당 값이 사용됩니다.
- SDK를 사용하여 로컬 파일을 수집할 때 zip 보관 파일 및 gzip 스트림을 검사하여 원시 크기를 평가합니다.
- 이전 옵션이 데이터 크기를 제공하지 않는 경우 압축되지 않은 데이터 크기를 예측하기 위해 압축된 데이터 크기에 요인이 적용됩니다.
일괄 처리 대기 시간
대기 시간은 일괄 처리 정책 설정을 사용하여 해결할 수 있는 여러 원인으로 인해 발생할 수 있습니다.
원인 | 해결 방법 |
---|---|
데이터 대기 시간이 설정과 일치 time 하며, 데이터가 너무 적어 제한에 size count 도달하지 못했습니다. |
제한 줄이기 time |
매우 작은 파일 수가 많기 때문에 비효율적인 일괄 처리 | 원본 파일의 크기를 늘입니다. Kafka Sink를 사용하는 경우 최대 100KB 청크 이상으로 데이터를 보내도록 구성합니다. 작은 파일이 많은 경우 데이터베이스 또는 테이블 수집 정책에서 (최대 2,000개까지) 늘 count 입니다. |
많은 양의 압축되지 않은 데이터 일괄 처리 | Parquet 파일을 수집할 때 일반적입니다. 테이블 또는 데이터베이스 일괄 처리 정책을 250MB로 증분 방식으로 줄이고 size 개선 사항을 확인합니다. |
데이터베이스의 크기가 조정되어 백로그 | Azure Advisor 제안을 수락하여 데이터베이스를 확장하거나 확장합니다. 또는 백로그가 닫혀 있는지 확인하기 위해 데이터베이스 크기를 수동으로 조정합니다. 이러한 옵션이 작동하지 않는 경우 지원에 문의하세요. |