XMLReader
XMLReader
XML 내용을 읽어 Record 객체를 만드는 리더예요. 레코드는 XML 데이터의 두 번째 레벨에, 바깥쪽 루트 태그 안에 들어 있는 것으로 기대해요.
본문
설명
XML 내용을 읽고 Record 객체를 만들어요. 레코드는 XML 데이터의 두 번째 레벨에 있으며 바깥쪽 루트 태그에 둘러싸여 있을 것으로 기대해요.
태그
parser, reader, record, xml
속성 (Properties)
아래 목록에서 필수 속성은 별표(*)로 표시돼요. 그 외 속성은 선택 항목이고, 기본값과 NiFi Expression Language 지원 여부도 함께 표시돼요.
| 표시 이름 | API 이름 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|
| Date Format | Date Format | Date 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 Date 필드는 epoch(1970년 1월 1일 자정 GMT) 이후의 밀리초 수로 가정해요. 지정한다면 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: / 구분자로 월 2자리·일 2자리·연 4자리를 뜻하는 MM/dd/yyyy, 01/01/2017처럼). |
||
| Schema Access Strategy * | Schema Access Strategy | infer-schema |
Use 'Schema Name' Property, Use 'Schema Text' Property, Schema Reference Reader, Infer Schema |
데이터를 해석하는 데 사용할 스키마를 어떻게 얻을지 지정해요. |
| Schema Branch | Schema Branch | Schema Registry 속성에서 스키마를 찾을 때 사용할 브랜치 이름을 지정해요. 선택한 Schema Registry가 브랜칭을 지원하지 않으면 이 값은 무시돼요. | ||
| Schema Name | Schema Name | ${schema.name} |
Schema Registry 속성에서 찾을 스키마 이름을 지정해요. | |
| Schema Reference Reader * | Schema Reference Reader | Schema Reference Identifier를 결정하기 위해 FlowFile 속성이나 내용을 읽는 책임을 가진 서비스 구현이에요. | ||
| Schema Registry | Schema Registry | Schema Registry에 사용할 Controller Service를 지정해요. | ||
| Schema Text | Schema Text | ${avro.schema} |
Avro 형식 스키마의 텍스트예요. | |
| Schema Version | Schema Version | Schema Registry에서 찾을 스키마 버전을 지정해요. 지정하지 않으면 최신 버전을 가져와요. | ||
| Time Format | Time Format | Time 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 epoch 이후의 밀리초 수로 가정해요. 지정한다면 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: 24시간제 시 2자리·분 2자리·초 2자리를 뜻하는 HH:mm:ss, 18:04:15처럼). |
||
| Timestamp Format | Timestamp Format | Timestamp 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 epoch 이후의 밀리초 수로 가정해요. 지정한다면 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: 01/01/2017 18:04:15처럼). |
||
| Attribute Prefix | attribute_prefix |
이 속성이 설정되면 속성이 레코드에 추가될 때 속성 이름 앞에 접두사가 붙어요. | ||
| Field Name for Content | content_field_name |
내용을 가진 태그(예: <field>content</field>)가 스키마에서 중첩 레코드로 정의되면, 태그 이름은 레코드 이름으로, 이 속성의 값은 필드 이름으로 사용돼요. 내용을 가진 태그를 속성과 함께 파싱해야 한다면(예: <field attribute="123">content</field>), 태그를 레코드로 정의해야 해요. 이 경우 태그 이름은 레코드 이름으로, 이 속성의 값은 원본 내용을 담는 필드 이름으로 사용돼요. 속성 이름은 새 레코드 필드를 만드는 데 쓰이고, 그 필드의 내용은 속성 값이 돼요. 자세한 내용은 XMLReader 컨트롤러 서비스 문서의 'Additional Details…' 섹션을 참고하세요. |
||
| Parse XML Attributes | parse_xml_attributes |
true |
true, false |
'Schema Access Strategy'가 'Infer Schema'이고 이 속성이 true면 XML 속성이 파싱되어 새 필드로 레코드에 추가돼요. 스키마가 추론되는데 이 속성이 false면 XML 속성과 그 값은 무시돼요. |
| Expect Records as Array * | record_format |
false |
false, true, Use attribute 'xml.stream.is.array' |
이 속성은 리더가 FlowFile이 단일 Record로 구성될지, 아니면 "래퍼 요소"로 감싸인 일련의 Record로 구성될지를 정의해요. XML은 스트림에서 XML 문서 시리즈를 직접 읽는 방법을 제공하지 않으므로, 여러 XML 문서를 이어 붙인 뒤 전체 XML 블롭을 "래퍼 요소"로 감싸는 방식이 흔해요. 이 속성이 FlowFile이 단일 Record인지, 무시될 "래퍼 요소"를 가진 일련의 Record인지를 지정해 줘요. |
| Schema Inference Cache | schema-inference-cache |
스키마를 추론할 때 사용할 Schema Cache를 지정해요. 채워져 있지 않으면 매번 스키마를 추론해요. 반면 캐시를 지정하면 먼저 캐시를 확인하고, 적용 가능한 스키마를 찾으면 스키마를 추론하는 대신 그걸 사용해요. |
상태 관리 (State management)
이 구성 요소는 상태를 저장하지 않아요.
제한 (Restricted)
이 구성 요소는 제한되지 않아요.
시스템 리소스 고려 사항 (System Resource Considerations)
이 구성 요소는 시스템 리소스 고려 사항을 명시하지 않아요.
더 알아보기 (Learn more)
- OpenFlow 컨트롤러 서비스 목록 — OpenFlow 구성 요소 살펴보기