1. 程式人生 > >ClickHouse之簡單性能測試

ClickHouse之簡單性能測試

csv lba 壓縮 com bin names sele ans http

環境:

centos 6.3,32G內存,24核

下載腳本:

技術分享圖片
#!/bin/bash

for s in `seq 1987 2017`
do
for m in `seq 1 12`
do
mwget -n 128  http://transtats.bts.gov/PREZIP/On_Time_On_Time_Performance_${s}_${m}.zip
done
done
技術分享圖片

這裏采用的是mwget,128個線程,mwget是wget的多線程版本。wget太慢了。關於mwget的安裝,請參考:https://my.oschina.net/766/blog/156807
下載以後的數據是zip壓縮包,如下:

技術分享圖片

下載完數據以後建表:

客戶端登錄: clickhouse-client -m,如果不加-m啟用多行,那麽將會報錯:

技術分享圖片 View Code

導入數據:

for i in *.zip; do echo $i; unzip -cq $i ‘*.csv‘ | sed ‘s/\.00//g‘ | clickhouse-client  --query="INSERT INTO ontime FORMAT CSVWithNames"; done

開始查詢測試:
技術分享圖片

可以看見1.7億數據,count用了0.034秒,當然列存儲數據庫count都不快還搞毛。

繼續測試其他的語句

從2000年到2016年每天的航班統計

SELECT DayOfWeek, count(*) AS c FROM ontime WHERE Year >= 2000 AND Year <= 2016 GROUP BY DayOfWeek ORDER BY c DESC; 

技術分享圖片

2000 - 2008年度機場延誤數

SELECT Origin, count(*) AS c FROM ontime WHERE DepDelay>10 AND Year >= 2000 AND Year <= 2008 GROUP BY Origin ORDER BY c DESC LIMIT 10

技術分享圖片

這些查詢都有一個範圍限制,那麽全部查完呢?

比如:

SELECT OriginCityName, DestCityName, count() AS c FROM ontime GROUP BY OriginCityName, DestCityName ORDER BY c DESC LIMIT 10;

技術分享圖片

可以看見依然快的不像話,哈哈。心動了沒?心動了就動手安裝,導入數據測試一下吧。

參考資料:

https://raw.githubusercontent.com/yandex/ClickHouse/master/doc/example_datasets/1_ontime.txt

ClickHouse之簡單性能測試