كيف تُسرّع تقنية التخزين العمودي تحليلات مستشعرات المنزل؟

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

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

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

يفصل التخطيط العمودي الحقول التي يحتاج إليها الاستعلام التحليلي فعليًا

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

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

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

يمنع دفع الإسقاط والتصفية إدخال البيانات غير اللازمة إلى عملية الفحص

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

يمكن لـ DuckDB تطبيق دفع الإسقاط والتصفية عند قراءة Parquet، بحيث لا تُقرأ إلا الأعمدة المطلوبة، ويمكن لعوامل التصفية أن تسهم في تخطي أجزاء من الملف. لذلك يستطيع استعلام يحسب متوسط الرطوبة في غرفة واحدة تضييق نطاق الحقول، وكذلك، عندما تسمح البيانات الوصفية، نطاقات الصفوف ذات الصلة قبل التنفيذ الكامل.

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

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

يمنح تخزين القيم المتشابهة معًا المرمّزات وأدوات الضغط محلية أفضل

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

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

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

تتيح البيانات الوصفية لمجموعات الصفوف للقارئ تخطي النطاقات التي لا يمكن أن تطابق الشروط

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

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

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

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

تتناسب الدفعات العمودية جيدًا مع التنفيذ المتجه على وحدة المعالجة المركزية

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

يصف Apache Arrow تخطيطًا للذاكرة العمودية يحسن المحلية ويمكّن من الحوسبة المتجهة باستخدام معالجات تدعم SIMD. لذلك يستطيع محرّك استعلام محلي معالجة دفعات من درجات الحرارة أو قراءات الطاقة، بدلًا من فك حزم سجلات كاملة وغير متجانسة واحدًا تلو الآخر.

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

يفضل التخزين العمودي عمليات الفحص التاريخية أكثر من الحالة الحالية القابلة للتغيير

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

يتبادل Arrow صراحةً المحلية التحليلية القوية مقابل عمليات تغيير أكثر تكلفة، وهو ما يوضح الحد الأوسع: تتألق الأنظمة العمودية عندما تُفحص قيم كثيرة معًا، بينما قد تفضل إعادة كتابة السجلات الصغيرة باستمرار بنية أخرى.

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

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

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.