inkrementelle schreibt im HDF5 mit h5py

Ich habe eine Frage, wie am besten zu schreiben, im HDF5-Dateien mit python /h5py.

Habe ich Daten wie:

-----------------------------------------
| timepoint | voltage1 | voltage2 | ...
-----------------------------------------
| 178       | 10       | 12       | ...
-----------------------------------------
| 179       | 12       | 11       | ...
-----------------------------------------
| 185       | 9        | 12       | ...
-----------------------------------------
| 187       | 15       | 12       | ...
                    ...

mit über 10^4 Spalten und etwa 10^7 Zeilen. (Das ist etwa 10^11 (100 Milliarden) Elemente, oder ~100 GB, die mit 1-byte ints).

Mit diesen Daten typische Anwendung ist ziemlich write once, read many times, und die typische " read-Fall wäre zu packen, Spalte 1 und in einer weiteren Spalte (sagen 254), laden die beiden Spalten in den Speicher, und einige Phantasie-Statistiken.

Ich denke, eine gute im HDF5-Struktur wäre also um jede Spalte in der Tabelle oben werden im HDF5-Gruppe, die 10^4 Gruppen. So müssen wir uns nicht alle Lesen die Daten in den Speicher, ja? Die im HDF5-Struktur ist noch nicht definiert, aber so kann es alles sein.

Nun die Frage:
Ich erhalte die Daten von ~10^4 Zeilen gleichzeitig (und nicht genau die gleiche Anzahl von Zeilen jedes mal), und schreiben müssen, das es schrittweise zu den im HDF5-Datei. Wie Schreibe ich diese Datei?

Ich überlege, python und h5py, konnte aber ein weiteres tool, wenn empfohlen. Ist die Segmentierung der Weg zu gehen, mit z.B.

dset = f.create_dataset("voltage284", (100000,), maxshape=(None,), dtype='i8', chunks=(10000,))

dann, wenn ein anderer block von 10^4 Zeilen eintrifft, ersetzen Sie das dataset?

Oder ist es besser, einfach speichern Sie für jeden block von 10^4 Zeilen als separates dataset? Oder muss ich wirklich wissen müssen, um die endgültige Anzahl der Zeilen? (Das wird schwierig zu bekommen, aber vielleicht möglich).

Kann ich Kaution auf im HDF5, wenn es nicht das richtige tool für den job, obwohl ich denke, sobald die peinliche schreibt, sind getan, es wird wunderbar sein.

InformationsquelleAutor user116293 | 2014-09-04

Schreibe einen Kommentar