الانتقال إلى المحتوى الرئيسي
المدخلالمخرجالاسم المستعار

الوصف

تنسيق 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.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 لا تتضمن رسالة بالاسم المطلوب — فتُستخدم مباشرةً الرسالة من المستوى الأعلى التي تحمل ذلك الاسم.

إعدادات التنسيق

آخر تعديل في ٢٩ يونيو ٢٠٢٦