ClickHouse高性能數據庫


ClickHouse之簡單性能測試

 

前面的文章ClickHouse之初步認識已經簡單的介紹了ClickHouse,接下來進行簡單的性能測試。測試數據來源於美國民用航班的數據,從1987年到2017年,有1.7億條。

環境:

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;

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

 轉載自:http://www.cnblogs.com/gomysql/p/6655553.html

 

 

小編附加使用手冊:https://clickhouse.yandex/reference_en.html#MergeTree

這個數據庫適合 查詢和存儲兩種方式的數據,不適合修改類型的數據,可以應用於數據的采集,和信息的記錄;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM