다음을 통해 공유


수집 매핑

수집 매핑은 수집하는 동안 테이블 내의 열에 들어오는 데이터를 매핑하는 데 사용됩니다.

데이터 탐색기는 행 지향(CSV, JSON, AVRO 및 W3CLOGFILE) 및 열 지향(Parquet 및 ORC) 등 다양한 유형의 매핑을 지원합니다.

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

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

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

Important

대기 중인 수집의 경우:

  • 매핑에서 참조되는 테이블이 데이터베이스에 없는 경우 모든 열에 대해 유효한 데이터 형식이 지정되어 있으면 자동으로 만들어집니다.
  • 매핑에서 참조되는 열이 테이블에 없는 경우 열에 대해 유효한 데이터 형식이 지정된 경우 해당 열에 대한 데이터를 처음 수집할 때 마지막 열로 테이블에 자동으로 추가됩니다. 매핑에 새 열을 추가하려면 .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, Raw 모든 테이블 열은 데이터 원본에 표시되는 순서대로 해당 순서대로 데이터 열에 매핑됩니다. 열 데이터 형식은 테이블 스키마에서 가져옵니다.
명명된 필드가 있는 명명된 열 또는 레코드가 있는 형식입니다. JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE 모든 테이블 열은 이름이 같은 데이터 열 또는 레코드 필드에 매핑됩니다(대/소문자 구분). 열 데이터 형식은 테이블 스키마에서 가져옵니다.

Warning

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

매핑 변환

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

경로-의존적 변환 설명 조건
PropertyBagArrayToDictionary 속성의 JSON 배열(예: {events:[{"n1":"v1"},{"n2":"v2"}]}사전)을 사전으로 변환하고 유효한 JSON 문서(예: JSON 문서)로 {"n1":"v1","n2":"v2"}serialize합니다. ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
SourceLocation 데이터를 제공한 스토리지 아티팩트의 이름, 문자열을 입력합니다(예: Blob의 "BaseUri" 필드). , JSON, ORCParquetAVROW3CLOGFILE 매핑 형식에 CSV사용할 수 있습니다.
SourceLineNumber 해당 스토리지 아티팩트를 기준으로 오프셋을 지정하고 long을 입력합니다('1'로 시작하고 새 레코드당 증가). , JSON, ORCParquetAVROW3CLOGFILE 매핑 형식에 CSV사용할 수 있습니다.
DateTimeFromUnixSeconds unix-time(1970-01-01 이후 초)을 나타내는 숫자를 UTC 날짜/시간 문자열로 변환합니다. ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DateTimeFromUnixMilliseconds unix-time(1970-01-01 이후 밀리초)을 나타내는 숫자를 UTC 날짜/시간 문자열로 변환합니다. ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DateTimeFromUnixMicroseconds unix-time(1970-01-01 이후의 마이크로초)을 나타내는 숫자를 UTC 날짜/시간 문자열로 변환합니다. ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DateTimeFromUnixNanoseconds unix-time(1970-01-01 이후의 나노초)을 나타내는 숫자를 UTC 날짜/시간 문자열로 변환합니다. ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
DropMappedFields JSON 문서의 개체를 열에 매핑하고 다른 열 매핑에서 이미 참조한 중첩된 필드를 제거합니다. ParquetAVROORC 매핑 형식에 JSON사용할 수 있습니다.
BytesAsBase64 데이터를 바이트 배열로 처리하고 base64로 인코딩된 문자열로 변환합니다. 매핑 형식에 AVRO 사용할 수 있습니다. 형식의 경우 ApacheAvro 매핑된 데이터 필드의 스키마 형식은 bytes Avro fixed 형식이어야 합니다. 형식의 경우 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==