수집 매핑

수집 매핑은 수집 중에 수신 데이터를 테이블 내의 열에 매핑하는 데 사용됩니다.

Data Explorer 행 지향(CSV, JSON, AVRO 및 W3CLOGFILE) 및 열 지향(Parquet 및 ORC) 등 다양한 유형의 매핑을 지원합니다.

수집 매핑은 미리 만들 수 있으며 매개 변수를 사용하여 ingestionMappingReference 수집 명령에서 참조할 수 있습니다. 하지만 매핑을 지정하지 않고 수집이 가능합니다. 자세한 내용은 ID 매핑을 참조하세요.

매핑 목록의 각 요소는 세 개의 필드에서 생성됩니다.

속성 필수 Description
✔️ 테이블의 대상 열 이름입니다.
Datatype 매핑된 열이 테이블에 아직 없는 경우 만들 데이터 형식입니다.
속성 각 특정 매핑 유형 페이지에 설명된 대로 각 매핑에 특정한 속성을 포함하는 속성 모음입니다.

중요

큐에 대기 중인 수집의 경우:

  • 매핑에서 참조된 테이블이 데이터베이스에 없으면 모든 열에 대해 유효한 데이터 형식이 지정되어 있으므로 자동으로 만들어집니다.
  • 매핑에서 참조된 열이 테이블에 없는 경우 열에 대해 유효한 데이터 형식이 지정된 경우 해당 열에 대한 데이터를 처음 수집할 때 마지막 열로 테이블에 자동으로 추가됩니다. 매핑에 새 열을 추가하려면 .alter 수집 매핑 명령을 사용합니다.
  • 데이터는 수집 속성을 사용하여 일괄 처리됩니다. 다른 ConstValue 값과 같이 사용되는 고유 수집 매핑 속성이 많을수록 수집이 조각화되어 성능이 저하될 수 있습니다.

지원되는 매핑 유형

다음 표에서는 특정 형식의 외부 데이터를 수집하거나 쿼리할 때 사용할 매핑 유형을 정의합니다.

데이터 형식 매핑 유형
CSV CSV 매핑
TSV CSV 매핑
TSVe CSV 매핑
PSV CSV 매핑
SCSV CSV 매핑
SOHsv CSV 매핑
TXT CSV 매핑
RAW CSV 매핑
JSON JSON 매핑
AVRO AVRO 매핑
APACHEAVRO AVRO 매핑
Parquet Parquet 매핑
ORC ORC 매핑
W3CLOGFILE W3CLOGFILE 매핑

ID 매핑

또는 ingestionMappingReference 속성을 지정하지 않고 수집이 ingestionMapping 가능합니다. 데이터는 테이블의 스키마에서 파생된 ID 데이터 매핑을 사용하여 매핑됩니다. 테이블 스키마는 동일하게 유지됩니다. format 속성을 지정해야 합니다. 수집 형식을 참조하세요.

형식 유형 서식 매핑 논리
구분 기호로 구분된 형식 또는 한 줄 형식과 같이 정의된 열 순서가 있는 테이블 형식 데이터 형식입니다. CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, 원시 모든 테이블 열은 데이터 원본에 표시되는 순서대로 해당 순서대로 데이터 열에 매핑됩니다. 열 데이터 형식은 테이블 스키마에서 가져옵니다.
명명된 열이 있는 형식 또는 명명된 필드가 있는 레코드입니다. JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE 모든 테이블 열은 이름이 같은 데이터 열 또는 레코드 필드에 매핑됩니다(대/소문자 구분). 열 데이터 형식은 테이블 스키마에서 가져옵니다.

경고

테이블 스키마와 데이터 구조(예: 열 또는 필드 데이터 형식, 열 또는 필드 이름 또는 해당 번호)가 일치하지 않으면 데이터가 비어 있거나 잘못된 데이터가 수집될 수 있습니다.

매핑 변환

일부 데이터 형식 매핑(Parquet, JSON 및 AVRO)은 간단하고 유용한 수집 시간 변환을 지원합니다. 시나리오에서 수집 시 더 복잡한 처리가 필요한 경우 업데이트 정책을 사용하여 KQL 식을 사용하여 경량 처리를 정의할 수 있습니다.

경로-의존적 변환 Description 조건
PropertyBagArrayToDictionary 와 같은 속성의 JSON 배열을 사전으로 {events:[{"n1":"v1"},{"n2":"v2"}]}변환하고 와 같은 유효한 JSON 문서로 {"n1":"v1","n2":"v2"}직렬화합니다. , ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
SourceLocation 데이터를 제공한 스토리지 아티팩트의 이름, 문자열(예: Blob의 "BaseUri" 필드)을 입력합니다. , , JSON, ParquetAVROORCW3CLOGFILE 매핑 형식에 CSV사용할 수 있습니다.
SourceLineNumber 해당 스토리지 아티팩트를 기준으로 한 오프셋은 long을 입력합니다('1'으로 시작하고 새 레코드당 증가). 에서 사용할 수 있습니다. JSON, Parquet, AVROORCW3CLOGFILE 매핑 형식.
DateTimeFromUnixSeconds unix-time(1970-01-01 이후 초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. , ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DateTimeFromUnixMilliseconds unix-time(1970-01-01 이후 밀리초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. , ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DateTimeFromUnixMicroseconds unix-time(1970-01-01 이후 마이크로초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. , ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DateTimeFromUnixNanoseconds unix-time(1970-01-01 이후 나노초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. , ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DropMappedFields JSON 문서의 개체를 열에 매핑하고 다른 열 매핑에서 이미 참조한 중첩된 필드를 제거합니다. , ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
BytesAsBase64 데이터를 바이트 배열로 처리하고 base64로 인코딩된 문자열로 변환합니다. 매핑 형식에 AVRO 사용할 수 있습니다. 형식의 경우 ApacheAvro 매핑된 데이터 필드의 스키마 형식은 또는 fixed Avro 형식이어야 bytes 합니다. 형식의 경우 Avro 필드는 [0-255] 범위의 바이트 값을 포함하는 배열이어야 합니다. null 는 데이터가 유효한 바이트 배열을 나타내지 않는 경우 수집됩니다.

매핑 변환 예제

DropMappedFields 변환:

다음과 같은 JSON 콘텐츠가 제공됩니다.

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "EventName": "CustomEvent",
        "Revenue": 0.456
    }
}

다음 데이터 매핑은 이미 매핑된 열을 제외하는 동안 전체 Props 개체를 동적 열 Props 에 매핑합니다(Props.EventName 이미 열 EventName에 매핑되어 있으므로 제외됨).

[
    { "Column": "Time", "Properties": { "Path": "$.Time" } },
    { "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
    { "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]

수집된 데이터는 다음과 같습니다.

Time EventName 속성
2012-01-15T10:45 CustomEvent {"Revenue": 0.456}

BytesAsBase64 변환

다음 AVRO 파일 콘텐츠가 제공됩니다.

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
    }
}

다음 데이터 매핑은 변환과 관계없이 ID 열을 두 번 매핑합니다.

[
    { "Column": "Id", "Properties": { "Path": "$.props.id" } },
    { "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]

수집된 데이터는 다음과 같습니다.

Id Base64EncodedId
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] 44MiXBxbQUiGigmFMy1oNA==