2

BigTable がデータを圧縮する方法を調べています。

1.5GB を 1 つのテーブルにロードしました。1列を含む約50万行、平均して各セルは約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.2 GB を保持していることを示しています。このようにして、挿入した 1.5GB を元のサイズの約 80% に圧縮しました。ただし、セルに格納されている一般的な文字列を gzip すると、約 20% の圧縮率が得られます。

挿入するデータが多くの反復値 (辞書キーなど) を保持していることを考えると、BigTable のこの圧縮パフォーマンスは低いように思えます。BigTable が圧縮と速度のトレードオフであることは理解していますが、私のデータに対してより良いパフォーマンスが得られることを望んでいました。

上記のようなデータに対して 80% の圧縮率は問題ありませんか、それともそれよりも低い値が予想されますか? アップロードしているデータを改造する以外に、圧縮を改善するテクニックはありますか?

ありがとう!

4

1 に答える 1