메인 콘텐츠로 건너뛰기

설명

쉼표로 구분된 값 포맷(RFC)입니다. 포맷할 때 각 행은 큰따옴표로 묶입니다. 문자열 안의 큰따옴표는 큰따옴표 2개가 연속된 형태로 출력됩니다. 문자 이스케이프에 대한 다른 규칙은 없습니다.
  • 날짜 및 날짜-시간 값은 큰따옴표로 묶입니다.
  • 숫자는 따옴표 없이 출력됩니다.
  • 값은 구분자 문자로 구분되며, 기본값은 ,입니다. 구분자 문자는 설정 format_csv_delimiter에서 정의됩니다.
  • 행은 Unix 줄바꿈 문자(LF)를 사용해 구분됩니다.
  • 배열은 CSV에서 다음과 같이 직렬화됩니다.
    • 먼저 배열은 TabSeparated 포맷에서와 같이 문자열로 직렬화됩니다.
    • 이렇게 생성된 문자열은 큰따옴표로 묶여 CSV에 출력됩니다.
  • CSV 형식에서 튜플은 별도의 컬럼으로 직렬화됩니다(즉, 튜플 내부의 중첩 구조는 사라집니다).
$ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV" < data.csv
기본적으로 구분자는 ,입니다. 자세한 내용은 format_csv_delimiter 설정을 참조하십시오.
파싱 시 모든 값은 따옴표가 있거나 없는 형태로 모두 파싱할 수 있습니다. 큰따옴표와 작은따옴표를 모두 지원합니다. 행도 따옴표 없이 구성할 수 있습니다. 이 경우 구분자 문자 또는 줄바꿈 문자(CR 또는 LF)가 나올 때까지 파싱됩니다. 하지만 RFC와 달리, 따옴표 없이 행을 파싱할 때는 앞뒤의 공백과 탭이 무시됩니다. 줄바꿈은 Unix(LF), Windows(CR LF), Mac OS Classic(CR LF) 타입을 지원합니다. NULLformat_csv_null_representation 설정에 따라 포맷됩니다(기본값은 \N입니다). 입력 데이터에서 ENUM 값은 이름 또는 id로 표현할 수 있습니다. 먼저 입력 값을 ENUM 이름과 일치시키려고 시도합니다. 일치하지 않고 입력 값이 숫자이면, 이 숫자를 ENUM id와 일치시키려고 시도합니다. 입력 데이터에 ENUM id만 포함되어 있다면 ENUM 파싱을 최적화하기 위해 input_format_csv_enum_as_number 설정을 활성화하는 것이 좋습니다.

예시 사용

포맷 설정

설정설명기본값비고
format_csv_delimiterCSV 데이터에서 구분자로 사용할 문자를 지정합니다.,
format_csv_allow_single_quotes작은따옴표로 둘러싼 문자열을 허용합니다.true
format_csv_allow_double_quotes큰따옴표로 둘러싼 문자열을 허용합니다.true
format_csv_null_representationCSV 형식에서 사용자 지정 NULL 표현을 사용합니다.\N
input_format_csv_empty_as_defaultCSV 입력의 빈 필드를 기본값으로 처리합니다.true복잡한 기본 표현식에는 input_format_defaults_for_omitted_fields도 함께 활성화해야 합니다.
input_format_csv_enum_as_numberCSV 형식에서 삽입되는 enum 값을 enum 인덱스로 처리합니다.false
input_format_csv_use_best_effort_in_schema_inferenceCSV 형식에서 스키마 추론 시 일부 조정과 휴리스틱을 사용합니다. 비활성화하면 모든 필드가 String으로 추론됩니다.true
input_format_csv_arrays_as_nested_csvCSV에서 배열을 읽을 때 요소가 중첩된 CSV로 직렬화된 뒤 문자열에 담겨 있다고 가정합니다.false
output_format_csv_crlf_end_of_linetrue로 설정하면 CSV 출력 형식의 줄 끝이 \n 대신 \r\n이 됩니다.false
input_format_csv_skip_first_lines데이터 시작 부분에서 지정한 줄 수만큼 건너뜁니다.0
input_format_csv_detect_headerCSV 형식에서 이름과 타입이 포함된 헤더를 자동으로 감지합니다.true
input_format_csv_skip_trailing_empty_lines데이터 끝의 빈 줄을 건너뜁니다.false
input_format_csv_trim_whitespaces따옴표로 묶지 않은 CSV 문자열의 공백과 탭을 제거합니다.true
input_format_csv_allow_whitespace_or_tab_as_delimiterCSV 문자열에서 공백이나 탭을 필드 구분자로 사용할 수 있도록 허용합니다.false
input_format_csv_allow_variable_number_of_columnsCSV 형식에서 가변적인 수의 컬럼을 허용하며, 추가 컬럼은 무시하고 누락된 컬럼에는 기본값을 사용합니다.false
input_format_csv_use_default_on_bad_values잘못된 값 때문에 CSV 필드 역직렬화에 실패한 경우 해당 컬럼에 기본값을 설정할 수 있도록 허용합니다.false
input_format_csv_try_infer_numbers_from_strings스키마 추론 중 문자열 필드에서 숫자를 추론하도록 시도합니다.false
마지막 수정일 2026년 6월 10일