【问题标题】:Obtain a string from the compressed data and vice versa in java在java中从压缩数据中获取字符串,反之亦然
【发布时间】:2017-09-18 06:40:52
【问题描述】:

我想在 Java 中压缩一个字符串(一个 XML 文档)并将其作为 varchar 存储在 Cassandra db 中。我应该能够在从 db 读取时解压缩它。我查看了 GZIP 和 lz4 并在压缩时返回一个字节数组。

我的目标是从压缩数据中获取一个字符串,该字符串也可用于解压缩并取回原始字符串。 最好的方法是什么?

【问题讨论】:

  • 你的 xml 架构修复了吗??
  • 不,它没有修复。
  • 这些文档的大小是多少,你有 XML Schema 吗?

标签: java arrays string cassandra compression


【解决方案1】:

没有足够的声誉发表评论,因此发布作为答案。如果你想要一个字符串,那么显着的压缩将取决于你的数据。一个非常简单的解决方案可能类似于Java compressing Strings,但如果您的字符串只有字符而没有数字,这将起作用。您可以修改此解决方案以适用于大多数字符,但如果您没有重复字符,那么您实际上可能会得到比原始字符串更大的字符串。

【讨论】:

    【解决方案2】:

    我看不出压缩你的数据有什么好的理由:Cassandra 可以透明地为你做这件事(默认情况下它会 LZ4 你的数据)。因此,如果您的目标是减少数据占用量,那么您将遇到不存在的问题,我会将 XML 文档直接提供给 C*。

    顺便说一句,所有的压缩算法都采用字节数组并产生字节数组。作为一种解决方案,您可以将 base64 编码之类的内容应用于压缩字节数组。解压时,反转逻辑:对字符串进行 base64 解码,然后应用解压算法。

    【讨论】:

      猜你喜欢
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 2012-03-06
      • 1970-01-01
      相关资源
      最近更新 更多