كيفية اختيار مخزن بيانات للشيء اللامع الجديد التالي

نشرت: 2018-01-26

ملاحظة: هذا منشور تقني على المدونة كتبته المهندسة الرئيسية سيلفيا بطرس وظهر لأول مرة على مدونة Sysadvent في 25 ديسمبر 2017.

يمكن أن تكون قواعد البيانات صعبة. هل تعلم ما هو الأصعب؟ اختيار واحد في المقام الأول. هذا يمثل تحديًا سواء كنت تعمل في شركة جديدة لا تزال تجد منتجها / سوقها مناسبًا أو في شركة وجدت جمهورها وتقوم ببساطة بتوسيع عرض المنتج.

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

وبالتالي. عديدة. خيارات…

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

متطلبات خط الأساس

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

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

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

  • معدل النمو: كيف يُتوقع أن تتغير البيانات نفسها أو الوصول إليها بمرور الوقت؟
  • كيف سيستخدم فريق الفوترة هذه البيانات الجديدة؟
  • كيف سيستخدم فريق ETL هذه البيانات؟
  • ما هي متطلبات الدقة / الاتساق المتوقعة لهذه الميزة الجديدة؟
  • ما هي الفترة الزمنية المقبولة لهذا الاتساق؟ هل التصحيح بعد المعالجة مقبول؟

ابحث عن السياق الذي لم يقال

اختيار مخزن البيانات ليس خيارًا مخصصًا لـ DBA أو فريق Ops أو حتى المهندس الذي يكتب الكود.

تحتاج المنظمات الناضجة التي لها سوق معروف عنونة إلى اتخاذ قرار من أصحاب المصلحة من جميع أنحاء المنظمة.

إذا كانت المتطلبات من فريق المنتج تناسب عشرات من مخازن البيانات ، فكيف تحدد المتطلبات التي لم يتم ذكرها صراحةً؟

تحتاج إلى إظهار المتطلبات غير المعلنة في أسرع وقت ممكن لأنها الطريق إلى التوقعات الفاشلة في المستقبل.

يمكن أن تجعلك الكثير من الأشياء الضمنية تفشل في فخ "الكثير من الخيارات". وهذا يشمل على سبيل المثال لا الحصر:

  • قوائم ميزات غير كاملة
  • متطلبات الأداء التي لم يتم سردها صراحة
  • احتياجات الاتساق المفترضة
  • معدل النمو غير المحدد
  • متطلبات الفوترة أو استعلام ETL غير المتاحة / المعروفة بعد

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

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

اصنع قائمتك

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

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

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

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

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

اختر السم

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

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

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

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

يجب أن يؤدي التفكير في نقاط الضعف في الحلول المحتملة التي لا تزال مدرجة في قائمتك إلى إزالة المزيد من الخيارات من القائمة. هذا هو الواقع الآن يفي بالوعود النبيلة للتكنولوجيا.

جدول بيانات واخبز!

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

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

لماذا المعيار تقول؟ لأنه لا توجد شركتان تستخدمان نفس مخزن البيانات بنفس الطريقة. لأنه في بعض الأحيان يتضمن التوثيق محاذير لا يتم الكشف عنها إلا في قصص حرب الآخرين.

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

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

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

وثق اختيارك

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

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

الوجبات الجاهزة

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