私はLog
テーブルとMergeTree
テーブルを持っています。 system.columns
テーブルには、data_compressed_bytes
の列があり、各テーブルの各列に圧縮されたバイト数を示します。 MergeTree
テーブルの値は列の下に表示されますが、Log
テーブルの列の値はすべてゼロであることがわかります。Clickhouseに圧縮テーブルエンジンをログします
Log
┌─database─┬─table──┬─name───────────┬─type─────┬─data_compressed_bytes─┬─data_uncompressed_bytes─┬─marks_bytes─┐
│ default │ logs │ log_time │ DateTime │ 0 │ 0 │ 0 │
│ default │ logs │ start_time │ DateTime │ 0 │ 0 │ 0 │
MergeTree
┌─database─┬─table─────┬─name────────┬─type─────┬─data_compressed_bytes─┬─data_uncompressed_bytes─┬─marks_bytes─┐
│ default │ logs_m │ log_date │ Date │ 1221802 │ 20000000 │ 19536 │
│ default │ logs_m │ log_time │ DateTime │ 25181624 │ 40000000 │ 19536 │
それはエンジンのタイプLog
の列が実際に圧縮されるか、またはされていないことを意味している場合ので、私は疑問に思って。
ClickHouse documentationはTinyLog
が圧縮けどLog
わからないと私はsystem.columns
テーブルにそれを表示されていないされていることを述べています。
私の質問にお答えいただきありがとうございます。 'Log'エンジンを使ってテーブルの各列にどれだけの圧縮が達成されたかを知ることができますか? –
はい。しかし、それはかなりトリッキーです。 aptを使用してclickhouse-compressor utilをインストールし、次のコマンドを実行する必要があります:/var/lib/clickhouse/data/default/log/*.binのfの ; echo $ f "compressed:" 'stat -c"%s "$ f'" uncompressed: "' cat $ f | clickhouse-compressor --decompress | wc -c'; done ここで、/ var/lib/clickhouse/data/default/log /はdefault.logテーブルのデータディレクトリです –