XMLReader

XMLReader

XML 내용을 읽어 Record 객체를 만드는 리더예요. 레코드는 XML 데이터의 두 번째 레벨에, 바깥쪽 루트 태그 안에 들어 있는 것으로 기대해요.

출처: Snowflake 문서 — XMLReader

본문

설명

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)