Azure 데이터 탐색기 데이터 수집Azure Data Explorer data ingestion

데이터 수집은 하나 이상의 원본에서 데이터 레코드를 로드하여 Azure 데이터 탐색기에서 테이블을 만들거나 업데이트하는 데 사용되는 프로세스입니다.Data ingestion is the process used to load data records from one or more sources to create or update a table in Azure Data Explorer. 수집한 후에는 데이터를 쿼리에 사용할 수 있게 됩니다.Once ingested, the data becomes available for query. 아래 다이어그램은 데이터 수집을 포함하여 Azure 데이터 탐색기 작업에 대한 엔드투엔드 흐름을 보여줍니다.The diagram below shows the end-to-end flow for working in Azure Data Explorer, including data ingestion.

데이터 흐름

데이터 수집을 담당하는 Azure 데이터 탐색기 데이터 관리 서비스는 다음과 같은 기능을 제공합니다.The Azure Data Explorer data management service, which is responsible for data ingestion, provides the following functionality:

  1. 데이터 끌어오기: 외부 소스(Event Hubs)에서 데이터를 끌어오거나 Azure 큐의 수집 요청을 읽습니다.Data pull: Pull data from external sources (Event Hubs) or read ingestion requests from an Azure Queue.

  2. 일괄 처리: 같은 데이터베이스와 테이블로 흐르는 데이터를 일괄 처리하여 수집 처리량을 최적화합니다.Batching: Batch data flowing to the same database and table to optimize ingestion throughput.

  3. 유효성 검사: 예비 유효성 검사 및 형식 변환 (필요한 경우)Validation: Preliminary validation and format conversion if necessary.

  4. 데이터 조작: 스키마 매칭, 데이터 구성, 인덱싱, 인코딩 및 압축.Data manipulation: Matching schema, organizing, indexing, encoding and compressing the data.

  5. 수집 흐름의 지속성 포인트: 엔진의 수집 부하를 관리하고 일시적인 오류 시 재시도를 처리합니다.Persistence point in the ingestion flow: Manage ingestion load on the engine and handle retries upon transient failures.

  6. 데이터 수집 커밋: 데이터를 쿼리에 사용할 수 있도록 지정합니다.Commit the data ingest: Makes the data available for query.

수집 메서드Ingestion methods

Azure 데이터 탐색기는 각각의 목표 시나리오, 장점 및 단점이 있는 여러 가지 수집 메서드를 지원합니다.Azure Data Explorer supports several ingestion methods, each with its own target scenarios, advantages, and disadvantages. Azure 데이터 탐색기는 공통 서비스에 대한 파이프라인 및 커넥터, SDK를 사용한 프로그래밍 방식 수집, 탐색용 엔진에 대한 직접 액세스를 제공합니다.Azure Data Explorer offers pipelines and connectors to common services, programmatic ingestion using SDKs, and direct access to the engine for exploration purposes.

파이프라인, 커넥터 및 플러그 인을 사용한 수집Ingestion using pipelines, connectors, and plugins

Azure Data Explorer는 현재 다음을 지원합니다.Azure Data Explorer currently supports:

통합 서비스를 사용한 수집Ingestion using integration services

프로그래밍 방식 수집Programmatic ingestion

Azure 데이터 탐색기는 쿼리 및 데이터 수집에 사용할 수 있는 SDK를 제공합니다.Azure Data Explorer provides SDKs that can be used for query and data ingestion. 프로그래밍 방식 수집은 수집 프로세스 중 및 후에 스토리지 트랜잭션을 최소화하여 수집 비용(COG)을 줄이도록 최적화됩니다.Programmatic ingestion is optimized for reducing ingestion costs (COGs), by minimizing storage transactions during and following the ingestion process.

사용 가능한 SDK 및 오픈 소스 프로젝트:Available SDKs and open-source projects:

Kusto는 데이터를 수집하고 쿼리하는 데 사용할 수 있는 다음과 같은 클라이언트 SDK를 제공합니다.Kusto offers client SDK that can be used to ingest and query data with:

프로그래밍 방식 수집 기술:Programmatic ingestion techniques:

  • Azure 데이터 탐색기 데이터 관리 서비스를 통해 데이터 수집(높은 처리량 및 안정적인 수집):Ingesting data through the Azure Data Explorer data management service (high-throughput and reliable ingestion):

    수집 일괄 처리(SDK에서 제공): 클라이언트는 Azure Blob Storage(Azure 데이터 탐색기 데이터 관리 서비스에서 지정)에 데이터를 업로드하고 Azure 큐에 알림을 게시합니다.Batch ingestion (provided by SDK): the client uploads the data to Azure Blob storage (designated by the Azure Data Explorer data management service) and posts a notification to an Azure Queue. 수집 일괄 처리는 안정적이고 저렴한 대용량 데이터 수집을 위해 권장되는 기술입니다.Batch ingestion is the recommended technique for high-volume, reliable, and cheap data ingestion.

  • Azure 데이터 탐색기 엔진에 직접 데이터 수집(탐색 및 프로토타입에 가장 적합):Ingesting data directly into the Azure Data Explorer engine (most appropriate for exploration and prototyping):

    • 인라인수집: 대역 외 데이터를 포함 하는 제어 명령 (. 수집 인라인)은 임시 테스트 목적으로 사용 됩니다.Inline ingestion: control command (.ingest inline) containing in-band data is intended for ad hoc testing purposes.

    • 쿼리에서 수집: 쿼리 결과를 가리키는 제어 명령(.set, .set-or-append, .set-or-replace)이 보고서 또는 작은 임시 테이블을 생성하는 데 사용됩니다.Ingest from query: control command (.set, .set-or-append, .set-or-replace) that points to query results is used for generating reports or small temporary tables.

    • 스토리지에서 수집: 데이터가 외부(예: Azure Blob Storage)에 저장되는 제어 명령(.ingest into)을 통해 효율적인 데이터 대량 수집이 가능합니다.Ingest from storage: control command (.ingest into) with data stored externally (for example, Azure Blob Storage) allows efficient bulk ingestion of data.

