수집 매핑
수집 매핑은 수집 중에 수신 데이터를 테이블 내의 열에 매핑하는 데 사용됩니다.
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"} 직렬화합니다. |
, Parquet 및 AVRO ORC 매핑 형식에 JSON 사용할 수 있습니다. |
SourceLocation | 데이터를 제공한 스토리지 아티팩트의 이름, 문자열(예: Blob의 "BaseUri" 필드)을 입력합니다. | , , JSON , Parquet AVRO 및 ORC W3CLOGFILE 매핑 형식에 CSV 사용할 수 있습니다. |
SourceLineNumber | 해당 스토리지 아티팩트를 기준으로 한 오프셋은 long을 입력합니다('1'으로 시작하고 새 레코드당 증가). | 에서 사용할 수 있습니다. JSON , Parquet , AVRO ORC 및 W3CLOGFILE 매핑 형식. |
DateTimeFromUnixSeconds | unix-time(1970-01-01 이후 초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. | , Parquet 및 AVRO ORC 매핑 형식에 JSON 사용할 수 있습니다. |
DateTimeFromUnixMilliseconds | unix-time(1970-01-01 이후 밀리초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. | , Parquet 및 AVRO ORC 매핑 형식에 JSON 사용할 수 있습니다. |
DateTimeFromUnixMicroseconds | unix-time(1970-01-01 이후 마이크로초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. | , Parquet 및 AVRO ORC 매핑 형식에 JSON 사용할 수 있습니다. |
DateTimeFromUnixNanoseconds | unix-time(1970-01-01 이후 나노초)을 나타내는 숫자를 UTC datetime 문자열로 변환합니다. | , Parquet 및 AVRO ORC 매핑 형식에 JSON 사용할 수 있습니다. |
DropMappedFields | JSON 문서의 개체를 열에 매핑하고 다른 열 매핑에서 이미 참조한 중첩된 필드를 제거합니다. | , Parquet 및 AVRO ORC 매핑 형식에 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== |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기