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

> وصّل مصادر بيانات Amazon Kinesis لديك إلى ClickHouse Cloud بسهولة.

# دمج Amazon Kinesis مع ClickHouse Cloud

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

يمكن نشر ClickPipes لـ Kinesis وإدارتها يدويًا عبر ClickPipes UI، وكذلك برمجيًا باستخدام [OpenAPI](/ar/integrations/clickpipes/programmatic-access/openapi) و[Terraform](/ar/integrations/clickpipes/programmatic-access/terraform).

<div id="prerequisite">
  ## المتطلبات الأساسية
</div>

يُفترض أنك اطّلعت على [مقدمة ClickPipes](/ar/integrations/clickpipes/home) وأعددت [بيانات اعتماد IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) أو [دور IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). اتبع [دليل الوصول المستند إلى الأدوار في Kinesis](/ar/integrations/clickpipes/kinesis/auth) للحصول على معلومات حول كيفية إعداد دور يعمل مع ClickHouse Cloud.

<div id="creating-your-first-clickpipe">
  ## إنشاء أول ClickPipe لك
</div>

1. انتقل إلى SQL Console لخدمة ClickHouse Cloud الخاصة بك.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_service.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=baa2a1fbd12dce262df262176b152c5f" alt="خدمة ClickPipes" size="lg" border width="1184" height="482" data-path="images/integrations/data-ingestion/clickpipes/cp_service.webp" />

2. حدِّد زر `Data Sources` من القائمة الجانبية اليسرى، ثم انقر على "Set up a ClickPipe"

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step0.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=5c127cc5de6fe7160371dce223f06b60" alt="تحديد الواردات" size="lg" border width="2606" height="790" data-path="images/integrations/data-ingestion/clickpipes/cp_step0.webp" />

3. حدِّد مصدر البيانات.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step1.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=277dd43baebb113db688a516f2d05f86" alt="تحديد نوع مصدر البيانات" size="lg" border width="2600" height="1890" data-path="images/integrations/data-ingestion/clickpipes/cp_step1.webp" />

4. املأ النموذج بإدخال اسم لـ ClickPipe ووصف (اختياري) ودور IAM أو بيانات الاعتماد، بالإضافة إلى تفاصيل الاتصال الأخرى.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step2_kinesis.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=0f9bac03cfe158fd3e23b177bfa28e3d" alt="املأ تفاصيل الاتصال" size="lg" border width="2266" height="1226" data-path="images/integrations/data-ingestion/clickpipes/cp_step2_kinesis.webp" />

