מערך נתונים HDF5 (.hdf5)
The תקןפורמט הנתונים ההיררכי 5 (HDF5) הוא ארכיטקטורת ניהול הנתונים המדעית המובילה עבור מערכי נתונים רב-ממדיים עצומים, המשמשת בהרחבה במחשוב-על, מידול אקלים, מדעי המוח ולמידת מכונה.
המר HDF5 ל-CSV
ממיר חינמי מ-HDF5 ל-CSV פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי HDF5 על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי HDF5 על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
89 48 44 46 0D 0A 1A 0Aייצוג ASCII: \x89HDF\r\n\x1a\n
תקינה: The HDF Group Open Standard Specification
מפרט טכני
| מבנה המכולה | מכל בינארי היררכי דמוי מערכת קבצים, המארגן נתונים בקבוצות (תיקיות) ובמערכי נתונים (מערכים רב־ממדיים) עם מאפיינים |
| דחיסה | מסנני דחיסה מבוססי מקטעים: Gzip (Deflate), SZIP, Zstandard, Blosc ו-LZF |
| סדר בתים (Endianness) | מצוין ב-superblock (סדר Little-Endian או Big-Endian) |
| מרחבי צבע | לא רלוונטי (מערכים מספריים רב־ממדיים) |
| ערוצים ומבנה | מערכים מדעיים רב־ממדיים, טיפוסי נתונים מורכבים ומחרוזות באורך משתנה |
| ממדים מרביים | כמעט ללא הגבלה מעשית (תומך בקואורדינטות של 64 סיביות ובמערכי נתונים בהיקף פטה־בייטים) |
| שקיפות | אין |
| הזרמה ופרוגרסיביות | אחסון במקטעים מאפשר לקרוא חלקים ממרחב הנתונים בלי לטעון את כולו לזיכרון |
מטריצת השוואה טכנית: HDF5 מול מתחרים
| תכונה טכנית | HDF5 (נוכחי) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| מבנה היררכיה | מערכת קבצים מלאה דמוית POSIX (קבוצות ומערכי נתונים) | NetCDF-4 משתמש ב-HDF5 מתחת מכסה המנוע | מערכים וטבלאות בלוקים קבועים | פורמט ספרייה מקוטע מותאם לענן (cloud-native) |
| חיתוך מערך נתונים | קריאות היפרסלאב בינאריות מהירות במיוחד | קריאות היפרסלאב מהירות | אינדוקס בלוקים ישיר | שליפות מקטעים במקביל מהענן |
| שימוש בלמידת מכונה | תקן למשקלי מודל (Keras .h5) | בשימוש נדיר ב-AI | ללא | שימוש גדל והולך במערכי נתונים לאימון AI |
| אקוסיסטם עיקרי | NCSA, מחשוב-על, Python h5py | NOAA, מטאורולוגיה, אוקיאנוגרפיה | נאס"א, אסטרונומיה, טלסקופים | מדע נתונים מותאם לענן |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
שגיאת Python h5py: 'Unable to open file (file signature not found)'.
גורם שורש: סופר-בלוק פגום בן 8 בייט בתחילת הקובץ.
שחזור: בדוק היסט סופר-בלוק או שחזר מערכי נתונים באמצעות כלי ה-HDF5 של File2File.app.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
ספריית libhdf5 הרשמית מנתחת עצי B מורכבים וטבלאות ערימה (heaps) שבהן היסטים פגומים גרמו לפגיעויות גלישת ערימה (heap overflow).
ווקטורי תקיפה ידועים
- גלישת חוצץ ערימה במהלך מעבר אינדקס צומת עץ B (למשל CVE-2021-37501).
- כתיבה מחוץ לגבולות בתוספי צינור סינון פענוח מותאמים אישית.
- מניעת שירות באמצעות מחזורי קישור קבוצתיים מעגליים.
שיטות מומלצות להגנה: עבד קובצי HDF5 לא מהימנים באמצעות מנועי WebAssembly מבודדים עם מגבלות זיכרון מחמירות.
היסטוריה ואבני דרך
יתרונות מרכזיים
- מערכת קבצים מלאה בתוך קובץ: מארגנת מערכי נתונים מורכבים בגודל פטה-בייט לקבוצות ומערכי נתונים בעלי שמות בדומה לספריות.
- חיתוך תת-מרחבי (hyperslab) בעל ביצועים גבוהים: קרא פרוסה דו-ממדית זעירה ממטריצה חמש-ממדית עצומה בת 100 גיגה-בייט מבלי לקרוא את הקובץ המלא.
- אינטגרציה עמוקה עם Python מדעי מודרני (h5py), MATLAB, R ומחשבי-על במקביליות MPI בעלי ביצועים גבוהים.
מגבלות טכניות וחסרונות
- מורכבות מפרט גבוהה מקשה על יישומי מנתח עצמאיים מחוץ לספריית ה-C הרשמית libhdf5.
- מגבלות הנעילה לכותב יחיד ב-HDF5 הקלאסי סיבכו היסטורית תהליכי כתיבה במקביל.
- סופר-בלוקים (superblocks) פגומים עלולים להפוך את כל העץ ההיררכי לבלתי נגיש.
עובדות טכניות מעניינות
- חתימת HDF5 נגזרת מ-PNG; היא מזהה את הפורמט ועוזרת לזהות שגיאות העברה נפוצות.
- מערכת תצפית כדור הארץ (EOS) של נאס"א מאחסנת פטה-בייטים של נתוני אקלים לווייניים יומיים בפורמט HDF5.
- מסגרות למידה עמוקה כמו Keras ו-TensorFlow הפכו את HDF5 (.h5) לפופולרי לשמירת משקלי רשת עצבית.
שאלות טכניות נפוצות
מהו קובץ HDF5?
קובץ HDF5 הוא כמו מערכת קבצים שלמה המאוחסנת בתוך קובץ יחיד, המיועד לאחסון יעיל של מערכים מדעיים עצומים, טבלאות ומודלים של למידת מכונה.
מה ההבדל בין .h5 לבין .hdf5?
אין הבדל; .h5 ו-.hdf5 הם שתי סיומות קבצים שונות עבור אותו פורמט נתונים היררכי 5 (Hierarchical Data Format 5).
כיצד אוכל לראות מה יש בתוך קובץ HDF5?
באפשרותך לבדוק את הקבוצות, מערכי הנתונים ומטא-הנתונים בתוך כל קובץ HDF5 באמצעות HDFView, Python h5py, או באופן מקוון עם File2File.app.