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% の圧縮率は問題ありませんか、それともそれよりも低い値が予想されますか? アップロードしているデータを改造する以外に、圧縮を改善するテクニックはありますか?
ありがとう!