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)
이 컴포넌트는 시스템 리소스 고려 사항을 지정하지 않아요.