التوجه نحو البيانات

يُقصد بتوجيه البيانات تمثيل البيانات الجدولية في نموذج ذاكرة خطي ، مثل التخزين على القرص أو في الذاكرة . وأكثر نوعين شيوعًا هما التمثيل العمودي (التنسيق العمودي) والتمثيل الصفّي (التنسيق الصفّي). [ 1 ] [ 2 ]

يُعد اختيار اتجاه البيانات مسألة توازن وقرارًا معماريًا في قواعد البيانات ومحركات الاستعلام والمحاكاة العددية. [ 1 ] ونتيجةً لهذه المفاضلات، تُستخدم تنسيقات البيانات الموجهة نحو الصفوف بشكل أكثر شيوعًا في معالجة المعاملات عبر الإنترنت (OLTP)، بينما تُستخدم تنسيقات البيانات الموجهة نحو الأعمدة بشكل أكثر شيوعًا في المعالجة التحليلية عبر الإنترنت (OLAP). [ 2 ]

من أمثلة التنسيقات العمودية: Apache ORC ، [ 3 ] و Apache Parquet ، [ 4 ] وApache Arrow ، [ 5 ] وهي التنسيقات المستخدمة في BigQuery و Amazon Redshift و Snowflake . أما الأمثلة الشائعة للتنسيقات الصفية فتشمل CSV، والتنسيقات المستخدمة في معظم قواعد البيانات العلائقية ( Oracle و MySQL وغيرها)، وتنسيق Apache Spark المُخزّن في الذاكرة ، و Apache Avro . [ 6 ]

وصف

البيانات الجدولية ثنائية الأبعاد، حيث تُنمذج البيانات على شكل صفوف وأعمدة. مع ذلك، تُمثل أنظمة الحاسوب البيانات في نموذج ذاكرة خطي ، سواءً على القرص أو في الذاكرة. [ 7 ] [ 8 ] [ 9 ] لذا، يتطلب الجدول في نموذج الذاكرة الخطي تحويل مخططه ثنائي الأبعاد إلى فضاء أحادي البعد. ويُحدد اتجاه البيانات القرار المُتخذ في هذا التحويل. وهناك نوعان رئيسيان من التحويل: التحويل الصفّي والتحويل العمودي. [ 1 ] [ 2 ]

موجه نحو الصفوف

في قاعدة البيانات الموجهة نحو الصفوف، والمعروفة أيضًا باسم مخزن الصفوف، عناصر الجدول

العمود 1العمود 2العمود 3
البند 11البند 12البند 13
البند 21البند 22البند 23

يتم تخزينها بشكل خطي كـ

البند 11البند 12البند 13البند 21البند 22البند 23

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

أمثلة

موجه نحو الأعمدة

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

العمود 1العمود 2العمود 3
البند 11البند 12البند 13
البند 21البند 22البند 23

يتم تخزينها بشكل خطي كـ

البند 11البند 21البند 12البند 22البند 13البند 23

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

أمثلة

راجع قائمة أنظمة إدارة قواعد البيانات الموجهة نحو الأعمدة لمزيد من الأمثلة.

التنازل عن ميزة ممن أجل الحصول على أخرى

يُعدّ توجيه البيانات قرارًا معماريًا هامًا لأنظمة معالجة البيانات، لأنه يُؤدي إلى مفاضلات مهمة في الأداء والتخزين . [ 8 ] فيما يلي بعض جوانب هذه المفاضلة.

الوصول العشوائي

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

أدخل

يستفيد التصميم الموجه نحو الصفوف من سرعة إدراج صف جديد. ويستفيد التصميم الموجه نحو الأعمدة من سرعة إدراج عمود جديد.

يُعد هذا البُعد سببًا مهمًا لاستخدام التنسيقات الموجهة نحو الصفوف بشكل أكثر شيوعًا في معالجة المعاملات عبر الإنترنت (OLTP)، حيث ينتج عنه معاملات أسرع مقارنةً بالتنسيقات الموجهة نحو الأعمدة. [ 2 ]

الوصول المشروط

يستفيد التصميم الموجه نحو الصفوف من الوصول السريع تحت عامل التصفية. ويستفيد التصميم الموجه نحو الأعمدة من الوصول السريع تحت الإسقاط . [ 4 ] [ 3 ]

أداء الحوسبة

تستفيد المعالجة العمودية من عمليات التحليل السريعة. وهذا نتيجة القدرة على الاستفادة من تعليمات SIMD . [ 5 ]

الحجم غير المضغوط

تستفيد طريقة العرض العمودية من صغر حجم البيانات غير المضغوطة. ويعود ذلك إلى إمكانية تمثيل أنواع بيانات معينة باستخدام ترميزات مخصصة. [ 4 ] [ 3 ]

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

حجم مضغوط

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

التحويل والتبادل

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

  1. قراءة البيانات من Apache Parquet (الموجهة نحو الأعمدة)
  2. قم بتحميله في تنسيق الذاكرة الداخلية لـ Spark (الموجه نحو الصفوف)
  3. قم بتحويله إلى Apache Arrow لإجراء عملية حسابية محددة (موجهة نحو الأعمدة)
  4. اكتبها إلى Apache Avro للبث (موجهة نحو الصفوف)

مراجع

  1. 1 2 3 عبادي، دانيال ج.؛ مادن، صموئيل ر.؛ هاشم، نبيل (2008). "مخازن الأعمدة مقابل مخازن الصفوف: ما مدى اختلافهما حقًا؟". وقائع مؤتمر ACM SIGMOD الدولي لإدارة البيانات لعام 2008. الصفحات 967-980 . doi : 10.1145/1376616.1376712 . ISBN  978-1-60558-102-6.
  2. 1 2 3 4 فونكه، فلوريان؛ كيمبر، ألفونس؛ نيومان، توماس (2012). "ضغط بيانات المعاملات في قواعد بيانات OLTP وOLAP الهجينة". وقائع مؤسسة VLDB . 5 (11): 1424-1435 . doi : 10.14778/2350229.2350258 .
  3. 1 2 3 4 "Apache ORC" . تم الاطلاع عليه بتاريخ 21-05-2024 .
  4. 1 2 3 4 "أرضيات أباتشي باركيه" . تم الاطلاع عليه بتاريخ 21-05-2024 .
  5. 1 2 "أباتشي آرو" . تم الاسترجاع في 21-05-2024 .
  6. "أباتشي أفرو" . تم الاطلاع عليه بتاريخ 21-05-2024 .
  7. ريتشارد، جولدن جي؛ كيس، أندرو (2014). "بدلاً من التبديل: تحليل ذاكرة الوصول العشوائي المضغوطة في نظامي التشغيل ماك أو إس إكس ولينكس" . التحقيق الرقمي . 11 : S3– S12. doi : 10.1016/j.diin.2014.05.011 .
  8. 1 2 3 م. فرانس كاشوك، جيروم هـ. سالتزر (2009). مبادئ تصميم نظام الكمبيوتر . مورجان كوفمان. رقم ISBN 978-0-12-374957-4.
  9. "الفصل 4 مساحة عنوان العملية (وثائق نواة لينكس)" . تم الاطلاع عليه بتاريخ 21-05-2024 .
  10. "أساسيات برمجة R - 9 إطارات البيانات" . www.gastonsanchez.com . تم الاطلاع عليه بتاريخ 19 يناير 2025 .