מערך נתונים 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
מפרט טכני
| ארכיטקטורת מעטפת | Hierarchical filesystem-like binary container organizing data into Groups (folders) and Datasets (multi-dimensional arrays) with attributes |
| דחיסה | Chunk-based compression filters: Gzip (Deflate), SZIP, Zstandard, Blosc, and LZF |
| סדר בתים (Endianness) | Declared in superblock (Little or Big-Endian) |
| מרחבי צבע | N/A (Multi-dimensional Numerical Arrays) |
| ערוצים ומבנה | High-dimensional scientific arrays, compound data types, and variable-length strings |
| ממדים מרביים | Practically unlimited (supports 64-bit coordinates and petabyte-scale datasets) |
| שקיפות | None |
| הזרמה ופרוגרסיביות | Chunked storage enables partial hyper-slab slicing without loading full dataset into memory |
מטריצת השוואה טכנית: 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.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
ספריית libhdf5 הרשמית מנתחת עצי B מורכבים וטבלאות ערימה (heaps) שבהן היסטים פגומים גרמו לפגיעויות גלישת ערימה (heap overflow).
ווקטורי תקיפה ידועים
- גלישת חוצץ ערימה במהלך מעבר אינדקס צומת עץ B (למשל CVE-2021-37501).
- כתיבה מחוץ לגבולות בתוספי צינור סינון פענוח מותאמים אישית.
- מניעת שירות באמצעות מחזורי קישור קבוצתיים מעגליים.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- מערכת קבצים מלאה בתוך קובץ: מארגנת מערכי נתונים מורכבים בגודל פטה-בייט לקבוצות ומערכי נתונים בעלי שמות בדומה לספריות.
- חיתוך תת-מרחבי (hyperslab) בעל ביצועים גבוהים: קרא פרוסה דו-ממדית זעירה ממטריצה חמש-ממדית עצומה בת 100 גיגה-בייט מבלי לקרוא את הקובץ המלא.
- אינטגרציה עמוקה עם Python מדעי מודרני (h5py), MATLAB, R ומחשבי-על במקביליות MPI בעלי ביצועים גבוהים.
מגבלות טכניות וחסרונות
- מורכבות מפרט גבוהה מקשה על יישומי מנתח עצמאיים מחוץ לספריית ה-C הרשמית libhdf5.
- מגבלות נעילה של כותב יחיד ב-HDF5 הקלאסי הסבכו היסטורית זרימות עבודה של כתיבה במקביל.
- סופר-בלוקים (superblocks) פגומים עלולים להפוך את כל העץ ההיררכי לבלתי נגיש.
עובדות טכניות מעניינות
- 8 בייטי הקסם הראשונים של קובץ HDF5 (\x89HDF\r\n\x1a\n) משקפים בכוונה את החתימה של 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.