Kusto 수집 라이브러리에 대한 모범 사례
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
이 문서에서는 Kusto 수집 라이브러리를 사용한 데이터 수집에 대한 모범 사례를 설명합니다.
직접 수집보다 큐에 대기하는 것이 좋습니다.
프로덕션 시나리오의 경우 대기 중인 수집 클라이언트를 사용합니다. 자세한 내용은 대기 중인 수집 및 직접 수집을 참조하세요.
단일 수집 클라이언트 인스턴스 사용
Kusto 수집 클라이언트 구현은 스레드로부터 안전하고 재사용 가능합니다. 각 대상 데이터베이스에 대해 프로세스당 대기 중인 클라이언트 또는 직접 수집 클라이언트의 단일 인스턴스를 사용합니다. 여러 인스턴스를 실행하면 데이터베이스가 오버로드되어 응답하지 않거나 유효한 요청에 응답하는 속도가 느려질 수 있습니다.
추적 작업 상태 제한
대용량 데이터 스트림의 경우 수집 요청에 대한 양의 알림 사용을 제한합니다. 과도한 추적으로 인해 수집 대기 시간이 증가하고 완전한 비응답성도 발생할 수 있습니다. 자세한 내용은 작업 상태를 참조 하세요.
처리량 최적화
수집 파이프라인을 계획할 때 수집 처리량에 상당한 영향을 미칠 수 있으므로 다음 요소를 고려합니다.
요인 | 설명 |
---|---|
데이터 크기 | 수집은 큰 청크에서 수행되는 경우 더 효율적입니다. 데이터를 100MB에서 1GB(압축되지 않음)로 일괄 전송하는 것이 좋습니다. |
데이터 형식 | 최대 처리량에 최적화된 Parquet, JSON 또는 AVRO뿐만 아니라 CSV와 같은 데이터 형식 또는 PSV 또는 TSV와 같은 구분된 텍스트 형식을 사용하는 것이 좋습니다. 자세한 내용은 수집에 지원되는 데이터 형식을 참조 하세요. |
표 너비 | 필수 데이터만 수집합니다. 각 열을 인코딩하고 인덱싱해야 합니다. 즉, 더 넓은 테이블이 처리량을 낮출 수 있습니다. 수집 매핑을 제공하여 수집되는 필드를 제어합니다. |
원본 데이터 위치 | 수집 속도를 높이기 위해 지역 간 읽기를 피합니다. |
데이터베이스에 로드 | 데이터베이스에 높은 쿼리 로드가 발생하면 수집을 완료하는 데 시간이 더 오래 걸립니다. |
참고 항목
대기 중인 수집 클라이언트는 큰 데이터 집합을 청크로 분할하고 집계합니다. 이는 수집 전에 데이터를 일괄 처리할 수 없는 경우에 유용합니다.
비용 최적화
Kusto 클라이언트 라이브러리를 사용하여 데이터베이스에 데이터를 수집하는 것은 가장 저렴하고 가장 강력한 옵션입니다. 고객은 수집 방법을 검토하여 비용을 최적화하고 Blob 트랜잭션을 비용 효율적으로 만드는 Azure Storage 가격 책정을 활용할 것을 촉구합니다.
비용 효율적인 수집의 경우:
- 수집된 데이터 청크 수(예: 파일, Blob 및 스트림)를 제한합니다.
- 최대 1GB의 압축되지 않은 데이터의 큰 청크를 수집합니다.
- 일괄 처리를 선택합니다.
- 압축되지 않은 정확한 데이터 크기를 제공하여 추가 스토리지 트랜잭션을 방지합니다.
- 로 설정
FlushImmediately
하지 마십시오true
. - 태그 또는
drop-by
익스텐트 태그를 사용하여 소량의 데이터를ingest-by
보내지 않도록 합니다.
참고 항목
마지막 두 메서드를 과도하게 사용하면 데이터 집계가 중단되고, 추가 스토리지 트랜잭션이 발생할 수 있으며, 수집 및 쿼리 성능이 저하됩니다.