دليل مهندس البيانات لمخازن البيانات غير التقليدية

نشرت: 2022-03-11

هندسة البيانات

مع ظهور البيانات الضخمة وعلوم البيانات ، يتم تحدي العديد من الأدوار الهندسية وتوسيعها. أحد أدوار العصر الجديد هو هندسة البيانات .

في الأصل ، كان الغرض من هندسة البيانات هو تحميل مصادر البيانات الخارجية وتصميم قواعد البيانات (تصميم خطوط الأنابيب وتطويرها لجمع البيانات ومعالجتها وتخزينها وتحليلها).

وقد نما منذ ذلك الحين لدعم حجم وتعقيد البيانات الضخمة. لذا تضم ​​هندسة البيانات الآن مجموعة واسعة من المهارات ، من الزحف على الويب ، وتنقية البيانات ، والحوسبة الموزعة ، وتخزين البيانات واسترجاعها.

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

في الآونة الأخيرة ، ظهرت العديد من تقنيات تخزين البيانات الجديدة والمختلفة. ومع ذلك ، أيهما هو الأنسب ولديه أنسب الميزات لهندسة البيانات؟

معظم المهندسين على دراية بقواعد بيانات SQL ، مثل PostgreSQL و MSSQL و MySQL ، والتي تم تنظيمها في جداول بيانات علائقية مع تخزين موجه نحو الصفوف.

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

في سياق هندسة البيانات ، هذه التقنيات هي محركات البحث ومخازن المستندات والمخازن العمودية.

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

في هذه المقالة ، نستكشف جميع التقنيات الثلاث: Elasticsearch كمحرك بحث ، و MongoDB كمتجر مستندات ، و Amazon Redshift كمتجر عمودي.

من خلال فهم التخزين البديل للبيانات ، يمكننا اختيار الأنسب لكل موقف.

التخزين لهندسة البيانات: أيهما أفضل؟

بالنسبة لمهندسي البيانات ، فإن أهم جوانب تخزين البيانات هي
كيفية فهرسة البيانات وتقسيمها وتجميعها.
سقسقة

لمقارنة هذه التقنيات ، سوف ندرس كيفية فهرسة البيانات وتقسيمها وتجميعها.

تعمل كل إستراتيجية لفهرسة البيانات على تحسين استعلامات معينة بينما تعيق البعض الآخر.

يمكن أن تؤثر معرفة الاستعلامات المستخدمة في أغلب الأحيان على مخزن البيانات الذي يجب اعتماده.

التقاسم ، وهي منهجية تقسم قواعد البيانات من خلالها بياناتها إلى أجزاء ، تحدد كيف ستنمو البنية التحتية مع استيعاب المزيد من البيانات.

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

أخيرًا ، تقوم هذه التقنيات بتجميع بياناتها بشكل مختلف تمامًا.

عندما نتعامل مع غيغابايت وتيرابايت من البيانات ، يمكن لإستراتيجية التجميع الخاطئة أن تحد من أنواع وأداء التقارير التي يمكننا إنشاؤها.

بصفتنا مهندسي بيانات ، يجب أن نأخذ في الاعتبار جميع الجوانب الثلاثة عند تقييم مخازن البيانات المختلفة.

المتنافسون

محرك البحث: Elasticsearch

سرعان ما اكتسب Elasticsearch شعبية بين أقرانه بسبب قابليته للتوسع وسهولة التكامل. تم تصميمه على رأس Apache Lucene ، وهو يوفر وظيفة بحث وفهرسة نصية فعالة خارج الصندوق. بصرف النظر عن مهام محرك البحث التقليدية ، والبحث عن النص ، واستعلامات القيمة الدقيقة ، يوفر Elasticsearch أيضًا إمكانات التجميع متعدد الطبقات.

مخزن المستندات: MongoDB

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

المتجر العمودي: Amazon Redshift

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

الفهرسة

القدرة على الفهرسة Elasticsearch

من نواحٍ عديدة ، تعد محركات البحث عبارة عن مخازن بيانات متخصصة في فهرسة النصوص.

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

