ProtobufList 형식
ProtobufList 형식
ProtobufList 형식은 Protobuf 형식과 유사하지만, 행이 고정 이름 "Envelope"의 메시지에 포함된 하위 메시지 시퀀스로 표현돼요. format_schema에 지정된 메시지 타입은 먼저 최상위 Envelope 메시지 내부의 중첩 타입으로 해석됩니다.
출처: 문서
본문
| Input | Output | Alias |
|---|---|---|
| ✔ | ✔ |
설명 (Description)
ProtobufList 형식은 Protobuf 형식과 유사하지만 행이 고정 이름 "Envelope"의 메시지에 포함된 하위 메시지 시퀀스로 표현됩니다.
사용 예시 (Example usage)
예를 들어:
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 파일은 다음과 같습니다:
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 메시지 내부의 중첩 타입으로 찾아서 해석됩니다. 거기서 일치하는 것을 찾지 못하면 — 스키마에 Envelope 메시지가 없거나, Envelope가 요청된 이름의 메시지를 포함하지 않거나 — 해당 이름의 최상위 메시지가 직접 사용됩니다.