خطوات الاستخدام
الخطوة الأولى: تحديد عدد الكيانات (Entities). الكيان هو العنصر الذي يتم جمع البيانات عنه، مثل مستخدم أو جهاز استشعار. كل كيان يمثل صفًا في مخزن الميزات. يجب إدخال العدد الإجمالي للكيانات المتوقعة (مع مراعاة النمو المستقبلي).
الخطوة الثانية: تحديد عدد الميزات (Features). الميزات هي الخصائص أو المتغيرات المخزنة لكل كيان، مثل العمر أو درجة الحرارة. كل ميزة تمثل عمودًا. أدخل عدد الميزات الكلي الذي تخطط لتخزينه.
الخطوة الثالثة: تحديد عدد الطوابع الزمنية (Timestamps). يمثل هذا عدد النقاط الزمنية المختلفة لكل كيان، خاصة في حالة بيانات السلاسل الزمنية. على سبيل المثال، إذا كنت تخزن بيانات يومية لمدة عام، فسيكون عدد الطوابع الزمنية 365. إذا لم تكن بياناتك زمنية، استخدم القيمة 1.
الخطوة الرابعة: فهم حجم الخلية الواحدة. القيمة الخام تُخزَّن عادةً كرقم عشري float32 بحجم 4 بايت، لكن المخزن الحقيقي يضيف تعريفات إضافية (overhead) مثل المفاتيح والفهارس، لذا يُتفق على مدى 8 إلى 16 بايت لكل خلية. نعتمد هنا 12 بايت كقيمة وسطية مبسطة، ونعرض في التفاصيل حجم float32 الخام (4 بايت) للقياسين معًا.
الخطوة الخامسة: حساب الحجم الإجمالي بالبايت ثم التحويل إلى ميغابايت. المعادلة: الحجم الإجمالي (بايت) = عدد الكيانات × عدد الميزات × عدد الطوابع الزمنية × حجم الخلية (12 بايت). ثم اقسم على 1,048,576 لتحويل البايت إلى ميغابايت.
أمثلة محلولة
تطبيقات عملية على حجم مخزن الميزات بخطوات الحل كاملة.
الحل
نقوم بإدخال القيم: الكيانات = 10,000، الميزات = 20، الطوابع الزمنية = 30. بافتراض حجم خلية 12 بايت، الحجم الإجمالي = 10,000 × 20 × 30 × 12 = 72,000,000 بايت. نقسم على 1,048,576 للحصول على: 68.66 ميغابايت تقريبًا. هذا تقدير أولي، لكن في الواقع قد يكون أصغر إذا استخدمنا ضغط البيانات أو تخزين قيم متناثرة (sparse). نوصي بإضافة 20% هامش أمان ليصبح حوالي 82 ميغابايت.
الحل
البيانات: الكيانات = 500، الميزات = 4، الطوابع الزمنية = 7 أيام × 24 ساعة = 168. عدد الخلايا = 500 × 4 × 168 = 336,000 خلية. بالحجم التقريبي 12 بايت لكل خلية: 336,000 × 12 = 4,032,000 بايت، وبقسمة ذلك على 1,048,576 ينتج 3.845167 ميغابايت (تقريبًا 3.85 كما في النص). أما بتخزين float32 الخام (4 بايت لكل خلية) فيصبح 1,344,000 بايت = 1.2817 ميغابايت، وباستخدام float64 (8 بايت) يصبح 2,688,000 بايت = 2.563477 ميغابايت، أي ضعف float32 بالضبط. لاحظ أن الانتقال من 12 بايت إلى 8 بايت يُنقص الحجم ولا يضاعفه: التقدير الأصح هو 2.56 ميغابايت وليس 7.7. هذا الحجم صغير، لكن يجب مراعاة أن بيانات التعريف لكل مستشعر تضيف إليه.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة حجم مخزن الميزات.
10,000 مستخدم × 20 ميزة × 30 يومًا: 68.66 ميغابايت (82.4 مع الهامش)
- عدد الكيانات
- 10,000
- عدد الميزات
- 20
- عدد الطوابع الزمنية (أيام)
- 30
500 مستشعر بساعة لمدة 7 أيام: 3.845 ميغابايت و 1.282 بـ float32
- عدد الكيانات
- 500
- عدد الميزات
- 4
- عدد الطوابع الزمنية (أيام)
- 168
جدول من 4 خلايا: 48 بايت = 0.000046 ميغابايت لا صفر
- عدد الكيانات
- 2
- عدد الميزات
- 2
- عدد الطوابع الزمنية (أيام)
- 1