Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ProtobufList

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의 내용은 다음과 같습니다:

schemafile.protocapnp
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에 요청한 이름의 메시지가 없는 경우 — 해당 이름의 최상위 메시지를 직접 사용합니다.

포맷 설정

Navigation