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

تنسيق البيانات الهرمي ( HDF ) هو مجموعة من تنسيقات الملفات ( HDF4 ، HDF5 ) المصممة لتخزين وتنظيم كميات كبيرة من البيانات. طُوّر هذا التنسيق في الأصل في المركز الوطني الأمريكي لتطبيقات الحوسبة الفائقة ، وهو مدعوم من قبل مجموعة HDF، وهي مؤسسة غير ربحية تهدف إلى ضمان استمرار تطوير تقنيات HDF5 واستمرار إمكانية الوصول إلى البيانات المخزنة بتنسيق HDF.

تماشيًا مع هذا الهدف، تتوفر مكتبات HDF والأدوات المرتبطة بها بموجب ترخيص مفتوح المصدر، شبيه بترخيص BSD، للاستخدام العام. يدعم HDF العديد من منصات البرامج التجارية وغير التجارية ولغات البرمجة. يتكون توزيع HDF المجاني من المكتبة، وأدوات سطر الأوامر، ومصدر مجموعة الاختبارات، وواجهة جافا، وعارض HDF المبني على جافا (HDFView). [ 1 ]

يختلف الإصدار الحالي، HDF5، اختلافًا كبيرًا في التصميم وواجهة برمجة التطبيقات عن الإصدار القديم الرئيسي HDF4.

التاريخ المبكر

بدأ البحث عن صيغة بيانات علمية محمولة، والتي أُطلق عليها في الأصل اسم AEHOO (صيغة شاملة هرمية موجهة للكائنات)، في عام 1987 من قِبل فريق عمل أسس الرسومات (GFTF) في المركز الوطني لتطبيقات الحوسبة الفائقة (NCSA). وكانت منح مؤسسة العلوم الوطنية (NSF) التي تم الحصول عليها في عامي 1990 و1992 ذات أهمية بالغة للمشروع. وفي ذلك الوقت تقريبًا، قامت وكالة ناسا بدراسة 15 صيغة ملفات مختلفة لاستخدامها في مشروع نظام مراقبة الأرض (EOS). وبعد عملية مراجعة استمرت عامين، تم اختيار HDF كنظام البيانات والمعلومات القياسي. [ 2 ]

HDF4

يُعدّ HDF4 الإصدار الأقدم من هذا التنسيق، مع أنه لا يزال يحظى بدعمٍ فعّال من مجموعة HDF. يدعم هذا الإصدار مجموعةً واسعةً من نماذج البيانات المختلفة، بما في ذلك المصفوفات متعددة الأبعاد، والصور النقطية ، والجداول. يُعرّف كل نموذج نوع بيانات مُجمّعًا مُحددًا، ويُوفّر واجهة برمجة تطبيقات (API) لقراءة البيانات والبيانات الوصفية وكتابتها وتنظيمها. يُمكن لمطوري HDF أو مستخدميه إضافة نماذج بيانات جديدة.

يُعدّ HDF ملفًا ذاتي الوصف، مما يسمح للتطبيق بتفسير بنية الملف ومحتوياته دون الحاجة إلى معلومات خارجية. يمكن لملف HDF واحد أن يحتوي على مجموعة من الكائنات ذات الصلة، والتي يمكن الوصول إليها كمجموعة أو ككائنات فردية. يمكن للمستخدمين إنشاء هياكل تجميع خاصة بهم تُسمى "مجموعات افتراضية". [ 3 ]

يُعاني تنسيق HDF4 من العديد من القيود. [ 4 ] [ 5 ] فهو يفتقر إلى نموذج كائنات واضح، مما يُصعّب استمرار دعمه وتطويره. كما أن دعم أنماط واجهة مستخدم متعددة (صور، جداول، مصفوفات) يُؤدي إلى واجهة برمجة تطبيقات معقدة. ويعتمد دعم البيانات الوصفية على الواجهة المُستخدمة؛ إذ تدعم كائنات SD (مجموعة البيانات العلمية) سمات مُسماة عشوائية، بينما تدعم الأنواع الأخرى بيانات وصفية مُحددة مُسبقًا فقط. ولعل الأهم من ذلك، أن استخدام الأعداد الصحيحة المُوقّعة 32 بت للعنونة يُحدّ من حجم ملفات HDF4 إلى 2 جيجابايت كحد أقصى، وهو حجم غير مقبول في العديد من التطبيقات العلمية الحديثة.

HDF5

صُممت صيغة HDF5 لمعالجة بعض قيود مكتبة HDF4، ولتلبية المتطلبات الحالية والمتوقعة للأنظمة والتطبيقات الحديثة. وقد فازت بجائزة R&D 100 عام 2002. [ 6 ]

يُبسّط HDF5 بنية الملف لتشمل نوعين رئيسيين فقط من الكائنات:

