أنظمة تحليل الخادم

هذا هو الجزء الثاني من سلسلة مقالات عن النظم التحليلية (رابط للجزء 1).

أنظمة تحليل الخادم

اليوم، ليس هناك شك في أن المعالجة الدقيقة للبيانات وتفسير النتائج يمكن أن تساعد أي نوع من الأعمال تقريبًا. في هذا الصدد، أصبحت الأنظمة التحليلية محملة بشكل متزايد بالمعلمات، ويتزايد عدد المشغلات وأحداث المستخدم في التطبيقات.
ولهذا السبب، تقدم الشركات لمحلليها المزيد والمزيد من المعلومات "الأولية" لتحليلها وتحويلها إلى القرارات الصحيحة. لا ينبغي التقليل من أهمية نظام التحليلات بالنسبة للشركة، ويجب أن يكون النظام نفسه موثوقًا ومستدامًا.

محللي العملاء

تحليلات العميل هي خدمة تربطها الشركة بموقعها على الويب أو تطبيقها من خلال SDK الرسمي، وتدمجها في قاعدة التعليمات البرمجية الخاصة بها، وتختار مشغلات الأحداث. هذا الأسلوب له عيب واضح: لا يمكن معالجة جميع البيانات المجمعة بالكامل كما تريد، وذلك بسبب القيود المفروضة على أي خدمة مختارة. على سبيل المثال، في أحد الأنظمة، لن يكون من السهل تشغيل مهام MapReduce، وفي نظام آخر لن تتمكن من تشغيل النموذج الخاص بك. عيب آخر سيكون فاتورة منتظمة (مثيرة للإعجاب) للخدمات.
هناك العديد من حلول تحليلات العملاء في السوق، ولكن عاجلاً أم آجلاً، يواجه المحللون حقيقة أنه لا توجد خدمة عالمية واحدة مناسبة لأي مهمة (بينما أسعار كل هذه الخدمات تنمو باستمرار). في مثل هذه الحالة، غالبًا ما تقرر الشركات إنشاء نظام التحليلات الخاص بها مع جميع الإعدادات والميزات المخصصة اللازمة.

محللي الخادم

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

الايجابيات
سلبيات

يمكنك تخصيص أي شيء
غالبًا ما يكون الأمر صعبًا للغاية وتحتاج إلى مطورين منفصلين

ثانيًا: استخدام خدمات SaaS (Amazon وGoogle وAzure) بدلاً من نشرها بنفسك. سنتحدث عن SaaS بمزيد من التفصيل في الجزء الثالث.

الايجابيات
سلبيات

يمكن أن يكون أرخص على الكميات المتوسطة، ولكن مع زيادة كبيرة، سيظل باهظ الثمن
غير قادر على التحكم في جميع المعلمات

انتقلت الإدارة بالكامل إلى أكتاف مزود الخدمة
ليس من المعروف دائمًا ما هو موجود داخل الخدمة (قد لا تكون هناك حاجة إليه)

كيفية جمع تحليلات الخادم

إذا أردنا الابتعاد عن استخدام تحليلات العميل وبناء التحليلات الخاصة بنا، فيجب علينا أولاً التفكير في بنية النظام الجديد. سأخبرك أدناه خطوة بخطوة بما تحتاج إلى مراعاته، وسبب الحاجة إلى كل خطوة من الخطوات، وما هي الأدوات التي يمكنك استخدامها.

1. الحصول على البيانات

كما هو الحال في تحليلات العملاء، يقوم محللو الشركة أولاً بتحديد أنواع الأحداث التي يرغبون في دراستها بشكل أكبر وجمعها في قائمة. عادة، تحدث هذه الأحداث بترتيب معين، وهو ما يسمى "مخطط الأحداث".
علاوة على ذلك، لنتخيل أن تطبيق الهاتف المحمول (موقع الويب) به مستخدمين عاديين (أجهزة) والعديد من الخوادم. لنقل الأحداث بشكل آمن من الأجهزة إلى الخوادم، هناك حاجة إلى طبقة وسيطة. اعتمادًا على البنية، يمكن أن تحدث عدة قوائم انتظار مختلفة للأحداث.
اباتشي كافكا - هو قائمة الانتظار حانة/فرعية، والذي يستخدم كقائمة انتظار لجمع الأحداث.

وفق نشر على موقع Quora في عام 2014، قرر مبتكر Apache Kafka تسمية البرنامج باسم Franz Kafka لأنه "نظام مُحسّن للكتابة" ولأنه أحب كتابات كافكا. — ويكيبيديا

