我們有一些大型數據文件正在連接,壓縮併發送到另一臺服務器。壓縮減少了到目標服務器的傳輸時間,所以我們可以在短時間內獲得文件越小越好。這是一個高度時間敏感的過程。對文件進行排序以優化壓縮效率
數據文件包含許多行製表符分隔的文本,並且行的順序無關緊要。
我們注意到,當我們通過第一個字段對文件進行排序時,壓縮文件的大小要小得多,這可能是因爲該列的重複項彼此相鄰。但是,對大文件進行排序很慢,並且沒有真正的理由需要排序,而不是改善壓縮。第一列和後續列中的內容也沒有關係。可能會有一些壓縮更小的行的順序,或者可能有一種算法可以類似地提高壓縮性能,但需要更少的時間來運行。
我可以使用什麼方法重新排列行以優化相鄰行之間的相似性並提高壓縮性能?
您可能只需要更大的字典大小。如果使用文件來提高壓縮率,似乎表明字典太短,以致到下一個相同的值出現時,壓縮算法已經忘記了以前的值。大多數壓縮算法允許您更改用於記住這些值的字典的大小。 – HugoRune
以前發佈爲答案,但實際上過於寬泛:您可以嘗試[clustering](https://en.wikipedia.org/wiki/Cluster_analysis)數據,然後按羣集進行分組。與壓縮本身一樣,聚類是通常由啓發式處理的難題。 –
你使用什麼壓縮算法? – Gumbo