0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ClickHouse】サーバー間のデータ通信におけるデータの圧縮について

Last updated at Posted at 2024-08-07

はじめに

ClickHouseにはClickHouse間でデータをコピーしたり、リモートのClickHouseのデータをセレクトできるremoteと呼ばれる機能があります。

このremoteでClickHouse間を通信する際に、データの圧縮が行われているのか気になったのが今回の検証の動機です。

結論

サーバー間での通信に使用されるデータ圧縮は、デフォルトではLZ4でnetwork_compression_methodでセッティングできる。

例えば、圧縮アルゴリズムをZSTDにしたい場合は以下のように設定する。

set network_compression_method='ZSTD'

zstdが指定されている場合、network_zstd_compression_levelで圧縮レベルを指定できる。

検証

LZ4の場合(デフォルト)

圧縮方法の確認

SELECT name, value FROM system.settings WHERE name = 'network_compression_method'
┌─name───────────────────────┬─value─┐
│ network_compression_method │ LZ4   │
└────────────────────────────┴───────┘

クエリ実行

select 0 from remote('xxxx', system,numbers_mt, 'xxx', 'xxxx') limit 1e7 format Null;
0 rows in set. Elapsed: 0.032 sec. Processed 10.01 million rows, 80.06 MB (312.97 million rows/s., 2.50 GB/s.)

numbers_mt については以下を参照。

ZSTDの場合

圧縮方法の確認

set network_compression_method='ZSTD';
SELECT name, value FROM system.settings WHERE name = 'network_compression_method'
┌─name───────────────────────┬─value─┐
│ network_compression_method │ ZSTD  │
└────────────────────────────┴───────┘

クエリ実行

select 0 from remote('xxxx', system,numbers_mt, 'xxx', 'xxxx') limit 1e7 format Null;
0 rows in set. Elapsed: 0.016 sec. Processed 10.01 million rows, 80.06 MB (639.86 million rows/s., 5.12 GB/s.)

圧縮設定をしない場合

圧縮方法の確認

set network_compression_method='none';
SELECT name, value FROM system.settings WHERE name = 'network_compression_method'
┌─name───────────────────────┬─value─┐
│ network_compression_method │ none  │
└────────────────────────────┴───────┘

クエリ実行

select 0 from remote('xxxx', system,numbers_mt, 'xxx', 'xxxx') limit 1e7 format Null;
0 rows in set. Elapsed: 0.091 sec. Processed 10.01 million rows, 80.06 MB (109.75 million rows/s., 877.98 MB/s.)

結果

それぞれの圧縮が効いていそうなことが分かりました。

圧縮方法 パフォーマンス
LZ4(デフォルト) 312.97 million rows/s., 2.50 GB/s.
ZSTD 639.86 million rows/s., 5.12 GB/s.
圧縮なし 109.75 million rows/s., 877.98 MB/s.

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?