تنسيقات الملفات في البيانات الضخمة: برنامج تعليمي موجز

تنسيقات الملفات في البيانات الضخمة: برنامج تعليمي موجز
إله الطقس من ريمارين

فريق حلول سحابة Mail.ru تقدم ترجمة المقالة المهندس راهول بهاتيا من Clairvoyant يتحدث عن تنسيقات الملفات الموجودة في البيانات الضخمة، وما هي الميزات الأكثر شيوعًا لتنسيقات Hadoop وأي تنسيق أفضل للاستخدام.

لماذا هناك حاجة إلى تنسيقات ملفات مختلفة؟

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

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

تنسيقات الملفات المختلفة في Hadoop اخترع لحل هذه المشاكل على وجه التحديد. يمكن أن يوفر تحديد تنسيق الملف المناسب بعض الفوائد المهمة:

  1. أسرع وقت للقراءة.
  2. وقت تسجيل أسرع.
  3. الملفات المشتركة.
  4. دعم تطور المخطط.
  5. دعم الضغط الموسع.

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

تنسيق ملف أفرو

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

نظام التسلسل الخاص بـ Avro محايد للغة. يمكن معالجة الملفات بمجموعة متنوعة من اللغات، حاليًا C وC++ وC# وJava وPython وRuby.

الميزة الرئيسية لـ Avro هي دعمها القوي لمخططات البيانات التي تتغير بمرور الوقت، أي أنها تتطور. يفهم Avro تغييرات المخطط — مثل حذف الحقول أو إضافتها أو تغييرها.

يدعم Avro مجموعة متنوعة من هياكل البيانات. على سبيل المثال، يمكنك إنشاء سجل يحتوي على صفيف ونوع معدود وسجل فرعي.

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

لذلك، يعد هذا التنسيق هو الأنسب للكتابة في منطقة الهبوط لبحيرة البيانات للأسباب التالية:

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

تنسيق ملف الباركيه

الباركيه هو تنسيق ملف مفتوح المصدر لـ Hadoop الذي يخزن هياكل البيانات المتداخلة بتنسيق عمودي مسطح.

بالمقارنة مع أسلوب الصف التقليدي، يعتبر الباركيه أكثر كفاءة من حيث التخزين والأداء.

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

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

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

ID
الاسم
القسم

1
emp1
d1

2
emp2
d2

3
emp3
d3

في شكل سلسلة، سيتم حفظ البيانات على النحو التالي:

1
emp1
d1
2
emp2
d2
3
emp3
d3

في تنسيق ملف عمودي، سيتم حفظ نفس البيانات على النحو التالي:

1
2
3
emp1
emp2
emp3
d1
d2
d3

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

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

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

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

تنسيقات الملفات في البيانات الضخمة: برنامج تعليمي موجز
لفهم تنسيق ملف الباركيه في Hadoop، عليك معرفة المصطلحات التالية:

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

تنسيقات الملفات في البيانات الضخمة: برنامج تعليمي موجز
هنا العنوان يحتوي فقط على الرقم السحري PAR1 (4 بايت) والذي يحدد الملف كملف باركيه.

يقول التذييل ما يلي:

  1. بيانات تعريف الملف التي تحتوي على إحداثيات البداية للبيانات التعريفية لكل عمود. عند القراءة، يجب عليك أولاً قراءة البيانات التعريفية للملف للعثور على جميع أجزاء الأعمدة محل الاهتمام. وينبغي بعد ذلك قراءة أجزاء العمود بالتسلسل. تتضمن البيانات التعريفية الأخرى إصدار التنسيق والمخطط وأي أزواج إضافية من المفاتيح والقيمة.
  2. طول البيانات الوصفية (4 بايت).
  3. الرقم السحري PAR1 (4 بايت).

تنسيق ملف ORC

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

مزايا تنسيق ORC:

  1. ملف واحد هو مخرجات كل مهمة، مما يقلل الحمل على NameNode (عقدة الاسم).
  2. دعم أنواع بيانات Hive، بما في ذلك DateTime وأنواع البيانات العشرية والمعقدة (البنية والقائمة والخريطة والاتحاد).
  3. القراءة المتزامنة لنفس الملف من خلال عمليات RecordReader المختلفة.
  4. القدرة على تقسيم الملفات دون البحث عن العلامات.
  5. تقدير الحد الأقصى الممكن لتخصيص ذاكرة الكومة لعمليات القراءة/الكتابة بناءً على المعلومات الموجودة في تذييل الملف.
  6. يتم تخزين البيانات التعريفية في تنسيق التسلسل الثنائي لـ Protocol Buffers، والذي يسمح بإضافة الحقول وإزالتها.

تنسيقات الملفات في البيانات الضخمة: برنامج تعليمي موجز
يقوم ORC بتخزين مجموعات من السلاسل في ملف واحد، وداخل المجموعة، يتم تخزين بيانات السلسلة بتنسيق عمودي.

يقوم ملف ORC بتخزين مجموعات من الخطوط تسمى الخطوط والمعلومات الداعمة في تذييل الملف. يحتوي التذييل الموجود في نهاية الملف على معلمات الضغط وحجم التذييل المضغوط.

حجم الشريط الافتراضي هو 250 ميجابايت. نظرًا لهذه الخطوط الكبيرة، تتم القراءة من HDFS بشكل أكثر كفاءة: في كتل كبيرة متجاورة.

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

يحتوي تذييل الشريط على دليل لمواقع الدفق.

يتم استخدام بيانات الصف عند مسح الجداول.

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

مقارنة تنسيقات الملفات المختلفة

أفرو مقارنة بالباركيه

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

ORC مقابل الباركيه

  1. يقوم الباركيه بتخزين البيانات المتداخلة بشكل أفضل.
  2. يعتبر ORC أكثر ملاءمة للمسند للأسفل.
  3. يدعم ORC خصائص ACID.
  4. يقوم ORC بضغط البيانات بشكل أفضل.

ماذا تقرأ عن الموضوع:

  1. تحليل البيانات الضخمة في السحابة: كيف يمكن للشركة أن تصبح موجهة نحو البيانات.
  2. دليل متواضع لمخططات قاعدة البيانات.
  3. قناتنا على التليجرام تتحدث عن التحول الرقمي.

المصدر: www.habr.com

إضافة تعليق