Parse XML processor
출처: 문서
본문
Parse XML 프로세서
parse_xml 프로세서는 이벤트의 XML 데이터를 파싱해요.
설정
다음 옵션으로 parse_xml 프로세서를 설정할 수 있어요.
| 옵션 | 필수 여부 | 유형 | 설명 |
|---|---|---|---|
source |
아니요 | String | 파싱할 event 필드를 지정해요. |
destination |
아니요 | String | 파싱된 XML의 대상 필드예요. 기본값은 event의 루트예요. "", / 또는 공백만 있는 문자열은 유효한 event 필드가 아니므로 사용할 수 없어요. |
pointer |
아니요 | String | 파싱할 필드를 가리키는 JSON 포인터예요. 기본값은 null이며, 전체 source를 파싱한다는 의미예요. pointer는 JSON 배열 인덱스에도 접근할 수 있어요. JSON 포인터가 유효하지 않으면 전체 source 데이터가 나가는 event 객체로 파싱돼요. 가리키는 키가 이미 event 객체에 존재하고 destination이 루트인 경우, 포인터는 키의 전체 경로를 사용해요. |
parse_when |
아니요 | String | 프로세서가 파싱을 수행해야 하는 조건을 지정해요. 기본값은 조건 없음이에요. 표현식 구문을 따르는 OpenSearch Data Prepper 표현식 문자열을 허용해요. |
overwrite_if_destination_exists |
아니요 | Boolean | true로 설정하면 대상을 덮어써요. false로 설정하면 기존 대상 값을 변경하지 않아요. 기본값은 true예요. |
delete_source |
아니요 | Boolean | true로 설정하면 소스 필드를 삭제해요. 기본값은 false예요. |
tags_on_failure |
아니요 | String | 프로세서가 실패하거나 파싱 중 알 수 없는 예외가 발생할 경우 설정할 태그를 지정하는 문자열 목록이에요. |
handle_failed_events |
아니요 | String | XML 처리 오류가 포함된 이벤트를 처리하는 방법을 결정해요. 유효한 값은 skip(오류를 기록하고 이벤트를 다음 프로세서로 보냄)과 skip_silently(오류를 기록하지 않고 이벤트를 다음 프로세서로 보냄)예요. 기본값은 skip이에요. |
사용법
다음 예제는 파이프라인에서 parse_xml 프로세서를 사용하는 방법을 보여줘요.
예제: 최소 구성
다음 예제는 parse_xml 프로세서의 최소 구성을 보여줘요:
parse-xml-pipeline:
source:
stdin:
processor:
- parse_xml:
source: "my_xml"
sink:
- stdout:
{% include copy.html %}
입력 이벤트에 다음 데이터가 포함된 경우:
{ "my_xml": "<Person><name>John Doe</name><age>30</age></Person>" }
프로세서는 이벤트를 다음 출력으로 파싱해요:
{ "name": "John Doe", "age": "30" }
메트릭
다음 표는 일반적인 Abstract processor 메트릭을 설명해요.
| 메트릭 이름 | 유형 | 설명 |
|---|---|---|
recordsIn |
Counter | 파이프라인 구성 요소로 레코드가 유입되는 것을 나타내는 메트릭이에요. |
recordsOut |
Counter | 파이프라인 구성 요소에서 레코드가 유출되는 것을 나타내는 메트릭이에요. |
timeElapsed |
Timer | 파이프라인 구성 요소 실행 중 경과된 시간을 나타내는 메트릭이에요. |
parse_xml 프로세서에는 다음과 같은 사용자 정의 메트릭이 포함돼요.
Counter
parseErrors: 이벤트의 잘못된 XML로 인한 파싱 오류 수예요. XML 형식을 파싱할 수 없음을 나타내요.processingFailures:parse_xml프로세서에서 발생한 처리 실패 수예요. 잘못된 XML 형식과 관련 없는 예상치 못한 오류를 나타내요.