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