Question

J'ai environ 200 000 fichiers texte qui sont placés dans un fichier bz2. La question que j'ai est que lorsque je scanne le fichier bz2 pour extraire les données dont j'ai besoin, il va extrêmement lent. Il doit regarder à travers le fichier entier bz2 à l'amende le seul fichier que je cherche. Y at-il de toute façon à accélérer ce?

En outre, je pensais à organiser éventuellement les fichiers dans le tar.bz2 afin que je puisse avoir lieu, il sait où chercher. Y at-il de toute façon d'organiser les fichiers qui sont mis en bz2?

Plus d'infos / Edit: J'ai besoin d'interroger le fichier compressé pour chaque fichier texte. Y at-il une meilleure méthode de compression qui prend en charge un si grand nombre de fichiers et est aussi complètement compressé?

Était-ce utile?

La solution

Avez-vous d'utiliser bzip2? Lecture de , il est clair qu'il est tout à fait pas conçu pour soutenir l'accès aléatoire. Peut-être que vous devez utiliser un format de compression qui correspond mieux à vos besoins. Le bon vieux format Zip soutient l'accès aléatoire, mais peut compresser pire, bien sûr.

Autres conseils

bzip2 compacte dans les grands blocs (900 Kio par défaut, je crois). Une méthode qui permettrait d'accélérer le balayage du fichier tar de façon spectaculaire, mais réduirait les performances de compression, serait de compresser chaque fichier individuellement, puis goudronner les résultats ensemble. Ceci est essentiellement ce que les fichiers Zip-format sont (bien en utilisant la compression zlib plutôt que bzip2). Mais vous pouvez alors saisir facilement l'indice de goudron et seulement pour décompresser le fichier spécifique (s) que vous recherchez.

Je ne pense pas que la plupart des programmes de tar offrent beaucoup la capacité d'organiser les fichiers de manière significative, bien que vous pourriez écrire un programme pour le faire pour votre cas particulier (je sais que Python a des bibliothèques d'écriture goudrons bien que je ne l'ai utilisé une ou deux fois). Cependant, vous auriez encore le problème d'avoir à décomprimer la plupart des données avant de trouver ce que vous recherchez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top