Google Cloud Bigtable 压缩

Google Cloud Bigtable compression

我正在研究 BigTable 如何压缩我的数据。

我已经将 1.5GB 加载到 1 table;大约 500k 行包含 1 列,平均每个单元格包含大约 3kb。 在进一步的测试中,将向这些包含具有相似大小的相似数据的行添加更多列。

每个单元格中的数据当前是一个 JSON 字典序列化数组 [平均 10 个元素],例如:

[{
    "field1": "100.10",
    "field2": "EUR",
    "field3": "10000",
    "field4": "0",
    "field5": "1",
    "field6": "1",
    "field7": "0",
    "field8": "100",
    "field9": "110.20",
    "field10": "100-char field",
    "dateField1": "1970-01-01",
    "dateField2": "1970-01-01",
    "dateTimeField": "1970-01-01T10:10:10Z"
},{
    "field1": "200.20",
    "field2": "EUR",
    "field3": "10001",
    "field4": "0",
    "field5": "1",
    "field6": "0",
    "field7": "0",
    "field8": "100",
    "field9": "220.30",
    "field10": "100-char field",
    "dateField1": "1970-01-01",
    "dateField2": "1970-01-01",
    "dateTimeField": "1970-01-01T20:20:20Z"
}, ...]

BigTable 控制台显示集群拥有 1.2GB 的空间。因此,它将我插入的 1.5GB 压缩到原始大小的大约 80%。 Gzip 一个典型的字符串,因为它们存储在单元格中,但是给我一个大约 20% 的压缩率。

BigTable 的这种压缩性能对我来说似乎很低,因为我插入的数据包含很多重复值(例如字典键)。我知道 BigTable 以压缩换取速度,但我希望它能更好地处理我的数据。

对于上述数据,80% 的压缩率是否合适,或者是否可以预期更低的值? 除了重塑我正在上传的数据之外,是否有任何改进压缩的技术?

谢谢!

肯定会出现较低的值。我们发现并修复了与 Cloud Bigtable 中使用压缩相关的错误,该错误现已投入生产。

对于您发布的示例等数据,您现在应该会看到更高的压缩率和更低的磁盘使用率!