다양한 메서드의 대기 시간:Latency of different methods:

메서드Method 대기 시간Latency
인라인 수집Inline ingestion 즉시Immediate
쿼리에서 수집Ingest from query 쿼리 시간 + 처리 시간Query time + processing time
스토리지에서 수집Ingest from storage 다운로드 시간 + 처리 시간Download time + processing time
큐에 대기된 수집Queued ingestion 일괄 처리 시간 + 처리 시간Batching time + processing time

처리 시간은 데이터 크기에 따라 달라지며 몇 초 미만입니다.Processing time depends on the data size, less than a few seconds. 일괄 처리 시간의 기본값은 5분입니다.Batching time defaults to 5 minutes.

가장 적합한 수집 방법 선택Choosing the most appropriate ingestion method

데이터 수집을 시작하기 전에 다음 사항을 고려해야 합니다.Before you start to ingest data, you should ask yourself the following questions.

  • 데이터가 어디에 상주하나요?Where does my data reside?
  • 데이터 형식은 무엇이며 변경할 수 있나요?What is the data format, and can it be changed?
  • 쿼리해야 하는 필수 필드는 무엇인가요?What are the required fields to be queried?
  • 예상되는 데이터 볼륨과 개발 속도는 얼마인가요?What is the expected data volume and velocity?
  • 예상되는 이벤트 유형의 수는 얼마인가요(테이블 개수로 반영됨)?How many event types are expected (reflected as the number of tables)?
  • 이벤트 스키마에 예상되는 변경 빈도는 얼마인가요?How often is the event schema expected to change?
  • 데이터를 생성하는 노드 수는 얼마인가요?How many nodes will generate the data?
  • 원본 OS는 무엇인가요?What is the source OS?
  • 대기 시간 요구 사항은 무엇인가요?What are the latency requirements?
  • 기존에 관리되는 수집 파이프라인 중 하나를 사용할 수 있나요?Can one of the existing managed ingestion pipelines be used?

이벤트 허브 및 IoT Hub 같은 메시징 서비스를 기반으로 하는 기존 인프라를 사용 하는 조직의 경우 커넥터를 사용 하는 것이 가장 적합 한 솔루션 일 수 있습니다.For organizations with an existing infrastructure that are based on a messaging service like Event Hub and IoT Hub, using a connector is likely the most appropriate solution. 큐에 대기된 수집은 큰 데이터 볼륨에 적합합니다.Queued ingestion is appropriate for large data volumes.

지원되는 데이터 형식Supported data formats

쿼리에서 수집을 제외한 모든 수집 방법에 대해 Azure Data Explorer에서 구문 분석이 가능하도록 데이터 형식을 지정합니다.For all ingestion methods other than ingest from query, format the data so that Azure Data Explorer can parse it.

  • 지원 되는 데이터 형식은 TXT, CSV, TSV, TSVE, PSV, SCSV, SOH, JSON (줄 구분, 여러 줄), Avro 및 Parquet입니다.The supported data formats are: TXT, CSV, TSV, TSVE, PSV, SCSV, SOH, JSON (line-separated, multi-line), Avro, and Parquet.
  • ZIP 및 GZIP 압축을 지원 합니다.Supports ZIP and GZIP compression.

참고

데이터가 수집될 때 목표 테이블 열을 기반으로 데이터 형식이 유추됩니다.When data is being ingested, data types are inferred based on the target table columns. 레코드가 불완전하거나 필수 데이터 형식으로 필드를 구문 분석할 수 없는 경우, 해당 테이블 열에는 Null 값이 채워집니다.If a record is incomplete or a field cannot be parsed as the required data type, the corresponding table columns will be populated with null values.

수집 권장 사항 및 제한 사항Ingestion recommendations and limitations

  • 수집된 데이터의 효과적인 보존 정책은 데이터베이스의 보존 정책에서 파생됩니다.The effective retention policy of ingested data is derived from the database's retention policy. 자세한 내용은 보존 정책을 참조하세요.See retention policy for details. 데이터를 수집하려면 테이블 수집기 또는 데이터베이스 수집기 권한이 필요합니다.Ingesting data requires Table ingestor or Database ingestor permissions.
  • 수집 가능한 최대 파일 크기는 5GB입니다.Ingestion supports a maximum file size of 5 GB. 100MB에서 1GB 사이의 파일을 수집하는 것이 좋습니다.The recommendation is to ingest files between 100 MB and 1 GB.

스키마 매핑Schema mapping

스키마 매핑은 원본 데이터 필드를 대상 테이블 열에 바인딩하는 데 도움이 됩니다.Schema mapping helps bind source data fields to destination table columns.

다음 단계Next steps