الانتقال إلى المحتوى الرئيسي
Apache Beam هو نموذج برمجة موحّد ومفتوح المصدر يتيح للمطوّرين تعريف خطوط أنابيب معالجة البيانات الدفعية والمتدفقة (المستمرة) وتنفيذها. وتكمن مرونة Apache Beam في قدرته على دعم مجموعة واسعة من سيناريوهات معالجة البيانات، بدءًا من عمليات ETL ‏(الاستخراج والتحويل والتحميل) ووصولًا إلى معالجة الأحداث المعقّدة والتحليلات في الوقت الفعلي. يعتمد هذا التكامل على JDBC connector الرسمي من ClickHouse في طبقة الإدراج الأساسية.

حزمة التكامل

تُصان حزمة التكامل المطلوبة لدمج Apache Beam مع ClickHouse وتُطوَّر ضمن Apache Beam I/O Connectors — وهي حزمة تكاملات تضم العديد من أنظمة تخزين البيانات وقواعد البيانات الشائعة. يوجد تنفيذ org.apache.beam.sdk.io.clickhouse.ClickHouseIO داخل مستودع Apache Beam.

إعداد حزمة ClickHouse لـ Apache Beam

تثبيت الحزمة

أضِف الاعتمادية التالية إلى نظام إدارة الحزم لديك:
إصدار Beam الموصى بهيُوصى باستخدام الموصل ClickHouseIO ابتداءً من إصدار Apache Beam 2.59.0. قد لا تدعم الإصدارات الأقدم وظائف هذا الموصل دعمًا كاملًا.
يمكن العثور على الحِزم في مستودع Maven الرسمي.

مثال على الشيفرة

يقرأ المثال التالي ملف CSV باسم input.csv على أنه PCollection، ثم يحوّله إلى كائن Row (باستخدام المخطط المحدد) ويُدرجه في مثيل ClickHouse محلي باستخدام ClickHouseIO:

أنواع البيانات المدعومة

معلمات ClickHouseIO.Write

يمكنك ضبط إعدادات ClickHouseIO.Write باستخدام دوال الضبط التالية:

القيود

يرجى مراعاة القيود التالية عند استخدام الموصل:
  • حتى الآن، لا تتوفر سوى عملية Sink. ولا يدعم الموصل عملية Source.
  • يُجري ClickHouse إزالة التكرار عند الإدراج في جدول ReplicatedMergeTree أو في جدول Distributed مبني فوق ReplicatedMergeTree. أما بدون replication، فقد يؤدي الإدراج في جدول MergeTree عادي إلى تكرار الصفوف إذا فشلت عملية الإدراج ثم نجحت إعادة المحاولة لاحقًا. ومع ذلك، تُدرَج كل block بصورة ذرّية، ويمكن ضبط حجم block باستخدام ClickHouseIO.Write.withMaxInsertBlockSize(long). وتتحقق إزالة التكرار باستخدام checksums الخاصة بـ blocks المُدرجة. لمزيد من المعلومات حول إزالة التكرار، يُرجى زيارة إزالة التكرار وإعدادات insert deduplicate.
  • لا يُجري الموصل أي عبارات DDL؛ لذلك، يجب أن يكون الجدول الهدف موجودًا قبل الإدراج.
  • توثيق الفئة ClickHouseIO.
  • مستودع Github الخاص بالأمثلة: clickhouse-beam-connector.
آخر تعديل في ٢ يوليو ٢٠٢٦