مثال على بنية HDF
  • مجموعات البيانات، وهي عبارة عن مصفوفات متعددة الأبعاد مصنفة.
  • المجموعات، وهي هياكل حاويات يمكنها استيعاب مجموعات البيانات ومجموعات أخرى

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

إضافةً إلى هذه التحسينات في تنسيق الملف، يتضمن HDF5 نظام أنواع مُحسَّنًا، وكائنات مساحة البيانات التي تُمثِّل عمليات التحديد على مناطق مجموعة البيانات. كما أن واجهة برمجة التطبيقات (API) مُوجَّهة للكائنات فيما يتعلق بمجموعات البيانات، والمجموعات، والسمات، والأنواع، ومساحات البيانات، وقوائم الخصائص.

يعتمد أحدث إصدار من NetCDF ، الإصدار 4، على HDF5.

بفضل استخدامها لأشجار B لفهرسة عناصر الجداول، تُعدّ HDF5 مثاليةً لبيانات السلاسل الزمنية ، مثل سلاسل أسعار الأسهم، وبيانات مراقبة الشبكات، وبيانات الأرصاد الجوية ثلاثية الأبعاد. يُخزَّن الجزء الأكبر من البيانات في مصفوفات بسيطة (عناصر الجداول) يُمكن الوصول إليها بسرعة أكبر بكثير من صفوف قاعدة بيانات SQL ، مع إمكانية الوصول عبر أشجار B للبيانات غير المصفوفية. تتميز آلية تخزين البيانات في HDF5 بالبساطة والسرعة مقارنةً بمخطط النجمة في SQL .

تعليق

ينبع النقد الموجه إلى HDF5 من تصميمه المتجانس ومواصفاته المطولة.

  • لا يفرض HDF5 استخدام UTF-8 ، لذلك قد تتوقع تطبيقات العميل ASCII في معظم الأماكن.
  • لا يمكن تحرير بيانات مجموعة البيانات في ملف دون إنشاء نسخة من الملف باستخدام أداة خارجية (h5repack). [ 7 ]

واجهات برمجة التطبيقات المدعومة رسميًا

  • ج
  • لغة سي++
  • واجهة سطر الأوامر - .NET
  • فورتران ، فورتران 90
  • HDF5 Lite (H5LT) – واجهة خفيفة الوزن للغة C
  • صورة HDF5 (H5IM) - واجهة C للصور أو الصور النقطية
  • جدول HDF5 (H5TB) - واجهة C للجداول
  • جدول حزم HDF5 (H5PT) – واجهات للغة C و C++ للتعامل مع بيانات "الحزم"، والتي يتم الوصول إليها بسرعات عالية
  • مقياس الأبعاد HDF5 (H5DS) – يسمح بإضافة مقاييس الأبعاد إلى HDF5
  • جافا

انظر أيضاً

  • تنسيق البيانات الشائع (CDF)
  • FITS ، وهو تنسيق بيانات يستخدم في علم الفلك
  • GRIB (ثنائي مُجمّع)، وهو تنسيق بيانات يُستخدم في علم الأرصاد الجوية
  • مستكشف HDF
  • مكتبة NetCDF ، وهي مكتبة جافا تقرأ ملفات HDF5 وHDF4 وHDF-EOS وغيرها من التنسيقات باستخدام لغة جافا فقط.
  • بروتوكول بافرز - تنسيق تبادل البيانات الخاص بجوجل
  • Zarr ، وهو تنسيق بيانات يشبه HDF5

مراجع

  1. "عارض ملفات HDF قائم على جافا (HDFView)" . مؤرشف من الأصل بتاريخ 11 أغسطس 2016. تم الاطلاع عليه بتاريخ 25 يوليو 2014 .
  2. "تاريخ مجموعة HDF" . مؤرشف من الأصل في 21 أغسطس 2016. تم الاطلاع عليه في 15 يوليو 2014 .
  3. تستند هذه المقالة إلى مواد مأخوذة من Hierarchical+Data+Format في قاموس الحوسبة المجاني على الإنترنت قبل 1 نوفمبر 2008 وتم دمجها بموجب شروط "إعادة الترخيص" الخاصة بـ GFDL ، الإصدار 1.3 أو أحدث.
  4. ما الفرق بين HDF5 وHDF4؟ (مؤرشف بتاريخ 30 مارس 2009 في أرشيف الإنترنت)
  5. "هل توجد قيود على ملفات HDF4؟" . مؤرشف من الأصل بتاريخ 19 أبريل 2016. تم الاطلاع عليه بتاريخ 29 مارس 2009 .
  6. أرشيف جوائز البحث والتطوير 100، مؤرشف بتاريخ 4 يناير 2011 في موقع Wayback Machine
  7. روسانت، سيريل. "الابتعاد عن HDF5" . cyrille.rossant.net . تم الاطلاع عليه بتاريخ 21 أبريل 2016 .