الانتقال إلى المحتوى الرئيسي
في هذه المقالة، نستعرض دليلًا عمليًا يوضّح كيفية تدفّق البيانات من SQL Server إلى ClickHouse. ويُعد ClickHouse خيارًا مثاليًا إذا كنت بحاجة إلى تحليلات فائقة السرعة لإعداد لوحات معلومات داخلية أو موجّهة للعملاء. سنأخذك خطوة بخطوة خلال إعداد قاعدتي البيانات كلتيهما، وكيفية ربطهما، ثم كيفية استخدام Streamkap لبث بياناتك. إذا كان SQL Server يدير عملياتك اليومية، لكنك تحتاج إلى سرعة ClickHouse وذكائه في التحليلات، فأنت في المكان المناسب.

لماذا تبث البيانات من SQL Server إلى ClickHouse؟

إذا كنت هنا، فغالبًا أنك تعرف هذه المشكلة جيدًا: يتميز SQL Server بموثوقية عالية في المعاملات، لكنه ببساطة غير مصمم لتشغيل استعلامات تحليلية كثيفة وفي الوقت الفعلي. وهنا يبرز ClickHouse. فقد صُمم ClickHouse لأعمال التحليلات، مع تجميع فائق السرعة وإعداد التقارير، حتى على مجموعات البيانات الضخمة. لذلك، فإن إعداد مسار معالجة CDC متدفق لدفع بيانات المعاملات إلى 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 من أين يجلب التغييرات. إليك الطريقة:
  1. افتح Streamkap وانتقل إلى قسم المصادر.
  2. أنشئ مصدرًا جديدًا.
  • امنحه اسمًا واضحًا يسهل تمييزه (على سبيل المثال، sqlserver-demo-source).
  1. أدخل تفاصيل اتصال SQL Server:
  • اسم المضيف (على سبيل المثال، your-db-instance.rds.amazonaws.com)
  • المنفذ (المنفذ الافتراضي لـ SQL Server هو 3306)
  • اسم المستخدم وكلمة المرور
  • اسم قاعدة البيانات

ما الذي يحدث في الخلفية

عند إعداد ذلك، سيتصل Streamkap بخادم SQL Server لديك ويكتشف الجداول. في هذا العرض التوضيحي، سنختار جدولًا تتدفق إليه بعض البيانات بالفعل، مثل الأحداث أو المعاملات.

إنشاء وجهة ClickHouse

الآن لنُعِدّ الوجهة التي سنرسل إليها كل هذه البيانات.

الخطوة 2: إضافة وجهة ClickHouse في Streamkap

كما هو الحال مع المصدر، سننشئ وجهة باستخدام تفاصيل الاتصال الخاصة بـ ClickHouse.

الخطوات:

  1. انتقل إلى قسم الوجهات في Streamkap.
  2. أضف وجهة جديدة — واختر ClickHouse كنوع الوجهة.
  3. أدخِل معلومات ClickHouse الخاصة بك:
  • المضيف
  • المنفذ (القيمة الافتراضية هي 9000)
  • اسم المستخدم وكلمة المرور
  • اسم قاعدة البيانات
مثال على لقطة شاشة: إضافة وجهة ClickHouse جديدة في لوحة معلومات Streamkap.

وضع Upsert: ما المقصود به؟

هذه خطوة مهمة: نريد استخدام وضع “upsert” في ClickHouse، والذي يستخدم في الخلفية محرك ReplacingMergeTree في ClickHouse. يتيح لنا ذلك دمج السجلات الواردة بكفاءة والتعامل مع التحديثات بعد استيعاب البيانات، باستخدام ما يسميه ClickHouse “دمج الأجزاء”.
  • يضمن ذلك ألا يمتلئ جدول الوجهة لديك بالسجلات المكررة عند حدوث تغييرات على جانب SQL Server.

التعامل مع تطور المخطط

لا تحتوي ClickHouse وSQL Server دائمًا على الأعمدة نفسها، خاصةً عندما يكون تطبيقك قيد التشغيل ويواصل المطورون إضافة أعمدة بشكل فوري.
  • الخبر السار: يمكن لـ Streamkap التعامل مع تطور المخطط الأساسي. وهذا يعني أنه إذا أضفت عمودًا جديدًا في SQL Server، فسيظهر في ClickHouse أيضًا.
ما عليك سوى تحديد “تطور المخطط” في إعدادات الوجهة. ويمكنك دائمًا تعديل ذلك لاحقًا حسب الحاجة.

إنشاء مسار المعالجة المتدفق

بعد تحديد المصدر والوجهة، حان وقت الجزء الممتع—بدء بث بياناتك!

الخطوة 3: إعداد مسار المعالجة في Streamkap

إعداد مسار المعالجة

  1. انتقل إلى علامة التبويب Pipelines في Streamkap.
  2. أنشئ مسار معالجة جديدًا.
  3. حدِّد مصدر SQL Server الخاص بك (sqlserver-demo-source).
  4. حدِّد وجهة ClickHouse الخاصة بك (clickhouse-tutorial-destination).
  5. اختر الجدول الذي تريد بث بياناته — ولنفترض أنه events.
  6. اضبط الإعدادات لاستخدام التقاط تغييرات البيانات (CDC).
  • في هذا التشغيل، سنبث البيانات الجديدة (يمكنك تخطي التحميل بأثر رجعي في البداية والتركيز على أحداث CDC).
لقطة شاشة لإعدادات مسار المعالجة — اختيار المصدر والوجهة والجدول.

هل ينبغي تحميل البيانات التاريخية؟

قد تسأل: هل ينبغي أن أحمّل البيانات القديمة؟ في كثير من حالات التحليلات، قد تكتفي بالبدء في بثّ التغييرات من الآن فصاعدًا، ولكن يمكنك دائمًا الرجوع وتحميل البيانات الأقدم أيضًا. ما لم تكن لديك حاجة محددة، فاختر الآن “عدم تحميل البيانات التاريخية”.

البث أثناء التشغيل: ما الذي يمكن توقّعه

الآن أصبح مسار المعالجة لديك مُعدًّا ونشطًا!

الخطوة 4: راقب تدفّق البيانات

إليك ما يحدث:
  • عند وصول بيانات جديدة إلى الجدول المصدر في SQL Server، يلتقط مسار المعالجة في Streamkap هذا التغيير ويرسله إلى ClickHouse.
  • يقوم ClickHouse (بفضل ReplacingMergeTree ودمج الأجزاء) باستيعاب هذه الصفوف ودمج التحديثات.
  • يواكب المخطط التغييرات—أضف أعمدة في SQL Server وستظهر في ClickHouse أيضًا.
لوحة معلومات مباشرة أو سجلات تُظهر ازدياد عدد الصفوف في ClickHouse وSQL Server في الوقت الفعلي. يمكنك أن ترى فعليًا الصفوف في ClickHouse وهي تتزايد مع وصول البيانات إلى SQL Server.
توقّع بعض التأخير في سيناريوهات الأحمال العالية، لكن معظم حالات الاستخدام تشهد تدفقًا شبه لحظي.

ما الذي يفعله Streamkap فعليًا في الخلفية؟

لإعطائك لمحة سريعة:
  • يراقب Streamkap السجل الثنائي لـ SQL Server (وهو السجل نفسه المستخدم في النسخ المتماثل).
  • ما إن يُدرَج صف أو يُحدَّث أو يُحذَف في جدولك، حتى يلتقط Streamkap هذا الحدث.
  • ثم يحوّل الحدث إلى صيغة يفهمها ClickHouse ويرسله إليه، مع تطبيق التغييرات فورًا في قاعدة بيانات التحليلات لديك.
هذا ليس مجرد ETL، بل هو التقاط كامل لبيانات التغيير (CDC) يُبث في الوقت الفعلي.

الخيارات المتقدمة

نمط Upsert مقابل نمط Insert

ما الفرق بين إدراج كل صف فقط (نمط Insert) وبين ضمان انعكاس التحديثات وعمليات الحذف أيضًا (نمط Upsert)؟
  • نمط Insert: يُضاف كل صف جديد، وحتى إذا كان تحديثًا، فستحصل على صفوف مكررة.
  • نمط Upsert: تستبدل التحديثات على الصفوف الموجودة ما هو موجود بالفعل، وهذا أفضل بكثير للحفاظ على حداثة التحليلات ونظافتها.

التعامل مع تغييرات المخطط

تتغير التطبيقات، وتتغير معها مخططاتك أيضًا. مع مسار المعالجة هذا:
  • هل أضفت عمودًا جديدًا إلى جدولك التشغيلي؟ سيلتقطه Streamkap ويضيفه إلى جانب ClickHouse أيضًا.
  • هل أزلت عمودًا؟ اعتمادًا على الإعدادات، قد تحتاج إلى ترحيل — لكن معظم الإضافات تتم بسلاسة.

المراقبة في البيئات الفعلية: متابعة مسار المعالجة عن كثب

التحقق من صحة مسار المعالجة

يوفّر Streamkap لوحة معلومات يمكنك من خلالها:
  • الاطلاع على تأخر مسار المعالجة (ما مدى حداثة بياناتك؟)
  • مراقبة عدد الصفوف ومعدل المعالجة
  • تلقّي تنبيهات عند حدوث أي خلل
مثال على لوحة المعلومات: رسم بياني لزمن الاستجابة، وعدد الصفوف، ومؤشرات الحالة.

المقاييس الشائعة التي ينبغي مراقبتها

  • التأخر: إلى أي مدى يتأخر ClickHouse عن SQL Server؟
  • معدل المعالجة: عدد الصفوف في الثانية
  • معدل الأخطاء: ينبغي أن يكون قريبًا من الصفر

بدء الاستخدام الفعلي: الاستعلام عن ClickHouse

بعد أن أصبحت بياناتك في ClickHouse، يمكنك الاستعلام عنها باستخدام كل أدوات analytics السريعة هذه. إليك مثالًا أساسيًا:
اجمع بين ClickHouse وأدوات لوحات المعلومات مثل Grafana أو Superset أو Redash للحصول على تقارير متكاملة الإمكانات.

الخطوات التالية والتعمق أكثر

لا يقدّم هذا الدليل العملي سوى لمحة سريعة عمّا يمكنك إنجازه. وبعد إتقان الأساسيات، إليك ما يمكنك استكشافه بعد ذلك:
  • إعداد تدفقات مُرشَّحة (مزامنة بعض الجداول/الأعمدة فقط)
  • تدفّق مصادر متعددة إلى قاعدة بيانات تحليلية واحدة
  • دمج ذلك مع S3/بحيرات البيانات للتخزين البارد
  • أتمتة ترحيلات المخطط عند تغيير الجداول
  • تأمين مسار المعالجة باستخدام SSL وقواعد جدار الحماية
ترقّب مدونة Streamkap لمزيد من الأدلة المتعمقة.

FAQ واستكشاف الأخطاء وإصلاحها

س: هل يعمل هذا مع قواعد البيانات السحابية؟ ج: نعم! استخدمنا AWS RDS في هذا المثال. فقط تأكد من فتح المنافذ الصحيحة. س: ماذا عن الأداء؟ ج: ClickHouse سريع. وعادةً ما تكون نقطة الاختناق هي الشبكة أو سرعة binlog في DB المصدر، لكن في معظم الحالات سيكون التأخر أقل من ثانية. س: هل يدعم عمليات الحذف أيضًا؟ ج: بالتأكيد. في وضع upsert، يتم تمييز عمليات الحذف والتعامل معها في ClickHouse أيضًا.

الخلاصة

وهكذا تكون قد حصلت على نظرة عامة كاملة حول بث بيانات SQL Server إلى ClickHouse باستخدام Streamkap. إنه سريع ومرن، ومثالي للفرق التي تحتاج إلى تحليلات محدثة باستمرار من دون الضغط على قواعد بيانات الإنتاج لديها. هل أنت جاهز للتجربة؟ توجّه إلى صفحة التسجيل وأخبرنا إذا كنت ترغب أن نتناول موضوعات مثل:
  • Upsert مقابل Insert والتفاصيل الدقيقة لكلٍّ منهما
  • زمن الوصول من البداية إلى النهاية: ما مدى السرعة التي يمكنك بها الوصول إلى العرض التحليلي النهائي؟
  • ضبط الأداء والإنتاجية
  • لوحات معلومات واقعية مبنية على هذه المنظومة
شكرًا على القراءة! نتمنى لك بثًا ممتعًا.
آخر تعديل في ٢٩ يونيو ٢٠٢٦