说明
CapnProto 格式是一种二进制消息格式,类似于 Protocol Buffers 和 Thrift,但不同于 JSON 或 MessagePack。
CapnProto 消息具有严格的类型约束,且不是自描述的,这意味着它们需要外部 schema 描述。schema 会在运行时应用,并按每个查询缓存。
另请参见 Format Schema。
数据类型匹配
INSERT 和 SELECT 查询中与 ClickHouse 数据类型 的对应关系。
- 整数类型在输入和输出时可以相互转换。
- 如需在 CapnProto 格式中使用
Enum,请使用 format_capn_proto_enum_comparising_mode 设置。 - 数组可以嵌套,其参数也可以是
Nullable类型。Tuple和Map类型同样也可以嵌套。
使用示例
插入和查询数据
schema.capnp 的内容如下:
CapnProto 格式保存到文件中:
使用自动生成的 schema
CapnProto schema,仍然可以借助自动生成的 schema,以 CapnProto 格式 输出或输入数据。
例如:
格式设置
format_capn_proto_use_autogenerated_schema 默认已启用,并且在未设置 format_schema 时生效。
你也可以在输入/输出时,使用设置 output_format_schema 将自动生成的 schema 保存到文件中。
例如:
CapnProto schema 将保存到文件 path/to/schema/schema.capnp 中。