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 설정에 포함되어 있다고 가정합니다.

  1. CSV 파일 조회

    csvfile /opt/logpresso/data/sample.csv
    

    지정된 CSV 파일의 전체 데이터를 조회합니다.

  2. 탭 구분 파일을 최대 100건 조회

    csvfile tab=t limit=100 /opt/logpresso/data/sample.tsv
    

    탭 문자를 구분자로 사용하여 최대 100건의 레코드를 조회합니다.

  3. EUC-KR 인코딩 파일 조회

    csvfile cs=euc-kr /opt/logpresso/data/legacy.csv
    

    EUC-KR로 인코딩된 CSV 파일을 조회합니다.

  4. 최대 컬럼 수 제한 및 초과 컬럼 수집

    csvfile maxcol=5 rest=t /opt/logpresso/data/sample.csv
    

    컬럼을 5개까지만 파싱하고, 초과 컬럼은 _rest 필드에 모아서 반환합니다.

호환성

csvfile 명령어는 소나 4.0 이전 버전부터 제공되었습니다. 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요합니다.