> ## 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.

> يتناول بالتفصيل التنسيقات والمصادر ودلالات التسليم والمصادقة والميزات التجريبية التي يدعمها Kafka ClickPipes.

# مرجع

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            ميزة تجريبية. <u><a href="/docs/beta-and-experimental-features#experimental-features">تعرّف على المزيد.</a></u>
        </div>;
};

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<div id="supported-data-sources">
  ## مصادر البيانات المدعومة
</div>

| الاسم            | الشعار                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | النوع | الحالة | الوصف                                                                                         |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- | ------ | --------------------------------------------------------------------------------------------- |
| Apache Kafka     | <img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/oAyKMWqXNwIzArPG/images/integrations/logos/kafka.svg?fit=max&auto=format&n=oAyKMWqXNwIzArPG&q=85&s=9d976a12cdd932e5e3b29ebb2ead4fe2" alt="شعار Apache Kafka" width="32" data-path="images/integrations/logos/kafka.svg" />                                                                                           | متدفق | مستقر  | قم بإعداد ClickPipes وابدأ بإدخال البيانات المتدفقة من Apache Kafka إلى ClickHouse Cloud.     |
| Confluent Cloud  | <img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/SuhGaqX11zhHEe0p/images/integrations/logos/confluent.svg?fit=max&auto=format&n=SuhGaqX11zhHEe0p&q=85&s=8b7a4261908a5041ebcdd4330dec49e7" alt="شعار Confluent Cloud" width="32" data-path="images/integrations/logos/confluent.svg" />                                                          | متدفق | مستقر  | استفد من الإمكانات المشتركة لـ Confluent وClickHouse Cloud من خلال تكاملنا المباشر.           |
| Redpanda         | <img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/oAyKMWqXNwIzArPG/images/integrations/logos/logo_redpanda.png?fit=max&auto=format&n=oAyKMWqXNwIzArPG&q=85&s=0d2b4b02e1d80b4485af513054c02afd" alt="شعار Redpanda" width="32" data-path="images/integrations/logos/logo_redpanda.png" />                               | متدفق | مستقر  | قم بإعداد ClickPipes وابدأ بإدخال البيانات المتدفقة من Redpanda إلى ClickHouse Cloud.         |
| AWS MSK          | <img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/oAyKMWqXNwIzArPG/images/integrations/logos/msk.svg?fit=max&auto=format&n=oAyKMWqXNwIzArPG&q=85&s=2e5c4aea1d654cbb701fe62307f074c1" alt="شعار AWS MSK" width="32" data-path="images/integrations/logos/msk.svg" />                                                                                                                  | متدفق | مستقر  | قم بإعداد ClickPipes وابدأ بإدخال البيانات المتدفقة من AWS MSK إلى ClickHouse Cloud.          |
| Azure Event Hubs | <img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/SuhGaqX11zhHEe0p/images/integrations/logos/azure_event_hubs.svg?fit=max&auto=format&n=SuhGaqX11zhHEe0p&q=85&s=0f2f2b10b59778f60eedbd85f211ff16" alt="شعار Azure Event Hubs" width="32" data-path="images/integrations/logos/azure_event_hubs.svg" /> | متدفق | مستقر  | قم بإعداد ClickPipes وابدأ بإدخال البيانات المتدفقة من Azure Event Hubs إلى ClickHouse Cloud. |
| WarpStream       | <img src="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/amY-JDMREAaO7mx6/images/integrations/logos/warpstream.svg?fit=max&auto=format&n=amY-JDMREAaO7mx6&q=85&s=54e8a003c9eebe5b64214aa683f9b622" alt="شعار WarpStream" width="32" data-path="images/integrations/logos/warpstream.svg" />                                                       | متدفق | مستقر  | قم بإعداد ClickPipes وابدأ بإدخال البيانات المتدفقة من WarpStream إلى ClickHouse Cloud.       |

<div id="supported-data-formats">
  ## تنسيقات البيانات المدعومة
</div>

التنسيقات المدعومة هي:

* [JSON](/ar/guides/clickhouse/data-formats/json/intro)
* [AvroConfluent](/ar/reference/formats/Avro/AvroConfluent)
* [Protobuf](/ar/reference/formats/Protobuf/Protobuf)

<div id="supported-data-types">
  ## أنواع البيانات المدعومة
</div>

<div id="standard-types-support">
  ### الأنواع القياسية
</div>

أنواع بيانات ClickHouse القياسية التالية مدعومة حاليًا في ClickPipes:

* الأنواع الرقمية الأساسية - \[U]Int8/16/32/64 و Float32/64 و BFloat16
* أنواع الأعداد الصحيحة الكبيرة - \[U]Int128/256
* Decimal Types
* Boolean
* String
* FixedString
* Date و Date32
* DateTime و DateTime64 (مناطق زمنية UTC فقط)
* Enum8/Enum16
* معرّف UUID
* IPv4
* IPv6
* Time و Time64
* JSON
* جميع أنواع LowCardinality في ClickHouse
* Map بمفاتيح وقيم تستخدم أيًا من الأنواع المذكورة أعلاه (بما في ذلك Nullable)
* Tuple و Array بعناصر تستخدم أيًا من الأنواع المذكورة أعلاه (بما في ذلك Nullable، وبعمق مستوى واحد فقط)
* أنواع SimpleAggregateFunction (لوجهات AggregatingMergeTree أو SummingMergeTree)

