csvfile
CSV 파일에서 데이터를 조회합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 클러스터 관리자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 미지원 |
문법
csvfile [offset=INT] [limit=INT] [tab={t|f}] [strict={t|f}] [maxcol=INT] [rest={t|f}] [cs=STR] PATH
옵션
offset=INT- 건너뛸 레코드 수. 헤더 행 이후부터 계산합니다.
limit=INT- 가져올 최대 레코드 수
tab={t|f}t지정 시 구분자로 탭 문자를 사용합니다. 생략하거나f지정 시 쉼표(,)를 구분자로 사용합니다.strict={t|f}t지정 시 RFC 4180 기준으로 엄격하게 파싱합니다.maxcol=INT- 최대 컬럼 수. 이 수를 초과하는 컬럼은 필드를 생성하지 않습니다.
rest={t|f}t지정 시maxcol을 초과하는 컬럼을_rest필드에 기록합니다.cs=STR- CSV 파일의 문자 인코딩 (기본값:
utf-8)
대상
PATH- CSV 파일 경로. 와일드카드(
*)를 사용하여 여러 파일을 지정할 수 있습니다. 파일 확장자가.gz이면 gzip 압축을 자동으로 해제합니다.
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
| (헤더 컬럼) | 문자열 | CSV 헤더에 정의된 필드 이름과 해당 값 |
| _file | 문자열 | 원본 파일 이름 |
| _rest | 문자열 | maxcol 초과 컬럼 (rest=t 옵션 사용 시에만 출력됨) |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 10802 | - | 파일 경로가 지정되지 않은 경우 |
| 10800 | - | 파일이 존재하지 않거나 읽을 수 없는 경우 |
| 10801 | - | 상위 디렉터리가 존재하지 않거나 읽을 수 없는 경우 |
| 10803 | - | 파일 접근이 거부된 경우 |
설명
csvfile 명령어는 지정된 CSV 파일을 읽어 각 행을 레코드로 반환합니다. 파일의 첫 번째 줄을 헤더로 인식하여 필드 이름을 자동으로 지정합니다.
헤더에 정의된 컬럼 수보다 데이터 행의 컬럼이 많은 경우, 초과 컬럼은 column0, column1, ... 형태의 필드 이름으로 반환됩니다. maxcol 옵션과 rest=t 옵션을 함께 사용하면 초과 컬럼을 _rest 필드에 모아서 반환할 수 있습니다.
BOM(Byte Order Mark)이 포함된 파일을 자동으로 인식합니다.
이 명령어는 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요하며, 접근 가능한 파일 경로가 제한됩니다. 자세한 내용은 파일 접근 제한을 참고하세요.
사용 예
각 사용 예의 파일 경로는 ALLOWED_FILE_SCAN_PATHS 설정에 포함되어 있다고 가정합니다.
-
CSV 파일 조회
csvfile /opt/logpresso/data/sample.csv지정된 CSV 파일의 전체 데이터를 조회합니다.
-
탭 구분 파일을 최대 100건 조회
csvfile tab=t limit=100 /opt/logpresso/data/sample.tsv탭 문자를 구분자로 사용하여 최대 100건의 레코드를 조회합니다.
-
EUC-KR 인코딩 파일 조회
csvfile cs=euc-kr /opt/logpresso/data/legacy.csvEUC-KR로 인코딩된 CSV 파일을 조회합니다.
-
최대 컬럼 수 제한 및 초과 컬럼 수집
csvfile maxcol=5 rest=t /opt/logpresso/data/sample.csv컬럼을 5개까지만 파싱하고, 초과 컬럼은
_rest필드에 모아서 반환합니다.
호환성
csvfile 명령어는 소나 4.0 이전 버전부터 제공되었습니다. 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요합니다.