لماذا تبث البيانات من SQL Server إلى ClickHouse؟
- إعداد تقارير داخلية لا تؤثر في أداء تطبيقات الإنتاج
- لوحات معلومات موجهة للعملاء تحتاج إلى أن تكون سريعة ومحدَّثة دائمًا
- بث الأحداث، مثل الحفاظ على حداثة سجلات نشاط المستخدمين لأغراض التحليلات
ما ستحتاج إليه للبدء
المتطلبات الأساسية
- مثيل SQL Server قيد التشغيل
- في هذا الدليل العملي، نستخدم AWS RDS for SQL Server، لكن أي مثيل حديث من SQL Server سيؤدي الغرض.إعداد AWS SQL Server من الصفر.
- مثيل ClickHouse
- ذاتي الاستضافة أو سحابي.إعداد ClickHouse من الصفر.
- Streamkap
- ستكون هذه الأداة العمود الفقري لمسار المعالجة لتدفق البيانات لديك.
معلومات الاتصال
- عنوان خادم SQL Server والمنفذ واسم المستخدم وكلمة المرور. يُنصح بإنشاء مستخدم ودور منفصلين لـ Streamkap للوصول إلى قاعدة بيانات SQL Server الخاصة بك.اطّلع على وثائقنا لمعرفة الإعداد.
- عنوان خادم ClickHouse والمنفذ واسم المستخدم وكلمة المرور. تحدد قوائم الوصول حسب IP في ClickHouse الخدمات التي يمكنها الاتصال بقاعدة بيانات ClickHouse الخاصة بك.اتبع الإرشادات هنا.
- الجداول التي تريد بثها—ابدأ بجدول واحد في الوقت الحالي
إعداد SQL Server كمصدر
الخطوة 1: إنشاء مصدر SQL Server في Streamkap
- افتح Streamkap وانتقل إلى قسم المصادر.
- أنشئ مصدرًا جديدًا.
- امنحه اسمًا واضحًا يسهل تمييزه (على سبيل المثال، sqlserver-demo-source).
- أدخل تفاصيل اتصال SQL Server:
- اسم المضيف (على سبيل المثال، your-db-instance.rds.amazonaws.com)
- المنفذ (المنفذ الافتراضي لـ SQL Server هو 3306)
- اسم المستخدم وكلمة المرور
- اسم قاعدة البيانات
ما الذي يحدث في الخلفية
إنشاء وجهة ClickHouse
الخطوة 2: إضافة وجهة ClickHouse في Streamkap
الخطوات:
- انتقل إلى قسم الوجهات في Streamkap.
- أضف وجهة جديدة — واختر ClickHouse كنوع الوجهة.
- أدخِل معلومات ClickHouse الخاصة بك:
- المضيف
- المنفذ (القيمة الافتراضية هي 9000)
- اسم المستخدم وكلمة المرور
- اسم قاعدة البيانات
وضع Upsert: ما المقصود به؟
- يضمن ذلك ألا يمتلئ جدول الوجهة لديك بالسجلات المكررة عند حدوث تغييرات على جانب SQL Server.
التعامل مع تطور المخطط
- الخبر السار: يمكن لـ Streamkap التعامل مع تطور المخطط الأساسي. وهذا يعني أنه إذا أضفت عمودًا جديدًا في SQL Server، فسيظهر في ClickHouse أيضًا.
إنشاء مسار المعالجة المتدفق
الخطوة 3: إعداد مسار المعالجة في Streamkap
إعداد مسار المعالجة
- انتقل إلى علامة التبويب Pipelines في Streamkap.
- أنشئ مسار معالجة جديدًا.
- حدِّد مصدر SQL Server الخاص بك (sqlserver-demo-source).
- حدِّد وجهة ClickHouse الخاصة بك (clickhouse-tutorial-destination).
-
اختر الجدول الذي تريد بث بياناته — ولنفترض أنه
events. - اضبط الإعدادات لاستخدام التقاط تغييرات البيانات (CDC).
- في هذا التشغيل، سنبث البيانات الجديدة (يمكنك تخطي التحميل بأثر رجعي في البداية والتركيز على أحداث CDC).
هل ينبغي تحميل البيانات التاريخية؟
البث أثناء التشغيل: ما الذي يمكن توقّعه
الخطوة 4: راقب تدفّق البيانات
- عند وصول بيانات جديدة إلى الجدول المصدر في SQL Server، يلتقط مسار المعالجة في Streamkap هذا التغيير ويرسله إلى ClickHouse.
- يقوم ClickHouse (بفضل ReplacingMergeTree ودمج الأجزاء) باستيعاب هذه الصفوف ودمج التحديثات.
- يواكب المخطط التغييرات—أضف أعمدة في SQL Server وستظهر في ClickHouse أيضًا.
ما الذي يفعله Streamkap فعليًا في الخلفية؟
- يراقب Streamkap السجل الثنائي لـ SQL Server (وهو السجل نفسه المستخدم في النسخ المتماثل).
- ما إن يُدرَج صف أو يُحدَّث أو يُحذَف في جدولك، حتى يلتقط Streamkap هذا الحدث.
- ثم يحوّل الحدث إلى صيغة يفهمها ClickHouse ويرسله إليه، مع تطبيق التغييرات فورًا في قاعدة بيانات التحليلات لديك.
الخيارات المتقدمة
نمط Upsert مقابل نمط Insert
- نمط Insert: يُضاف كل صف جديد، وحتى إذا كان تحديثًا، فستحصل على صفوف مكررة.
- نمط Upsert: تستبدل التحديثات على الصفوف الموجودة ما هو موجود بالفعل، وهذا أفضل بكثير للحفاظ على حداثة التحليلات ونظافتها.
التعامل مع تغييرات المخطط
- هل أضفت عمودًا جديدًا إلى جدولك التشغيلي؟ سيلتقطه Streamkap ويضيفه إلى جانب ClickHouse أيضًا.
- هل أزلت عمودًا؟ اعتمادًا على الإعدادات، قد تحتاج إلى ترحيل — لكن معظم الإضافات تتم بسلاسة.
المراقبة في البيئات الفعلية: متابعة مسار المعالجة عن كثب
التحقق من صحة مسار المعالجة
- الاطلاع على تأخر مسار المعالجة (ما مدى حداثة بياناتك؟)
- مراقبة عدد الصفوف ومعدل المعالجة
- تلقّي تنبيهات عند حدوث أي خلل
المقاييس الشائعة التي ينبغي مراقبتها
- التأخر: إلى أي مدى يتأخر ClickHouse عن SQL Server؟
- معدل المعالجة: عدد الصفوف في الثانية
- معدل الأخطاء: ينبغي أن يكون قريبًا من الصفر
بدء الاستخدام الفعلي: الاستعلام عن ClickHouse
الخطوات التالية والتعمق أكثر
- إعداد تدفقات مُرشَّحة (مزامنة بعض الجداول/الأعمدة فقط)
- تدفّق مصادر متعددة إلى قاعدة بيانات تحليلية واحدة
- دمج ذلك مع S3/بحيرات البيانات للتخزين البارد
- أتمتة ترحيلات المخطط عند تغيير الجداول
- تأمين مسار المعالجة باستخدام SSL وقواعد جدار الحماية
FAQ واستكشاف الأخطاء وإصلاحها
binlog في DB المصدر، لكن في معظم الحالات سيكون التأخر أقل من ثانية.
س: هل يدعم عمليات الحذف أيضًا؟
ج: بالتأكيد. في وضع upsert، يتم تمييز عمليات الحذف والتعامل معها في ClickHouse أيضًا.
الخلاصة
- Upsert مقابل Insert والتفاصيل الدقيقة لكلٍّ منهما
- زمن الوصول من البداية إلى النهاية: ما مدى السرعة التي يمكنك بها الوصول إلى العرض التحليلي النهائي؟
- ضبط الأداء والإنتاجية
- لوحات معلومات واقعية مبنية على هذه المنظومة