JsonTreeReader

JsonTreeReader (JSON 트리 리더)

JSON을 개별 Record 객체로 파싱하는 Record Reader예요. 구조화된 스키마와 JSON 필드 간의 차이는 null 처리 또는 필드 건너뛰기로 처리돼요.

출처: 문서

본문

설명

JSON을 개별 Record 객체로 파싱해요. 이 리더는 각 레코드가 잘 구성된 JSON일 것으로 기대하지만, FlowFile의 콘텐츠는 흔한 'JSON-per-line' 형식처럼 잘 구성된 JSON 배열 또는 JSON 객체(사이에 선택적 공백 포함)가 여럿 이어진 형태일 수 있어요. 배열을 만나면 그 배열의 각 요소가 별도의 레코드로 처리돼요. 설정된 스키마에 JSON에 없는 필드가 있으면 null 값이 사용돼요. JSON에 스키마에 없는 필드가 있으면 그 필드는 건너뛰어져요. 자세한 내용과 예시는 Controller Service의 사용 방법(Usage)을 참고하세요.

태그

json, parser, reader, record, tree

속성 (Properties)

아래 목록에서 필수 속성은 별표(*)로 표시했어요. 그 외 속성은 선택 사항이고, 표에는 기본값과 NiFi Expression Language 지원 여부도 함께 나와 있어요.

표시 이름 API 이름 기본값 허용 값 설명
Allow Comments * Allow Comments false true false JSON 문서를 파싱할 때 주석을 허용할지 여부예요.
Date Format Date Format Date 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 Date 필드는 epoch 이후 밀리초 수로 간주돼요. 지정하면 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: MM/dd/yyyy, 예: 01/01/2017).
Max String Length * Max String Length 20 MB JSON 문서를 파싱할 때 문자열 값의 허용 최대 길이예요.
Schema Access Strategy * Schema Access Strategy infer-schema Infer Schema, 'Schema Name' Property, 'Schema Text' Property, Schema Reference Reader 데이터 해석에 사용할 스키마를 얻는 방법을 지정해요.
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 형식과 일치해야 해요(예: HH:mm:ss, 예: 18:04:15).
Timestamp Format Timestamp Format Timestamp 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 millisecond since epoch으로 간주돼요. 지정하면 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: MM/dd/yyyy HH:mm:ss, 예: 01/01/2017 18:04:15).
Schema Application Strategy * schema-application-strategy SELECTED_PART Whole JSON, Selected Part 스키마가 전체 JSON에 대해 정의되는지, "Starting Field Name"부터 시작하는 선택된 부분에 대해 정의되는지 지정해요.
Schema Inference Cache schema-inference-cache 스키마를 추론할 때 사용할 Schema Cache를 지정해요. 채우지 않으면 매번 스키마를 추론해요. 캐시를 지정하면 먼저 캐시를 확인하고 적용 가능한 스키마를 찾으면 추론 대신 그걸 사용해요.
Starting Field Name starting-field-name 처리를 시작할 주어진 중첩 JSON 필드(배열 또는 객체)로 건너뜁니다.
Starting Field Strategy * starting-field-strategy ROOT_NODE Root Node, Nested Field 루트 노드 또는 지정된 중첩 노드에서 처리를 시작할지 지정해요.

상태 관리

이 컴포넌트는 상태를 저장하지 않아요.

제한 사항 (Restricted)

이 컴포넌트는 제한되지 않아요.

시스템 리소스 고려 사항

이 컴포넌트는 시스템 리소스 고려 사항을 지정하지 않아요.

더 알아보기 (Learn more)