<div id="variant-type-support">
  ### دعم نوع Variant
</div>

يدعم ClickPipes نوع Variant في الحالات التالية:

* اتحادات Avro. إذا كان مخطط Avro لديك يحتوي على `union` يضم عدة أنواع غير NULL، فسيستنتج ClickPipes
  نوع Variant المناسب. بخلاف ذلك، لا تكون أنواع Variant مدعومة في بيانات Avro.
* حقول JSON. يمكنك تحديد نوع Variant يدويًا (مثل `Variant(String, Int64, DateTime)`) لأي حقل JSON
  في مصدر تدفق البيانات. لا تُدعَم الأنواع الفرعية المعقدة (arrays/maps/tuples). بالإضافة إلى ذلك، ونظرًا للطريقة التي يحدد بها ClickPipes
  النوع الفرعي الصحيح من Variant الذي يجب استخدامه، لا يمكن استخدام أكثر من نوع عدد صحيح واحد أو نوع DateTime واحد في تعريف Variant — على سبيل المثال، `Variant(Int64, UInt32)` غير مدعوم.

<div id="json-type-support">
  ### دعم نوع JSON
</div>

تدعم ClickPipes نوع JSON في الحالات التالية:

* يمكن دائمًا إسناد حقول Avro Record وProtobuf Message إلى عمود JSON.
* يمكن إسناد حقول Avro String وBytes إلى عمود JSON إذا كان حقل Avro يحتوي فعليًا على كائنات JSON مخزنة كسلاسل نصية.
* يمكن إسناد أنواع Protobuf String وBytes إلى عمود JSON إذا كان حقل Protobuf يحتوي فعليًا على كائنات JSON مخزنة كسلاسل نصية.
* يمكن إسناد حقول JSON التي تكون دائمًا كائنات JSON إلى عمود JSON في الوجهة.

لاحظ أنك ستحتاج إلى تغيير عمود الوجهة يدويًا إلى نوع JSON المطلوب، بما في ذلك أي مسارات ثابتة أو متخطاة.

<div id="avro">
  ### Avro
</div>

<div id="supported-avro-data-types">
  #### أنواع بيانات Avro المدعومة
</div>

