CSVReader

CSVReader

CSV 형식의 데이터를 파싱해 CSV 파일의 각 행을 별도의 레코드로 반환하는 OpenFlow 컨트롤러 서비스예요.

출처: 문서

본문

기능 — 일반 공개(Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP 상용(Commercial) 지역의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS 상용 지역의 모든 계정에서 사용할 수 있어요.

설명 (Description)

CSV 형식의 데이터를 파싱해 CSV 파일의 각 행을 별도의 레코드로 반환해요. 이 리더는 '헤더 줄'이 있으면 CSV의 첫 줄을 기반으로 스키마를 추론하거나, 값을 해석하기 위한 명시적 스키마를 제공할 수 있어요. 자세한 문서는 Controller Service의 Usage를 참고하세요.

태그 (Tags)

comma, csv, delimited, parse, reader, record, row, separated, values

속성 (Properties)

아래 목록에서 필수 속성은 별표(*)로 표시돼요. 그 외 속성은 선택 사항으로 간주돼요. 표에는 기본값과 해당 속성이 NiFi Expression Language를 지원하는지 여부도 함께 표시돼요.

표시 이름 (Display Name) API 이름 (API Name) 기본값 (Default Value) 허용 값 (Allowable Values) 설명 (Description)
Allow Duplicate Header Names Allow Duplicate Header Names true true, false 중복 헤더 이름을 허용할지 여부예요. 헤더 이름은 대소문자를 구분하므로 예를 들어 'name'과 'Name'은 별개의 필드로 취급돼요. 중복 헤더 이름의 처리는 CSV 파서에 따라 달라요(해당되는 경우): * Apache Commons CSV - 중복 헤더는 열 데이터가 오른쪽으로 '밀려나고' 'unknown_field_index_X'(X는 CSV 열 인덱스 번호)라는 새 필드가 생성돼요. * Jackson CSV - 중복 헤더는 제거되고 필드 값은 가장 오른쪽 중복 CSV 열의 값이 돼요. * FastCSV - 중복 헤더는 제거되고 필드 값은 가장 왼쪽 중복 CSV 열의 값이 돼요.
CSV Format * CSV Format custom Custom Format, RFC 4180, Microsoft Excel, Tab-Delimited, MySQL Format, Informix Unload, Informix Unload Escape Disabled CSV 데이터가 어떤 '형식'인지, 또는 커스텀 형식을 사용할지 여부를 지정해요.
Character Set * Character Set UTF-8 CSV 파일을 인코딩/디코딩하는 데 사용되는 문자 인코딩이에요.
Comment Marker Comment Marker 주석의 시작을 나타내는 데 사용되는 문자예요. 이 문자로 시작하는 모든 줄은 무시돼요.
Date Format Date Format Date 필드를 읽거나 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 Date 필드는 epoch(1970년 1월 1일 GMT 자정) 이후의 밀리초 수로 간주돼요. 지정하면 값은 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요 (예: 두 자리 월, 두 자리 일, 네 자리 연도를 '/'로 구분한 MM/dd/yyyy, 예: 01/01/2017).
Escape Character * Escape Character CSV Parser에 특정 의미를 갖는 문자를 이스케이프하는 데 사용되는 문자예요. 속성이 Expression Language로 지정되었지만 런타임에 표현식이 잘못된 Escape Character로 평가되면 건너뛰고 기본 Escape Character가 사용돼요. 빈 문자열로 설정하면 이스케이프 문자를 사용하지 않는다는 뜻이에요.
Ignore CSV Header Column Names Ignore CSV Header Column Names false true, false CSV의 첫 줄이 헤더이고 구성된 스키마가 헤더 줄의 필드 이름과 일치하지 않을 때 Reader가 필드를 해석하는 방식을 제어해요. 이 속성이 true면 각 열에 매핑되는 필드 이름은 구성된 스키마에 의해서만 결정되고 스키마에 없는 필드는 무시돼요. false면 CSV 헤더에서 찾은 필드 이름이 필드 이름으로 사용돼요.
Null String Null String CSV의 값으로 존재할 때 리터럴 값을 사용하는 대신 null 필드로 간주해야 하는 문자열을 지정해요.
Quote Character * Quote Character " 이스케이프 문자를 사용하지 않아도 되도록 값을 따옴표로 묶는 데 사용되는 문자예요. 속성이 Expression Language로 지정되었지만 런타임에 표현식이 잘못된 Quote Character로 평가되면 건너뛰고 기본 Quote Character가 사용돼요.
Record Separator * Record Separator n CSV Record를 구분하는 데 사용할 문자를 지정해요.
Schema Access Strategy * Schema Access Strategy infer-schema Use 'Schema Name' Property, Use 'Schema Text' Property, Schema Reference Reader, Use String Fields From Header, Infer Schema 데이터를 해석하는 데 사용할 스키마를 얻는 방법을 지정해요.
Schema Branch Schema Branch 스키마 레지스트리 속성에서 스키마를 조회할 때 사용할 브랜치 이름을 지정해요. 선택한 스키마 레지스트리가 브랜치를 지원하지 않으면 이 값은 무시돼요.
Schema Name Schema Name ${schema.name} 스키마 레지스트리 속성에서 조회할 스키마의 이름을 지정해요.
Schema Reference Reader * Schema Reference Reader 스키마 참조 식별자(Schema Reference Identifier)를 결정하기 위해 FlowFile 속성이나 콘텐츠를 읽는 역할을 담당하는 서비스 구현이에요.
Schema Registry Schema Registry 스키마 레지스트리에 사용할 컨트롤러 서비스를 지정해요.
Schema Text Schema Text ${avro.schema} Avro 형식 스키마의 텍스트예요.
Schema Version Schema Version 스키마 레지스트리에서 조회할 스키마의 버전을 지정해요. 지정하지 않으면 최신 버전의 스키마를 가져와요.
Time Format Time Format Time 필드를 읽거나 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 Time 필드는 epoch(1970년 1월 1일 GMT 자정) 이후의 밀리초 수로 간주돼요. 지정하면 값은 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요 (예: 24시간 형식의 두 자리 시, 두 자리 분, 두 자리 초를 ':'로 구분한 HH:mm:ss, 예: 18:04:15).
Timestamp Format Timestamp Format Timestamp 필드를 읽거나 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 Timestamp 필드는 epoch(1970년 1월 1일 GMT 자정) 이후의 밀리초 수로 간주돼요. 지정하면 값은 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요 (예: 두 자리 월, 두 자리 일, 네 자리 연도를 '/'로 구분하고 24시간 형식의 두 자리 시, 두 자리 분, 두 자리 초를 ':'로 구분한 MM/dd/yyyy HH:mm:ss, 예: 01/01/2017 18:04:15).
Treat First Line as Header * Treat First Line as Header false true, false CSV의 첫 줄을 헤더로 간주할지 또는 레코드로 간주할지 여부를 지정해요. Schema Access Strategy가 열이 헤더에 정의되어야 한다고 나타내면, 헤더가 항상 존재해야 하고 레코드로 처리되지 않으므로 이 속성은 무시돼요. 그 외에는 'true'면 CSV 데이터의 첫 줄이 레코드로 처리되지 않고, 'false'면 첫 줄이 레코드로 해석돼요.
Trim Fields * Trim Fields true true, false 필드의 시작과 끝에서 공백을 제거할지 여부예요.
Trim double quote * Trim double quote true true, false 시작과 끝의 이중 따옴표를 잘라낼지 여부예요. 예를 들어 trim을 사용하면 '"test"'가 'test'로 파싱되고, trim을 사용하지 않으면 '"test"'로 파싱돼요. 'false'로 설정하면 RFC-4180을 완전히 준수한다는 뜻이에요. 기본값은 true로, trim이 적용돼요.
Value Separator * Value Separator , CSV Record에서 값/필드를 구분하는 데 사용되는 문자예요. 속성이 Expression Language로 지정되었지만 런타임에 표현식이 잘못된 Value Separator로 평가되면 건너뛰고 기본 Value Separator가 사용돼요.
CSV Parser * csv-reader-csv-parser commons-csv Apache Commons CSV, Jackson CSV, FastCSV CSV 레코드를 읽는 데 사용할 파서를 지정해요. 참고: 서로 다른 파서는 기능의 서로 다른 부분집합을 지원할 수 있고 성능 수준도 다를 수 있어요.

상태 관리 (State management)

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

제한 (Restricted)

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

시스템 리소스 고려 사항 (System Resource Considerations)

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

더 알아보기 (Learn more)