بشكل افتراضي ، يتم إجراء هذا الاسترداد تلقائيًا لكل حقل من خلال أجهزة التحليل.

المحلل عبارة عن وحدة نمطية تنشئ مفاتيح فهرس متعددة من خلال تقييم قيم الحقل وتقسيمها إلى قيم أصغر.

على سبيل المثال ، قد يقوم محلل أساسي بفحص "الثعلب البني السريع قفز فوق الكلب الكسول" في كلمات مثل "the" و "سريع" و "بني" و "fox" وما إلى ذلك.

تتيح هذه الطريقة للمستخدمين العثور على البيانات من خلال البحث عن أجزاء ضمن النتائج ، مرتبة حسب عدد الأجزاء التي تتطابق مع بيانات المستند نفسها.

يمكن للمحلل الأكثر تطورًا استخدام مسافات التحرير ، و n-grams ، والتصفية حسب كلمات التوقف ، لإنشاء فهرس استرداد شامل.

القدرة على فهرسة MongoDB

كمخزن بيانات عام ، يتمتع MongoDB بقدر كبير من المرونة لفهرسة البيانات.

على عكس Elasticsearch ، فإنه يقوم فقط بفهرسة الحقل _id افتراضيًا ، ونحتاج إلى إنشاء فهارس للحقول التي يتم الاستعلام عنها يدويًا.

مقارنةً بـ Elasticsearch ، فإن محلل نص MongoDB ليس بنفس القوة. ولكنه يوفر الكثير من المرونة مع طرق الفهرسة ، من المركب والجغرافيا المكانية للاستعلام الأمثل إلى TTL والقليل لتقليل التخزين.

القدرة على فهرسة الانزياح الأحمر

على عكس Elasticsearch أو MongoDB أو حتى قواعد البيانات التقليدية ، بما في ذلك PostgreSQL ، لا تدعم Amazon Redshift طريقة الفهرسة.

بدلاً من ذلك ، فإنه يقلل من وقت الاستعلام عن طريق الحفاظ على الفرز المتسق على القرص.

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

التشرذم

القدرة على تقاسم Elasticsearch

تم إنشاء Elasticsearch على قمة Lucene لتوسيع نطاقها أفقيًا وتكون جاهزة للإنتاج.

يتم القياس عن طريق إنشاء مثيلات Lucene متعددة (أجزاء) وتوزيعها عبر عدة عقد (خوادم) داخل مجموعة.

بشكل افتراضي ، يتم توجيه كل مستند إلى الجزء الخاص به من خلال حقل _id الخاص به.

أثناء الاسترداد ، ترسل العقدة الرئيسية نسخة من الاستعلام لكل جزء قبل تجميعها وترتيبها للإخراج في النهاية.

قدرة المشاركة في MongoDB

داخل كتلة MongoDB ، هناك ثلاثة أنواع من الخوادم: جهاز التوجيه والتكوين والجزء.

من خلال توسيع نطاق جهاز التوجيه ، يمكن للخوادم قبول المزيد من الطلبات ، لكن العبء الثقيل يحدث في خوادم الجزء.

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

قدرة الانزياح الأحمر للتجزئة

تتكون مجموعة Amazon Redshift من عقدة رئيسية واحدة والعديد من عقد الحوسبة.

تتولى العقدة الرائدة تجميع الاستعلامات وتوزيعها بالإضافة إلى تجميع النتائج الوسيطة.

على عكس خوادم جهاز التوجيه الخاص بـ MongoDB ، فإن العقدة الرئيسية متسقة ولا يمكن تحجيمها أفقيًا.

في حين أن هذا يخلق عنق الزجاجة ، فإنه يسمح أيضًا بالتخزين المؤقت الفعال لخطط التنفيذ المجمعة للاستعلامات الشائعة.

التجميع

القدرة على تجميع Elasticsearch

يمكن تجميع المستندات الموجودة في Elasticsearch بقيم دقيقة أو متفاوتة أو حتى زمنية وقيم تحديد الموقع الجغرافي.

يمكن تجميع هذه الحاويات بشكل أكبر في تفاصيل أكثر دقة من خلال التجميع المتداخل.

