Frage

Was sind die Hauptvorteile des Speicherns von Daten in HDF? Und was sind die wichtigsten Datenwissenschaftsaufgaben, bei denen HDF wirklich geeignet und nützlich ist?

War es hilfreich?

Lösung

Vielleicht ist ein guter Weg, um die Frage zu paraphrasieren. Was sind die Vorteile im Vergleich zu alternativen Formaten?

Die Hauptalternativen sind meiner Meinung nach: eine Datenbank, Textdateien oder ein anderes gepacktes/binäres Format.

Die zu berücksichtigenden Datenbankoptionen sind wahrscheinlich ein Spaltenspeicher oder NoSQL oder für kleine in sich geschlossene Datensätze SQLite. Der Hauptvorteil der Datenbank ist die Fähigkeit, mit Daten zu arbeiten, die viel größer als der Speicher haben, zufälligen oder indexierten Zugriff haben und Daten schnell hinzufügen/anhängen/ändern. Der Hauptvorteil von *dis *ist, dass es viel langsamer als HDF ist, bei Problemen, bei denen der gesamte Datensatz gelesen und verarbeitet werden muss. Ein weiterer Nachteil besteht darin, dass eine Datenbank mit Ausnahme von Datenbanken im Eingebettsstil eher ein System (für die Bewunderung, Einrichtung, Wartung usw.) und nicht ein einfacher in sich geschlossener Datenspeicher ist.

Die Optionen für Textdateiformat sind XML/JSON/CSV. Sie sind plattformübergreifend/Sprache/Toolkit und ein gutes Archivformat aufgrund der Fähigkeit, sich selbst zu beschreiben (oder offensichtlich :). Wenn sie nicht komprimiert sind, sind sie riesig (10x-100x HDF), aber wenn sie komprimiert sind, können sie ziemlich platzeffizient sein (komprimiertes XML ist ungefähr dem gleichen wie HDF). Der Hauptnachteil hier ist wieder Geschwindigkeit: Das Parsen von Text ist viel, viel langsamer als HDF.

Die anderen Binärformate (NPY/NPZ Numpy -Dateien, BLZ -Blaze -Dateien, Protokollpuffer, Avro, ...) haben sehr ähnliche Eigenschaften wie HDF, außer dass sie weniger häufig unterstützt werden (können auf nur eine Plattform beschränkt sein: numpy) und kann möglicherweise weit verbreitet sein) und kann möglicherweise weit verbreitet sein) und May bestimmte andere Einschränkungen haben. Sie bieten normalerweise keinen überzeugenden Vorteil.

HDF ist eine gute Ergänzung zu Datenbanken. Es kann sinnvoll sein, eine Abfrage auszuführen, um einen in Höhe von Speichergröße zu erstellen und dann in HDF zu zwischenstrahlen, wenn dieselben Daten mehr als einmal verwendet würden. Wenn Sie einen Datensatz haben, der behoben und normalerweise als Ganzes verarbeitet wird, ist es keine schlechte Option, diese als Sammlung von HDF -Dateien in entsprechend Größe zu speichern. Wenn Sie einen Datensatz haben, der häufig aktualisiert wird, ist es möglicherweise weiterhin hilfreich.

Zusammenfassend lässt sich sagen, dass HDF ein gutes Format für Daten ist, die in der Regel als Ganzes gelesen (oder geschrieben) werden. Es ist das Lingua Franca oder das gemeinsame/bevorzugte Austauschformat für viele Anwendungen aufgrund von großer Unterstützung und Kompatibilität, anständig als Archivformat und sehr schnell.

PS, um diesen praktischen Kontext zu geben, dauerte meine jüngste Erfahrung, die HDF mit Alternativen verglichen hat, ein bestimmter kleiner (viel weniger als Speichergröße) Datensatz 2 Sekunden, um als HDF zu lesen (und das meiste davon ist wahrscheinlich Overhead von Pandas). ~ 1 Minute, um von JSON zu lesen; und 1 Stunde in die Datenbank schreiben. Sicherlich könnte die Schreibdatenbank beschleunigt werden, aber Sie sollten besser einen guten DBA haben! So funktioniert es aus der Schachtel.

Andere Tipps

Ein Vorteil ist eine breite Unterstützung - C, Java, Perl, Python und R haben alle HDF5 -Bindungen.

Ein weiterer Vorteil ist die Geschwindigkeit. Ich habe es noch nie gesehen, aber HDF soll schneller sein als SQL -Datenbanken.

Ich verstehe, dass es sehr gut ist, wenn sie sowohl mit großen Sätzen wissenschaftlicher Daten- als auch Zeitreihendaten verwendet werden - Netzwerküberwachung, Verwendungsverfolgung usw.

Ich glaube nicht, dass es eine Größenbeschränkung für HDF -Dateien gibt (obwohl die Betriebssystemgrenzen noch gelten würden.

Zum Hinzufügen auschecken ASDF insbesondere ihr Papier ASDF: Ein neues Datenformat für die Astronomie; ASDF versucht, HDF5 zu verbessern, und das Papier beschreibt einige Nachteile des HDF5 -Formats.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top