5. حدِّد Kinesis Stream وإزاحة البدء. ستعرض واجهة المستخدم مستندًا نموذجيًا من المصدر المحدد (Kafka topic، وما إلى ذلك). يمكنك أيضًا تمكين Enhanced Fan-out لـ Kinesis streams لتحسين أداء ClickPipe واستقراره (يمكنك العثور على مزيد من المعلومات حول Enhanced Fan-out [هنا](https://aws.amazon.com/blogs/aws/kds-enhanced-fanout))

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step3_kinesis.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=b7fdb5c534b2d94469ba937f9e50bff9" alt="تعيين تنسيق البيانات والموضوع" size="lg" border width="2274" height="1540" data-path="images/integrations/data-ingestion/clickpipes/cp_step3_kinesis.webp" />

6. في الخطوة التالية، يمكنك اختيار ما إذا كنت تريد إدخال البيانات إلى ClickHouse table جديدة أو إعادة استخدام جدول موجود. اتبع الإرشادات الظاهرة على الشاشة لتعديل اسم الجدول والمخطط والإعدادات. ويمكنك رؤية معاينة فورية لتغييراتك في الجدول النموذجي في الأعلى.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step4a.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=b9f12f6c0d73035e1aada3ba43ebbad2" alt="تعيين الجدول والمخطط والإعدادات" size="lg" border width="2734" height="1328" data-path="images/integrations/data-ingestion/clickpipes/cp_step4a.webp" />

يمكنك أيضًا تخصيص الإعدادات المتقدمة باستخدام عناصر التحكم المتاحة

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step4a3.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=082d0fc28d1d2f8af315e1cfa3d1e0d2" alt="تعيين عناصر التحكم المتقدمة" size="lg" border width="1592" height="338" data-path="images/integrations/data-ingestion/clickpipes/cp_step4a3.webp" />

7. بدلاً من ذلك، يمكنك اختيار إدخال بياناتك في ClickHouse table موجودة. في هذه الحالة، ستتيح لك واجهة المستخدم تعيين الحقول من المصدر إلى حقول ClickHouse في جدول الوجهة المحددة.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step4b.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=5a68f31fdac86791722db4a0faa0f298" alt="استخدام جدول موجود" size="lg" border width="2738" height="1322" data-path="images/integrations/data-ingestion/clickpipes/cp_step4b.webp" />

8. أخيرًا، يمكنك تهيئة الأذونات لمستخدم ClickPipes الداخلي.

**الأذونات:** سينشئ ClickPipes مستخدمًا مخصصًا لكتابة البيانات إلى جدول الوجهة. يمكنك تحديد دور لهذا المستخدم الداخلي باستخدام دور مخصص أو أحد الأدوار المحددة مسبقًا:

* `Full access`: مع وصول كامل إلى الـ عنقود. قد يكون ذلك مفيدًا إذا كنت تستخدم عرض مُجسَّد أو Dictionary مع جدول الوجهة.
  * `Only destination table`: مع أذونات `INSERT` إلى جدول الوجهة فقط.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_step5.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=3a3657fe0c594a1217d71290f27d096a" alt="الأذونات" border width="2736" height="1318" data-path="images/integrations/data-ingestion/clickpipes/cp_step5.webp" />

9. بالنقر على "Complete Setup"، سيسجّل النظام ClickPipe الخاصة بك، وستتمكن من رؤيتها مدرجة في جدول الملخص.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_success.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=81d5e86ce8d7315d5463f45d54e4f53c" alt="إشعار النجاح" size="sm" border width="613" height="212" data-path="images/integrations/data-ingestion/clickpipes/cp_success.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_remove.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=c4cc25a78f1bdb4212d42cf8659bd02d" alt="إشعار الإزالة" size="lg" border width="2756" height="1320" data-path="images/integrations/data-ingestion/clickpipes/cp_remove.webp" />

يوفّر جدول الملخص عناصر تحكم لعرض بيانات نموذجية من المصدر أو من جدول الوجهة في ClickHouse

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_destination.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=186557ea6d5b5189f972399519a60165" alt="عرض الوجهة" size="lg" border width="2758" height="1316" data-path="images/integrations/data-ingestion/clickpipes/cp_destination.webp" />

وكذلك عناصر تحكم لإزالة ClickPipe وعرض ملخص لمهمة الإدخال.

<Image img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/Qdrmbc1T54ihl0_n/images/integrations/data-ingestion/clickpipes/cp_overview.webp?fit=max&auto=format&n=Qdrmbc1T54ihl0_n&q=85&s=1dfc009ce729fb48f46e3e7cd6c83581" alt="عرض النظرة العامة" size="lg" border width="3436" height="1076" data-path="images/integrations/data-ingestion/clickpipes/cp_overview.webp" />

10. **تهانينا!** لقد أعددت أول ClickPipe لك بنجاح. إذا كانت هذه ClickPipe من نوع streaming، فستظل تعمل باستمرار، وتُدخل البيانات في الوقت الفعلي من مصدر البيانات البعيد. وإلا فستُدخل الدفعة ثم تكتمل.

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

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

* [JSON](/ar/reference/formats/JSON/JSON)

<div id="compression">
  ## الضغط
</div>

يكتشف ClickPipes for Kinesis السجلات المضغوطة ويفك ضغطها تلقائيًا. وعلى عكس Kafka، حيث تتولى مكتبة العميل فك الضغط تلقائيًا وبشفافية، يرسل Kinesis بايتات خام — ويتولى ClickPipes هذه المهمة نيابةً عنك من دون الحاجة إلى أي إعدادات.

ترميزات الضغط التالية مدعومة:

* **gzip**
* **zstd**
* **lz4**
* **snappy** (تنسيق مؤطر)

يُكتشف الضغط تلقائيًا من خلال البايتات السحرية في كل سجل. وإذا لم يُعثر على توقيع ضغط معروف، فسيُعامَل السجل على أنه غير مضغوط. كما يظهر نوع الضغط المكتشَف أثناء استنتاج المخطط، بحيث تعرض معاينة بيانات العينة في UI البيانات المفكوكة الضغط بشكل صحيح.

<Note>
  يُعد الاكتشاف التلقائي آمنًا للتنسيقات النصية مثل JSON وCSV، لأن محارف ASCII القابلة للطباعة لن تتطابق أبدًا مع البايتات السحرية الخاصة بالضغط.
</Note>

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

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

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

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

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

يمكنك تحديد نوع Variant يدويًا (مثل `Variant(String, Int64, DateTime)`) لأي حقل JSON
في تدفق بيانات المصدر. ونظرًا إلى الطريقة التي يحدد بها ClickPipes النوع الفرعي الصحيح ضمن Variant لاستخدامه، لا يمكن استخدام أكثر من نوع عدد صحيح واحد أو نوع DateTime واحد
في تعريف Variant — على سبيل المثال، `Variant(Int64, UInt32)` غير مدعوم.

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

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

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

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

| الاسم              | الوصف                                                    | نوع البيانات الموصى به |
| ------------------ | -------------------------------------------------------- | ---------------------- |
| \_key              | مفتاح تقسيم Kinesis                                      | String                 |
| \_timestamp        | الطابع الزمني التقريبي لوصول Kinesis (بدقة الملّي ثانية) | DateTime64(3)          |
| \_stream           | اسم Kinesis Stream                                       | String                 |
| \_sequence\_number | رقم التسلسل في Kinesis                                   | String                 |
| \_raw\_message     | رسالة Kinesis الكاملة                                    | String                 |

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

<div id="limitations">
  ## القيود
</div>

* [DEFAULT](/ar/reference/statements/create/table#default) غير مدعوم.
* يقتصر حجم كل رسالة افتراضيًا على 16MB (غير مضغوط) عند التشغيل بأصغر حجم نسخة متماثلة ‏(XS)، وعلى 32MB (غير مضوط) مع النسخ المتماثلة الأكبر.  وستُرفض الرسائل التي تتجاوز هذا الحد مع ظهور خطأ.  إذا كنت بحاجة إلى رسائل أكبر، يُرجى التواصل مع فريق الدعم.

<div id="performance">
  ## الأداء
</div>

<div id="batching">
  ### التجميع على دفعات
</div>

تُدرِج ClickPipes البيانات في ClickHouse على دفعات. يهدف ذلك إلى تجنّب إنشاء عدد كبير جدًا من الأجزاء في قاعدة البيانات، ما قد يؤدي إلى مشكلات في أداء العنقود.

تُدرَج الدفعات عند تحقق أحد الشروط التالية:

* عندما يبلغ حجم الدفعة الحد الأقصى (100,000 صف أو 32MB لكل 1GB من ذاكرة النسخة المتماثلة)
* عندما تظل الدفعة مفتوحة للمدة القصوى (5 ثوانٍ)

<div id="latency">
  ### زمن الاستجابة
</div>

يعتمد زمن الاستجابة (المُعرَّف بأنه الوقت بين إرسال رسالة Kinesis إلى التدفق وإتاحة الرسالة في ClickHouse) على عدد من العوامل (مثل زمن استجابة Kinesis، وزمن استجابة الشبكة، وحجم الرسالة/تنسيقها). كما أن [التجميع على دفعات](#batching) الموضَّح في القسم أعلاه سيؤثر أيضًا في زمن الاستجابة. نوصي دائمًا باختبار حالة الاستخدام الخاصة بك لفهم زمن الاستجابة المتوقع.

إذا كانت لديك متطلبات محددة لزمن استجابة منخفض، يُرجى [التواصل معنا](https://clickhouse.com/company/contact?loc=clickpipes).

<div id="active-shards">
  ### الشظايا النشطة
</div>

نوصي بشدة بحصر عدد الشظايا النشطة المتزامنة بما يتوافق مع متطلبات الإنتاجية لديك. بالنسبة إلى تدفق Kinesis من نوع "On Demand"، ستحدّد AWS تلقائيًا عددًا مطابقًا من الشظايا بناءً على الإنتاجية،
أما بالنسبة إلى التدفقات من نوع "Provisioned"، فقد يؤدي تخصيص عدد كبير جدًا من الشظايا إلى زيادة زمن الاستجابة كما هو موضح أدناه، فضلًا عن ارتفاع التكاليف لأن تسعير Kinesis لهذه التدفقات يُحتسب على أساس "لكل shard".

إذا كان التطبيق المُنتِج يكتب باستمرار إلى عدد كبير من الشظايا النشطة، فقد يتسبب ذلك في زمن الاستجابة مرتفع إذا لم يكن الـ pipe لديك موسّعًا بالقدر الكافي لمعالجة تلك الشظايا بكفاءة. واستنادًا إلى حدود الإنتاجية في Kinesis،
تخصّص ClickPipes عددًا محددًا من "workers" لكل نسخة متماثلة لقراءة بيانات الشظايا. على سبيل المثال، عند أصغر حجم، سيكون لدى نسخة متماثلة في ClickPipes 4 من سلاسل التنفيذ العاملة هذه. وإذا كان التطبيق المُنتِج يكتب
إلى أكثر من 4 شظايا في الوقت نفسه، فلن تُعالَج البيانات من الشظايا "الإضافية" حتى تتوفر سلسلة تنفيذ عاملة. وعلى وجه الخصوص، إذا كان الـ pipe يستخدم "enhanced fanout"، فستشترك كل سلسلة تنفيذ عاملة في
شظية واحدة لمدة 5 دقائق، ولن تكون متاحة لقراءة أي شظية أخرى خلال تلك المدة. وقد يؤدي ذلك إلى "قفزات" في زمن الاستجابة بمضاعفات 5 دقائق.

<div id="scaling">
  ### التوسّع
</div>

صُمِّم ClickPipes for Kinesis ليدعم التوسّع أفقيًا وعموديًا. وبشكلٍ افتراضي، ننشئ مجموعة مستهلكين تضم مستهلكًا واحدًا. ويمكن تهيئة ذلك أثناء إنشاء ClickPipe، أو في أي وقت لاحق ضمن **الإعدادات** -> **الإعدادات المتقدمة** -> **التوسّع**.

يوفّر ClickPipes إتاحة عالية من خلال معمارية موزعة عبر مناطق التوفّر.
ويتطلّب ذلك التوسّع إلى مستهلكين اثنين على الأقل.

وبغضّ النظر عن عدد المستهلكين قيد التشغيل، فإن تحمّل الأعطال متوفّر بحكم التصميم.
فإذا تعطّل مستهلك أو البنية التحتية الأساسية التابعة له،
فسيُعيد ClickPipe تشغيل المستهلك تلقائيًا ويواصل معالجة الرسائل.

<div id="authentication">
  ## المصادقة
</div>

للوصول إلى تدفقات Amazon Kinesis، يمكنك استخدام [بيانات اعتماد IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) أو [دور IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). ولمزيد من التفاصيل حول كيفية إعداد دور IAM، يمكنك [الرجوع إلى هذا الدليل](/ar/integrations/clickpipes/kinesis/auth) للاطلاع على معلومات حول كيفية إعداد دور يعمل مع ClickHouse Cloud.