يمكن حساب المقاييس ، بما في ذلك الوسائل والانحرافات المعيارية ، لكل طبقة ، مما يوفر القدرة على حساب التسلسل الهرمي للتحليلات داخل استعلام واحد.

نظرًا لكونه تخزينًا مستندًا إلى المستندات ، فإنه يعاني من قيود المقارنات الميدانية داخل المستند.

على سبيل المثال ، في حين أنه من الجيد التصفية إذا كان المتابعون الميدانيون أكبر من 10 ، لا يمكننا التحقق مما إذا كان المتابعون أكبر من حقل آخر يليه .

كبديل ، يمكننا حقن البرامج النصية كمسندات مخصصة. هذه الميزة رائعة للتحليل لمرة واحدة ، لكن الأداء يعاني في الإنتاج.

القدرة التجميعية لـ MongoDB

خط أنابيب التجميع قوي وسريع.

كما يوحي اسمها ، فهي تعمل على البيانات المرتجعة بطريقة مرحلية.

يمكن لكل خطوة تصفية المستندات وتجميعها وتحويلها أو تقديم مقاييس جديدة أو فك المجموعات المجمعة مسبقًا.

نظرًا لأن هذه العمليات تتم بطريقة مرحلية ، ومن خلال ضمان تقليل المستندات والحقول إلى التصفية فقط ، يمكن تقليل تكلفة الذاكرة إلى الحد الأدنى. بالمقارنة مع Elasticsearch ، وحتى Redshift ، فإن Aggregation Pipeline هي طريقة مرنة للغاية لعرض البيانات.

على الرغم من قدرتها على التكيف ، تعاني MongoDB من نفس النقص في المقارنة الميدانية داخل المستند مثل Elasticsearch.

علاوة على ذلك ، تتطلب بعض العمليات ، بما في ذلك $group ، تمرير النتائج إلى العقدة الرئيسية.

وبالتالي ، فهم لا يستفيدون من الحوسبة الموزعة.

أولئك الذين ليسوا على دراية بحساب خط الأنابيب على مراحل سيجدون مهامًا معينة غير بديهية. على سبيل المثال ، يتطلب تلخيص عدد العناصر في حقل المصفوفة خطوتين: أولاً ، حل $unwind ، ثم عملية $group .

الموضوعات ذات الصلة: منصة ذكاء الأعمال: برنامج تعليمي باستخدام خط تجميع MongoDB

القدرة التجميعية للانزياح الأحمر

لا يمكن التقليل من فوائد Amazon Redshift.

يتم حل التجميعات البطيئة بشكل محبط على MongoDB أثناء تحليل حركة مرور البيانات عبر الهاتف المحمول بسرعة بواسطة Amazon Redshift.

بدعم SQL ، سيكون لدى مهندسي قواعد البيانات التقليديين وقت سهل في ترحيل استفساراتهم إلى Redshift.

بصرف النظر عن وقت الإعداد ، تعد SQL لغة استعلام قوية وقابلة للتطوير ، تدعم المقارنات الميدانية داخل المستند / الصف بسهولة. تعمل Amazon Redshift على تحسين أدائها من خلال تجميع الاستعلامات الشائعة وتخزينها مؤقتًا على عقد الحساب.

كقاعدة بيانات علائقية ، لا تتمتع Amazon Redshift بمرونة المخطط التي يتمتع بها كل من MongoDB و Elasticsearch. مُحسَّن لعمليات القراءة ، فإنه يعاني من ضغوط في الأداء أثناء التحديثات والحذف.

للحفاظ على أفضل وقت للقراءة ، يجب فرز الصفوف وإضافة جهود تشغيلية إضافية.

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

اختيار الفائز

في هذه المقالة ، قمنا بفحص ثلاث تقنيات مختلفة - Elasticsearch و MongoDB و Amazon Redshift - في سياق هندسة البيانات. ومع ذلك ، لا يوجد فائز واضح لأن كل من هذه التقنيات هي المتصدرة في فئة نوع التخزين الخاصة بها.

بالنسبة لهندسة البيانات ، بناءً على حالة الاستخدام ، تكون بعض الخيارات أفضل من غيرها.

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