في مثالنا، هناك العديد من منتجي البيانات ومستهلكيهم (الأجهزة والخوادم)، ويساعد كافكا في ربطهم ببعضهم البعض. سيتم وصف المستهلكين بمزيد من التفصيل في الخطوات التالية، حيث سيكونون هم الجهات الفاعلة الرئيسية. الآن سننظر فقط في منتجي البيانات (الأحداث).
يلخص كافكا مفاهيم قائمة الانتظار والتقسيم، وبشكل أكثر تحديدًا، من الأفضل القراءة في مكان آخر (على سبيل المثال، في توثيق). دون الخوض في التفاصيل، لنتخيل أنه تم إطلاق تطبيق جوال لنظامي تشغيل مختلفين. ثم يقوم كل إصدار بإنشاء دفق الأحداث المنفصل الخاص به. يرسل المنتجون الأحداث إلى كافكا، ويتم تسجيلها في قائمة انتظار مناسبة.
أنظمة تحليل الخادم
(صورة من هنا)

وفي الوقت نفسه، يتيح لك كافكا القراءة على أجزاء ومعالجة تدفق الأحداث على دفعات صغيرة. تعد Kafka أداة مريحة للغاية تتناسب بشكل جيد مع الاحتياجات المتزايدة (على سبيل المثال، من خلال تحديد الموقع الجغرافي للأحداث).
عادة ما تكون قطعة واحدة كافية، ولكن الأمور تصبح أكثر تعقيدًا مع الاتصال عند القياس (كما هو الحال دائمًا). ربما لا أحد يرغب في استخدام قطعة مادية واحدة فقط في الإنتاج، حيث يجب أن تكون البنية متسامحة مع الأخطاء. بالإضافة إلى كافكا، هناك حل آخر معروف - RabbitMQ. لم نستخدمها في الإنتاج كقائمة انتظار لتحليلات الأحداث (إذا كانت لديك مثل هذه الخبرة، أخبرنا عنها في التعليقات!). ومع ذلك، تم استخدام AWS Kinesis.

قبل الانتقال إلى الخطوة التالية، يجب ذكر طبقة إضافية أخرى من النظام - تخزين السجلات الأولية. هذه ليست طبقة إلزامية، ولكنها ستكون مفيدة في حالة حدوث خطأ ما وإعادة تعيين قوائم انتظار الأحداث في كافكا إلى الصفر. لا يتطلب تخزين السجلات الأولية حلاً معقدًا ومكلفًا، يمكنك ببساطة كتابتها في مكان ما بالترتيب الصحيح (حتى على القرص الصلب).
أنظمة تحليل الخادم

2. التعامل مع تيارات الحدث

بعد أن قمنا بتجهيز كافة الأحداث ووضعها في قوائم الانتظار المناسبة، ننتقل إلى خطوة المعالجة. سأتحدث هنا عن خياري المعالجة الأكثر شيوعًا.
الخيار الأول هو تمكين Spark Streaming على نظام Apache. جميع منتجات Apache تعمل على HDFS، وهو نظام ملفات متماثل آمن. Spark Streaming هي أداة سهلة الاستخدام تقوم بمعالجة بيانات التدفق والقياس بشكل جيد. ومع ذلك، قد يكون من الصعب الحفاظ عليه.
خيار آخر هو إنشاء معالج الأحداث الخاص بك. للقيام بذلك، على سبيل المثال، تحتاج إلى كتابة تطبيق Python، وإنشائه في عامل الإرساء، والاشتراك في قوائم انتظار كافكا. عندما تصل المشغلات إلى المعالجات في عامل الإرساء، ستبدأ المعالجة. باستخدام هذه الطريقة، تحتاج إلى الاستمرار في تشغيل التطبيقات باستمرار.
لنفترض أننا اخترنا أحد الخيارات الموضحة أعلاه وننتقل إلى المعالجة نفسها. يجب أن تبدأ المعالجات بالتحقق من صحة البيانات، وتصفية الأحداث المهملة والأحداث "المعطلة". للتحقق من الصحة نستخدم عادة سيربيروس. بعد ذلك، يمكن إجراء تعيين البيانات: تتم تسوية البيانات من مصادر مختلفة وتوحيدها من أجل إضافتها إلى جدول مشترك.
أنظمة تحليل الخادم

3. قاعدة البيانات

الخطوة الثالثة هي حفظ الأحداث الطبيعية. عند العمل باستخدام نظام تحليلي جاهز، سيتعين علينا في كثير من الأحيان الوصول إليه، لذلك من المهم اختيار قاعدة بيانات مناسبة.
إذا كانت البيانات تتناسب جيدًا مع مخطط ثابت، فيمكنك الاختيار بيت النقر أو بعض قاعدة بيانات الأعمدة الأخرى. لذا فإن التجميعات ستعمل بسرعة كبيرة. الجانب السلبي هو أن المخطط ثابت بشكل صارم وبالتالي لن يكون من الممكن إضافة كائنات عشوائية دون تحسين (على سبيل المثال، عند حدوث حدث غير قياسي). ولكن يمكن القيام بذلك بسرعة كبيرة.
بالنسبة للبيانات غير المنظمة، يمكنك استخدام NoSQL، على سبيل المثال، أباتشي كاساندرا. إنه يعمل على HDFS، ويتكرر بشكل جيد، ويمكنك رفع العديد من الحالات، وهو متسامح مع الأخطاء.
يمكنك رفع شيء أبسط، على سبيل المثال، MongoDB. إنه بطيء جدًا حتى بالنسبة للكميات الصغيرة. لكن الميزة الإضافية هي أنها بسيطة جدًا وبالتالي فهي مناسبة للبدء.
أنظمة تحليل الخادم

4. التجمعات

بعد حفظ جميع الأحداث بعناية، نريد جمع كل المعلومات المهمة من الدفعة التي جاءت وتحديث قاعدة البيانات. على المستوى العالمي، نريد لوحات المعلومات والمقاييس ذات الصلة. على سبيل المثال، من الأحداث لجمع ملف تعريف المستخدم وقياس السلوك بطريقة أو بأخرى. يتم تجميع الأحداث وجمعها وحفظها مرة أخرى (في جداول المستخدم بالفعل). وفي الوقت نفسه، من الممكن بناء نظام بحيث يتم توصيل المرشح أيضًا بالمجمع المنسق: لجمع المستخدمين من نوع معين فقط من الأحداث.
بعد ذلك، إذا كان أحد أعضاء الفريق يحتاج فقط إلى تحليلات عالية المستوى، فيمكنك توصيل أنظمة التحليلات الخارجية. يمكنك أن تأخذ Mixpanel مرة أخرى. ولكن نظرا لأنه مكلف للغاية، لا يتم إرسال جميع أحداث المستخدم هناك، ولكن فقط ما هو مطلوب. للقيام بذلك، نحتاج إلى إنشاء منسق يقوم بنقل بعض الأحداث الأولية أو شيء قمنا بتجميعه بأنفسنا مسبقًا إلى أنظمة خارجية أو واجهات برمجة التطبيقات أو منصات الإعلان.
أنظمة تحليل الخادم

5. الواجهة الأمامية

تحتاج إلى توصيل الواجهة الأمامية بالنظام الذي تم إنشاؤه. وخير مثال على ذلك هو الخدمة. redash، عبارة عن واجهة مستخدم رسومية لقاعدة بيانات تساعد في إنشاء اللوحات. كيفية عمل التفاعل:

  1. يقوم المستخدم بإجراء استعلام SQL.
  2. ردا على ذلك، يتلقى علامة.
  3. ينشئ "تصورًا جديدًا" له ويحصل على رسم بياني جميل يمكنك حفظه بنفسك بالفعل.

يتم تحديث المرئيات في الخدمة تلقائيًا، ويمكنك تكوين المراقبة وتتبعها. Redash مجاني، في حالة الاستضافة الذاتية، ولكن SaaS سيكلف 50 دولارًا شهريًا.
أنظمة تحليل الخادم

اختتام

بعد إكمال جميع الخطوات المذكورة أعلاه، ستقوم بإنشاء تحليلات من جانب الخادم الخاص بك. يرجى ملاحظة أن هذا ليس سهلاً مثل مجرد ربط تحليلات العميل، لأن كل شيء يحتاج إلى تكوينه بنفسك. لذلك، قبل إنشاء نظامك الخاص، من المفيد مقارنة الحاجة إلى نظام تحليلي جاد بالموارد التي أنت على استعداد لتخصيصها له.
إذا قمت بكل العمليات الحسابية ووجدت أن التكاليف مرتفعة للغاية، فسوف أتحدث في الجزء التالي عن كيفية إنشاء نسخة أرخص من التحليلات الخلفية.

شكرا للقراءة! سأكون سعيدا للأسئلة في التعليقات.

المصدر: www.habr.com

إضافة تعليق