استخدام Vector مع Kafka وClickHouse
الترخيص
اجمع تفاصيل الاتصال
تتوفر تفاصيل خدمة ClickHouse Cloud الخاصة بك في ClickHouse Cloud console.
حدِّد خدمة ثم انقر على Connect:
اختر HTTPS. ستظهر تفاصيل الاتصال في مثال لأمر
curl.
إذا كنت تستخدم ClickHouse مُدارًا ذاتيًا، فسيُحدِّد مسؤول ClickHouse لديك تفاصيل الاتصال.
الخطوات
- أنشئ topic
githubفي Kafka، ثم أدرِج مجموعة بيانات GitHub.
ClickHouse/ClickHouse.
- تأكد من إنشاء الجدول الهدف. نستخدم أدناه قاعدة البيانات الافتراضية.
- نزّل وثبّت Vector. أنشئ ملف الإعداد
kafka.tomlوعدّل القيم بما يتناسب مع مثيلات Kafka وClickHouse لديك.
- تم اختبار هذا المثال مع Confluent Cloud. لذلك، قد لا تكون خيارات الأمان
sasl.*وssl.enabledمناسبة في حالات النشر ذاتية الإدارة. - لا يلزم استخدام بادئة بروتوكول مع معلمة التهيئة
bootstrap_servers، على سبيل المثال:pkc-2396y.us-east-1.aws.confluent.cloud:9092 - تضمن معلمة المصدر
decoding.codec = "json"تمرير الرسالة إلى مصب ClickHouse على شكل كائن JSON واحد. عند التعامل مع الرسائل بوصفهاStringsواستخدام القيمة الافتراضيةbytes، سيُضاف محتوى الرسالة إلى الحقلmessage. وفي معظم الحالات، سيتطلب ذلك معالجتها في ClickHouse كما هو موضح في دليل البدء باستخدام Vector. - يضيف Vector عددًا من الحقول إلى الرسائل. وفي مثالنا، نتجاهل هذه الحقول في مصب ClickHouse عبر معلمة التهيئة
skip_unknown_fields = true. ويتجاهل هذا الحقول التي لا تشكّل جزءًا من مخطط الجدول الهدف. ويمكنك تعديل المخطط لديك لضمان إضافة هذه الحقول الوصفية، مثلoffset. - لاحظ كيف يشير المصب إلى مصدر الأحداث عبر المعلمة
inputs. - لاحظ سلوك مصب ClickHouse كما هو موضح هنا. ولتحقيق أفضل معدل نقل، قد ترغب في ضبط المعلمات
buffer.max_eventsوbatch.timeout_secsوbatch.max_bytes. ووفقًا لتوصيات ClickHouse، ينبغي اعتبار القيمة 1000 حدًا أدنى لعدد الأحداث في أي دفعة واحدة. وفي حالات الاستخدام ذات معدل النقل المرتفع المنتظم، يمكنك زيادة المعلمةbuffer.max_events. أما معدلات النقل الأكثر تقلبًا فقد تتطلب تغييرات في المعلمةbatch.timeout_secs - تفرض المعلمة
auto_offset_reset = "smallest"على مصدر Kafka أن يبدأ من بداية الـ topic، مما يضمن استهلاك الرسائل المنشورة في الخطوة (1). وقد تحتاج إلى سلوك مختلف. راجع هنا لمزيد من التفاصيل.
- ابدأ Vector
VECTOR_LOG=debug في البداية للحصول على سجلات إضافية قد تكون مفيدة إذا واجهت مشكلات.
- أكِّد إدراج البيانات.