يجب استخدام هذا connector فقط إذا كانت بياناتك بسيطة وتتكون من data types بدائية، مثل
int. أما الأنواع الخاصة بـ ClickHouse، مثل maps، فهي غير مدعومة.الترخيص
الخطوات
اجمع بيانات الاتصال الخاصة بك
تتوفر تفاصيل خدمة ClickHouse Cloud الخاصة بك في ClickHouse Cloud console.
حدِّد خدمة ثم انقر على Connect:

curl.

1
تثبيت Kafka Connect والموصل
نفترض أنك قمت بتنزيل حزمة Confluent وتثبيتها محليًا. اتبع تعليمات التثبيت الخاصة بتثبيت الموصل كما هو موثّق هنا.إذا كنت تستخدم طريقة التثبيت
confluent-hub، فسيتم تحديث ملفات التهيئة المحلية لديك.لإرسال البيانات إلى ClickHouse من Kafka، نستخدم مكوّن Sink الخاص بالموصل.2
تنزيل برنامج تشغيل JDBC وتثبيته
نزّل وثبّت برنامج تشغيل ClickHouse JDBC
clickhouse-jdbc-<version>-shaded.jar من هنا. ثبّته في Kafka Connect باتباع التفاصيل الواردة هنا. قد تعمل برامج تشغيل أخرى، لكنها لم تُختبر.مشكلة شائعة: تقترح الوثائق نسخ ملف jar إلى
share/java/kafka-connect-jdbc/. إذا واجهت مشكلات في عثور Connect على برنامج التشغيل، فانسخ برنامج التشغيل إلى share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/. أو عدّل plugin.path ليشمل برنامج التشغيل — انظر أدناه.3
إعداد التهيئة
اتبع هذه التعليمات لإعداد Connect بما يناسب نوع التثبيت لديك، مع الانتباه إلى الفروق بين عنقود مستقل وعنقود موزّع. وإذا كنت تستخدم Confluent Cloud، فالإعداد الموزّع هو المناسب.المعلمات التالية مهمة عند استخدام موصل JDBC مع ClickHouse. ويمكن العثور على قائمة كاملة بالمعلمات هنا:
_connection.url_- يجب أن يكون بالصيغةjdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>connection.user- مستخدم لديه صلاحية الكتابة إلى قاعدة البيانات الهدفtable.name.format- جدول ClickHouse الذي ستُدرج البيانات فيه. يجب أن يكون موجودًا.batch.size- عدد الصفوف التي تُرسل في batch واحد. احرص على ضبطه على قيمة كبيرة بما يكفي. ووفقًا لتوصيات ClickHouse، ينبغي اعتبار القيمة 1000 حدًا أدنى.tasks.max- يدعم موصل JDBC Sink تشغيل task واحد أو أكثر. ويمكن استخدام ذلك لتحسين الأداء. وإلى جانب حجم batch، يُعد هذا وسيلتك الأساسية لتحسين الأداء.value.converter.schemas.enable- اضبطه على false إذا كنت تستخدم مخطط registry، وعلى true إذا كنت تضمن مخططات داخل الرسائل.value.converter- اضبطه وفقًا لنوع بياناتك، فمثلًا بالنسبة إلى JSON استخدمio.confluent.connect.json.JsonSchemaConverter.key.converter- اضبطه علىorg.apache.kafka.connect.storage.StringConverter. نحن نستخدم مفاتيح String.pk.mode- غير ذي صلة بـ ClickHouse. اضبطه على none.auto.create- غير مدعوم ويجب أن تكون قيمته false.auto.evolve- نوصي باستخدام false لهذا الإعداد، رغم أنه قد يصبح مدعومًا مستقبلًا.insert.mode- اضبطه على “insert”. الأوضاع الأخرى غير مدعومة حاليًا.key.converter- اضبطه وفقًا لأنواع مفاتيحك.value.converter- اضبطه بناءً على نوع البيانات في topic لديك. ويجب أن تكون هذه البيانات ذات مخطط مدعوم — بتنسيقات JSON أو Avro أو Protobuf.
value.converter.schemas.enable- اضبطه على false لأننا نستخدم مخطط registry. واضبطه على true إذا كنت تضمن مخطط داخل كل رسالة.key.converter- اضبطه على “org.apache.kafka.connect.storage.StringConverter”. نحن نستخدم مفاتيح String.value.converter- اضبطه على “io.confluent.connect.json.JsonSchemaConverter”.value.converter.schema.registry.url- اضبط URL لخادم مخطط، إلى جانب بيانات الاعتماد الخاصة به، عبر المعلمةvalue.converter.schema.registry.basic.auth.user.info.
4
إنشاء جدول ClickHouse
تأكد من إنشاء الجدول، مع حذفه إذا كان موجودًا بالفعل نتيجة أمثلة سابقة. يرد أدناه مثال متوافق مع مجموعة بيانات Github المختصرة. لاحظ عدم وجود أي من النوعين Array أو Map لأنهما غير مدعومين حاليًا:
6
أضف بيانات إلى Kafka
أرسل الرسائل إلى Kafka باستخدام البرنامج النصي وملف التهيئة المتوفرين. ستحتاج إلى تعديل يمكن استخدام هذا البرنامج النصي لإدراج أي ملف ndjson في Kafka topic. وسيحاول هذا استنتاج مخطط لك تلقائيًا. لن تُدرج التهيئة النموذجية المتوفرة سوى 10k رسالة فقط - عدّل هنا إذا لزم الأمر. كما تزيل هذه التهيئة أي حقول Array غير متوافقة من dataset أثناء إدراجها في Kafka.وهذا مطلوب لكي يتمكن موصل JDBC من تحويل الرسائل إلى عبارات INSERT. وإذا كنت تستخدم بياناتك الخاصة، فتأكد إما من إدراج مخطط مع كل رسالة (بضبط _value.converter.schemas.enable _على true) أو من أن عميلك ينشر رسائل تشير إلى مخطط في registry.يجب أن يبدأ Kafka Connect في استهلاك الرسائل وإدراج الصفوف في ClickHouse. لاحظ أن التحذيرات المتعلقة بـ “[JDBC Compliant Mode] Transaction isn’t supported.” متوقعة ويمكن تجاهلها.يجب أن تؤكد قراءة بسيطة من الجدول الهدف “Github” إدراج البيانات.
github.config ليتضمن بيانات اعتماد Kafka الخاصة بك. والبرنامج النصي مُهيّأ حاليًا للاستخدام مع Confluent Cloud.