> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق تنسيق ProtobufList

# ProtobufList

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            غير مدعوم في ClickHouse Cloud
        </div>;
};

| المدخل | المخرج | الاسم المستعار |
| ------ | ------ | -------------- |
| ✔      | ✔      |                |

<div id="description">
  ## الوصف
</div>

تنسيق `ProtobufList` مشابه لتنسيق [`Protobuf`](/ar/reference/formats/Protobuf/Protobuf)، لكن تُمثَّل الصفوف كتسلسل من الرسائل الفرعية المضمَّنة داخل رسالة ذات اسم ثابت هو "Envelope".

<div id="example-usage">
  ## مثال للاستخدام
</div>

على سبيل المثال:

```sql theme={null}
SELECT * FROM test.table FORMAT ProtobufList SETTINGS format_schema = 'schemafile:MessageType'
```

```bash theme={null}
cat protobuflist_messages.bin | clickhouse-client --query "INSERT INTO test.table FORMAT ProtobufList SETTINGS format_schema='schemafile:MessageType'"
```

حيث يكون الملف `schemafile.proto` كما يلي:

```capnp title="schemafile.proto" theme={null}
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` لا تتضمن رسالة بالاسم المطلوب — فتُستخدم مباشرةً الرسالة من المستوى الأعلى التي تحمل ذلك الاسم.

<div id="format-settings">
  ## إعدادات التنسيق
</div>
