Frage

Ich habe etwa 200.000 Textdateien, die in einer bz2-Datei abgelegt werden. Das Problem ist, dass ich, wenn ich die bz2-Datei scannen, um die Daten zu extrahieren, ich brauche, ist es extrem langsam geht. Es muss die gesamte bz2-Datei schauen durch die einzelne Datei fein ich suche. Gibt es trotzdem, diese zu beschleunigen?

Auch dachte ich über möglicherweise die Dateien in der tar.bz2 organisieren, damit ich statt sie wissen müssen, wo zu suchen. Gibt es trotzdem, Dateien zu organisieren, die in eine bz2 gestellt werden?

Mehr Info / Edit: Ich brauche die komprimierte Datei für jede Text-Datei abzufragen. Gibt es eine bessere Komprimierungsverfahren, dass Träger, wie eine große Anzahl von Dateien und wird so gründlich komprimiert?

War es hilfreich?

Lösung

Haben Sie bzip2 verwenden? Lesen Sie die Dokumentation , ist klar, es durchaus nicht entworfen ist Direktzugriff zu unterstützen. Vielleicht sollten Sie ein Komprimierungsformat verwenden, die Ihre Anforderungen genauer übereinstimmt. Das gute alte Zip-Format unterstützt wahlfreier Zugriff, aber möglicherweise komprimiert schlimmer, natürlich.

Andere Tipps

Bzip2 Kompressen in großen Blöcken (900 KiB standardmäßig glaube ich). Ein Verfahren, das das Abtasten der TAR-Datei beschleunigen würde dramatisch, und würde Kompressionsleistung reduzieren, wäre jede Datei einzeln zu komprimieren und dann die Ergebnisse Teer zusammen. Dies ist im Wesentlichen, was Zip-Format-Dateien sind (obwohl zlib-Kompression statt bzip2). Aber man konnte sich dann leicht den Teer Index greifen und nur die bestimmte Datei entpacken müssen (s) Sie suchen.

Ich glaube nicht, die meisten tar Programme bieten viel Möglichkeit, Dateien in sinnvoller Weise zu organisieren, wenn Sie ein Programm schreiben, könnte dies für Ihren speziellen Fall zu tun (ich weiß, Python tar-Schreiben Bibliotheken hat, obwohl ich nur benutzt habe sie ein- oder zweimal). Allerdings würde man immer noch das Problem, hat mit den meisten Daten dekomprimieren, bevor Sie gefunden, was Sie suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top