説明
CapnProto フォーマットは、Protocol Buffers や Thrift に似たバイナリメッセージ形式ですが、JSON や MessagePack のような自己記述型の形式ではありません。
CapnProto メッセージは厳密に型付けされており、自己記述型ではないため、外部のスキーマ記述が必要です。スキーマはその場で適用され、各クエリごとにキャッシュされます。
関連項目: フォーマットスキーマ。
データ型の対応
INSERT および SELECT クエリにおいてそれらが ClickHouse のデータ型にどのように対応するかを示しています。
- 整数型は、入出力時に相互変換できます。
- CapnProto フォーマットで
Enumを扱うには、format_capn_proto_enum_comparising_mode 設定を使用してください。 Arrayはネストでき、引数として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ファイルに保存されます。