تدعم ClickPipes جميع أنواع Avro البدائية والمركبة، وجميع أنواع Avro المنطقية باستثناء `local-timestamp-millis` و`local_timestamp-micros`. تُحوَّل أنواع Avro `record` إلى Tuple، وأنواع `array` إلى Array، و`map` إلى Map (بمفاتيح نصية فقط). وبوجه عام، تتوفر التحويلات المذكورة [هنا](/ar/concepts/features/interfaces/schema-inference#avro). نوصي باستخدام المطابقة الدقيقة للأنواع الرقمية في Avro، لأن ClickPipes لا تتحقق من تجاوز السعة أو فقدان الدقة عند تحويل الأنواع.
وبدلاً من ذلك، يمكن إدراج جميع أنواع Avro في عمود `String`، وستُمثَّل في هذه الحالة كسلسلة JSON صالحة.

<div id="nullable-types-and-avro-unions">
  #### أنواع Nullable وUnion في Avro
</div>

تُعرَّف أنواع Nullable في Avro باستخدام مخطط Union بالشكل `(T, null)` أو `(null, T)`، حيث إن T هو نوع Avro الأساسي. أثناء استنتاج المخطط، تُربَط أنواع Union هذه بعمود "Nullable" في ClickHouse. لاحظ أن ClickHouse لا يدعم الأنواع
`Nullable(Array)` و`Nullable(Map)` و`Nullable(Tuple)`. ستُحوَّل اتحادات null في Avro لهذه الأنواع إلى إصدارات غير Nullable (وتُحوَّل أنواع Avro Record إلى named Tuple في ClickHouse). وستُدرَج قيم Avro "nulls" لهذه الأنواع على النحو التالي:

* Array فارغة لصفيف Avro null
* Map فارغة لـ Avro Map null
* named Tuple تحتوي على جميع القيم الافتراضية/الصفرية لـ Avro Record null

<div id="protobuf">
  ### Protobuf
</div>

<div id="supported-protobuf-data-types">
  #### أنواع بيانات Protobuf المدعومة
</div>

يدعم ClickPipes جميع أنواع Protobuf 2 و3، باستثناء النوع `group` في proto 2، وهو نوع أُعلن عن إهماله منذ وقت طويل. وتستخدم تحويلات الأنواع الأساسية
عمليات التحويل التالية:

<Note>
  تتوفّر أيضًا متغيرات `Array` و`Map` و`Nullable` لجميع الأنواع الأساسية.
</Note>

| نوع Protobuf                  | نوع ClickHouse |
| ----------------------------- | -------------- |
| `bool`                        | `UInt8`        |
| `float`                       | `Float32`      |
| `double`                      | `Float64`      |
| `int32`, `sint32`, `sfixed32` | `Int32`        |
| `int64`, `sint64`, `sfixed64` | `Int64`        |
| `uint32`, `fixed32`           | `UInt32`       |
| `uint64`, `fixed64`           | `UInt64`       |
| `string`, `bytes`             | `String`       |
| `enum`                        | `Enum`         |
| `repeated T`                  | `Array(T)`     |
| `message`                     | `Tuple`        |

<Tip>
  بالنسبة إلى الأنواع الرقمية، يُوصى باستخدام تطابق تام لتجنّب overflow أو فقدان precision.
</Tip>

الأنواع [الشائعة المعروفة](https://protobuf.dev/reference/protobuf/google.protobuf/) التالية مدعومة أيضًا:

| النوع الشائع المعروف                                                                         | نوع ClickHouse           |
| -------------------------------------------------------------------------------------------- | ------------------------ |
| `google.protobuf.Timestamp`                                                                  | `DateTime`, `DateTime64` |
| `google.protobuf.Duration`                                                                   | `Time`, `Time64`         |
| `google.protobuf.StringValue`, `google.protobuf.BytesValue`                                  | `Nullable(String)`       |
| `google.protobuf.Int32Value`, `google.protobuf.SInt32Value`, `google.protobuf.SFixed32Value` | `Nullable(Int32)`        |
| `google.protobuf.Int64Value`, `google.protobuf.SInt64Value`, `google.protobuf.SFixed64Value` | `Nullable(Int64)`        |
| `google.protobuf.UInt32Value`, `google.protobuf.Fixed32Value`                                | `Nullable(UInt32)`       |
| `google.protobuf.UInt64Value`, `google.protobuf.Fixed64Value`                                | `Nullable(UInt64)`       |
| `google.protobuf.FloatValue`                                                                 | `Nullable(Float32)`      |
| `google.protobuf.DoubleValue`                                                                | `Nullable(Float64)`      |
| `google.protobuf.BoolValue`                                                                  | `Nullable(UInt8)`        |

<div id="protobuf-one-ofs">
  #### ‏Protobuf `oneof`
</div>

أثناء استنتاج المخطط، تُربَط حقول Protobuf `oneof` افتراضيًا بـ `Tuple` مُسمّى، بحيث لا يحمل قيمة غير افتراضية سوى حقل واحد كحد أقصى.
ويمكن أيضًا ربط هذه الحقول تلقائيًا بعمود `Variant`، بحيث تأخذ القيمة النشطة نوع الحقل المكوّن الذي جرى تعيينه.
وبدلاً من ذلك، يمكن ربط كل حقل مكوّن يدويًا بعمود ClickHouse خاص به؛ ونظرًا إلى أن حقول `oneof` متنافية فيما بينها، فلن يُملأ لكل سجل سوى عمود واحد.

<div id="protobuf-message-lists">
  #### قوائم الرسائل
</div>

إذا كان مخطط Protobuf المعرّف لـ ClickPipe على المستوى الأعلى يحتوي على حقل متكرر واحد يكون بحد ذاته رسالة protobuf، فسيعتمد استنتاج المخطط وتعيين الأعمدة على حقل الرسالة "المضمَّنة". وستُعالَج رسالة Kafka على أنها قائمة من هذه الرسائل، كما ستُفكَّك رسالة Kafka واحدة إلى عدة صفوف في ClickHouse.

<div id="kafka-virtual-columns">
  ## الأعمدة الافتراضية في Kafka
</div>

الأعمدة الافتراضية التالية مدعومة لمصادر البيانات المتدفقة المتوافقة مع Kafka. عند إنشاء وجهة جديدة، يمكن إضافة الأعمدة الافتراضية إلى الجدول الهدف باستخدام الزر `Add Column`.

| الاسم            | الوصف                                       | نوع البيانات الموصى به |
| ---------------- | ------------------------------------------- | ---------------------- |
| `_key`           | مفتاح رسالة Kafka                           | `String`               |
| `_timestamp`     | الطابع الزمني في Kafka (بدقة الملّي ثانية)  | `DateTime64(3)`        |
| `_partition`     | قسم Kafka                                   | `Int32`                |
| `_offset`        | إزاحة Kafka                                 | `Int64`                |
| `_topic`         | موضوع Kafka                                 | `String`               |
| `_header_keys`   | مصفوفة موازية من المفاتيح في ترويسات السجل  | `Array(String)`        |
| `_header_values` | مصفوفة موازية من الترويسات في ترويسات السجل | `Array(String)`        |
| `_raw_message`   | رسالة Kafka الكاملة                         | `String`               |

لاحظ أن العمود `_raw_message` يُوصى به فقط لبيانات JSON.
وفي حالات الاستخدام التي تكون فيها سلسلة JSON فقط هي المطلوبة (مثل استخدام دوال ClickHouse [`JsonExtract*`](/ar/reference/functions/regular-functions/json-functions#jsonextract-functions) من أجل
ملء عرض مادي لاحق)، قد يؤدي حذف جميع الأعمدة "غير الافتراضية" إلى تحسين أداء ClickPipes.
