설명
CapnProto 포맷은 Protocol Buffers 포맷 및 Thrift와 유사한 바이너리 메시지 포맷이지만, JSON이나 MessagePack과는 다릅니다.
CapnProto 메시지는 엄격한 타입이 적용되며 자체적으로 구조를 설명하지 않으므로 외부 스키마 설명이 필요합니다. 스키마는 런타임에 적용되며 각 쿼리별로 캐시됩니다.
관련 항목: 포맷 스키마.
데이터 타입 매핑
INSERT 및 SELECT 쿼리에서 이 데이터 타입이 ClickHouse 데이터 타입과 어떻게 매핑되는지 보여줍니다.
- 정수 타입은 입출력 시 서로 변환할 수 있습니다.
- CapnProto 포맷에서
Enum을 사용하려면 format_capn_proto_enum_comparising_mode 설정을 사용하십시오. - 배열은 중첩할 수 있으며,
Nullable타입 값을 인수로 받을 수 있습니다.Tuple과Map타입도 중첩할 수 있습니다.
사용 예시
데이터 삽입 및 조회
schema.capnp 파일 내용은 다음과 같습니다:
CapnProto 포맷의 파일로 저장할 수 있습니다:
자동 생성 스키마 사용
CapnProto 스키마가 없어도 자동 생성 스키마를 사용해 CapnProto 포맷으로 데이터를 출력하거나 입력할 수 있습니다.
예시:
포맷 설정
format_capn_proto_use_autogenerated_schema는 기본적으로 활성화되어 있으며, format_schema가 설정되지 않은 경우에 적용됩니다.
설정 output_format_schema를 사용하면 입력/출력 시 자동 생성된 스키마를 파일에 저장할 수도 있습니다.
예시:
CapnProto 스키마는 path/to/schema/schema.capnp 파일에 저장됩니다.