حول إستراتيجية التخزين وشكله في عصر Hadoop

استراتيجية تخزين البيانات


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

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

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

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

هذه الاعتبارات ليست جديدة ، حيث يتم تنفيذها بالفعل في مستودعات البيانات الضخمة مثل Hadoop.

تنسيق تخزين البيانات


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

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

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

نظرًا لهذه الاعتبارات ، يُقترح تنسيق تخزين البيانات التالي.

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

لذا ، نقترح تنسيقًا لتسجيل البيانات حول الكيانات وسماتها ، بناءً على مفهوم سير العمل بناءً على التعريفات التالية:

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

وبناءً على ذلك ، تتكون كل عملية من رأس عملية ومجموعة من السمات التي تعتمد على نوع الكيان:

  1. OpID - معرف فريد للعملية
  2. OpTS - الطابع الزمني للعملية
  3. نوع العملية - نوع العملية
  4. OpClass - اسم الدفق
  5. OpUser - مستخدم النظام الذي أصدر الأمر
  6. OpDoc - مستند العملية ، أي أنه قد لا يتم تثبيت المستند الذي أنشأه
  7. تعليق - تعليق العملية
  8. ID - معرف الكيان الذي ترتبط به العملية
  9. المعلمات - سمات العملية التي تعتمد على التدفق

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

يمكن أن يكون OpType من أي نوع ، على سبيل المثال ، حرف واحد / عدة أحرف أو رقم.
يمكن أن يكون OpClass و OpUser و OpComment سلسلة أو مرجعًا إلى دليل.
يوفر OpDoc رابطًا إلى المستند ، ولكن قد يكون غير موجود. هذا اتصال مع المستوى العلوي.

تنقسم العمليات إلى الخدمات الأساسية.

العمليات الأساسية


العمليات الأساسية 3 - إضافة أو تحديث أو حذف:

  1. إضافة العملية "أ" - تنص على إنشاء مثيل لكيان جديد من نوع معين وتعيين مجموعة من السمات.
  2. تحديث عملية "U" - يكتشف تغييرًا في كيان من نوع معين ويعين قيمًا جديدة لمجموعة معينة من السمات.
  3. حذف "D" - يوضح نهاية حقيقة كيان من نوع معين.

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

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

عند إصدار العملية U ، يجب على النظام التحقق من وجود العملية A لهذا الكيان ، وفي حالة عدم وجودها ، قم بتغيير نوع العملية إلى A.

تغلق العملية D وجود كيان معين ، وعند طلب قيم السمات لهذا الكيان بنقطة صلة بعد هذه العملية ، يجب إعادة القيم "not set" لجميع سمات هذا الكيان. عند إصدار العملية D ، يجب أن يتحقق النظام من وجود العملية A لهذا الكيان ، وفي حالة عدم وجودها ، يرفض حفظ الأمر D.

كميزة إضافية ، يسمح لك هيكل العمليات هذا بتنظيم تخزين كيان له نفس المعرّف بسمات مختلفة في نقاط زمنية مختلفة ، ليس فقط بناءً على السمات ، ولكن أيضًا على الكيان بأكمله. أي أنه يمكن أن يكون لدينا العديد من كتل AN * UD التي يوجد فيها الكيان ، وبين D و A غير موجود.

عمليات الخدمة


يمكن أن تكون عمليات الخدمة كثيرة ويمكن تجديد تكوينها. كمثال ، يمكن عمل عدة اعتبارات:

  1. العملية "N" هي عملية غير صالحة - يجب أن يتجاهل النظام هذه العملية. يمكنك تغيير أنواع أخرى من العمليات إلى N لاستبعادها من العمل.
  2. ذاكرة التخزين المؤقت للعملية "C" - يمكن إنشاء هذه العملية بتردد معين وقيم سمات التخزين في نقطة زمنية محددة من أجل تقليل تكلفة البحث عن قيم السمات في العمق. يمكن تخزين تفاصيل معلمات التشغيل ، على سبيل المثال ، في تعليق أو في رمز العملية نفسها. بالطبع ، عند تطبيق العمليات الأساسية ، يجب إعادة حساب العمليات من النوع C أو استبدالها بـ N.
  3. العملية عمليات المجموعة "S" - يمكن إنشاء هذه العملية بتردد معين وقيم مجموعة مخزن (على سبيل المثال ، المبالغ والمتوسطات وما إلى ذلك) من سمات الأنواع الرقمية لفترة معينة. يمكن تخزين تفاصيل معلمات التشغيل ، على سبيل المثال ، في تعليق أو في رمز العملية نفسها. بالطبع ، عند تطبيق العمليات الأساسية ، يجب إعادة حساب العمليات من النوع S أو استبدالها بـ N.
  4. سمات مجموعة العملية "G" - قد تكون هذه العملية مشابهة لـ U ، ولكن في نفس الوقت ، لن تصدر أوامر معينة من النظام قيمة واحدة من السمات (السمات) ، ولكن عدة قيم. قيمة سمة واحدة لكل عملية A / U ، القيم المتبقية - في العملية G ، والتي تقع بين A / U. المجاورة

تعتبر عمليات الخدمة اختيارية ، ولكن يمكنها توفير خدمة إضافية لنظام التخزين وتحسين أدائها. قد يكون تكوينها مختلفًا لأنظمة مختلفة.

Source: https://habr.com/ru/post/ar423147/


All Articles