입력 형식
INSERTSQL 문에 제공된 데이터 파싱File,URL,HDFS와 같은 파일 기반 테이블(file-backed tables)에서SELECT쿼리 수행- 딕셔너리 읽기
- Native 포맷은 가장 효율적인 입력 형식입니다. 가장 뛰어난 압축률, 가장 낮은 리소스 사용량, 최소한의 서버 측 처리 오버헤드를 제공합니다.
- 압축은 필수입니다 - LZ4는 CPU 비용을 거의 늘리지 않으면서 데이터 크기를 줄여 주고, ZSTD는 더 높은 압축률을 제공하는 대신 CPU 사용량이 더 필요합니다.
- 사전 정렬의 영향은 중간 정도입니다. ClickHouse가 이미 효율적으로 정렬하기 때문입니다.
- 배칭은 효율성을 크게 높입니다 - 배치가 클수록 삽입 오버헤드가 줄고 처리량이 향상됩니다.
출력 형식
SELECT쿼리 결과를 정렬- 파일 기반 테이블에
INSERT작업 수행
포맷 개요
포맷 스키마
format_schema 설정으로 지정합니다.
Cap'n Proto와 Protobuf 포맷 중 하나를 사용할 때는 이 설정을 반드시 지정해야 합니다.
포맷 스키마는 파일 이름과 그 파일에 있는 메시지 유형 이름을 콜론으로 구분해 결합한 형태이며,
예를 들어 schemafile.proto:MessageType와 같습니다.
파일에 해당 포맷의 표준 확장자(예: Protobuf의 .proto)가 있으면
이를 생략할 수 있으며, 이 경우 포맷 스키마는 schemafile:MessageType 형태가 됩니다.
대화형 모드에서 client를 통해 데이터를 입력하거나 출력하는 경우, 포맷 스키마에 지정된 파일 이름에는
절대 경로나 클라이언트의 현재 디렉터리를 기준으로 한 상대 경로를 사용할 수 있습니다.
batch mode에서 client를 사용하는 경우에는 보안상의 이유로 스키마 경로가 상대 경로여야 합니다.
HTTP 인터페이스를 통해 데이터를 입력하거나 출력하는 경우, 포맷 스키마에 지정된 파일 이름은
서버 구성의 format_schema_path에서 지정한 디렉터리에
있어야 합니다.
오류 건너뛰기
CSV, TabSeparated, TSKV, JSONEachRow, Template, CustomSeparated, Protobuf와 같은 일부 포맷은 파싱 오류가 발생하면 손상된 행을 건너뛰고 다음 행의 시작부터 파싱을 계속할 수 있습니다. input_format_allow_errors_num 및
input_format_allow_errors_ratio 설정을 참조하십시오.
제한 사항:
- 파싱 오류가 발생하면
JSONEachRow는 새 줄(또는 EOF)까지의 모든 데이터를 건너뛰므로, 오류 수를 올바르게 계산하려면 행이\n으로 구분되어야 합니다. Template와CustomSeparated는 다음 행의 시작을 찾기 위해 마지막 컬럼 뒤의 구분자와 행 사이의 구분자를 사용하므로, 둘 중 하나 이상이 비어 있지 않을 때만 오류 건너뛰기가 작동합니다.