メインコンテンツへスキップ
メインコンテンツへスキップ

ProtobufList

Not supported in ClickHouse Cloud
入力出力エイリアス

説明

ProtobufList フォーマットは Protobuf フォーマットと似ていますが、行は固定名「Envelope」を持つメッセージ内に含まれるサブメッセージの列として表現されます。

使用例

例えば、次のようにします。

SELECT * FROM test.table FORMAT ProtobufList SETTINGS format_schema = 'schemafile:MessageType'
cat protobuflist_messages.bin | clickhouse-client --query "INSERT INTO test.table FORMAT ProtobufList SETTINGS format_schema='schemafile:MessageType'"

ファイル schemafile.proto は次のような内容です:

syntax = "proto3";
message Envelope {
  message MessageType {
    string name = 1;
    string surname = 2;
    uint32 birthDate = 3;
    repeated string phoneNumbers = 4;
  };
  MessageType row = 1;
};

format_schema で指定されたメッセージ型は、まず最上位の Envelope メッセージ内のネストされた型として探され、解決されます。そこで一致が見つからない場合、つまり schema に Envelope メッセージが存在しないか、Envelope に指定された名前のメッセージが含まれていない場合は、その名前の最上位メッセージが直接使用されます。

フォーマット設定