首頁>技術>

一、 什麼是ClickHouse?

ClickHouse是一個用於聯機分析(OLAP)的列式資料庫管理系統(DBMS)——開源的!。ClickHouse最初是一款名為Yandex.Metrica(俄羅斯最大的搜尋引擎公司)的產品,主要用於WEB流量分析。ClickHouse的全稱是Click Stream,Data WareHouse,簡稱ClickHouse。

二、為啥要搞ClickHouse呢? 搞資料分析,人家就是快!!!

2.1 ClickHouse 是列式資料庫(具體原理請看下圖)

列儲存索引主要在下面三個特性上提升查詢的效能:

行儲存使用逐行處理模式,每次只處理一行資料;而列儲存索引使用批處理模式,每次處理一批資料行。行儲存是逐行儲存(Row Store),每一個Page儲存多行資料,而列儲存(Column Store)把資料表中的每一列單獨儲存在Page集合中,這意味著,Page集合中儲存的是某一列的資料,而不是一行中所有列的資料。在讀取資料時,行儲存把一行的所有列都載入到記憶體,即使有些列根本不會用到;而列儲存只把需要的列載入到記憶體中,不需要的列不會被載入到記憶體中。列儲存索引自動對資料進行壓縮處理,由於同一行的資料具有很高的相似性,壓縮率很高,資料讀取更快速。

行式資料庫

列式資料庫

2.2 ClickHouse 是價效比最高的列式資料庫

上圖列舉了包含count、sum、group by、order by等情況的查詢對比,同等條件下,ClickHouse的查詢效能異常強悍:

是MySQL的839倍

是Greenplum的24倍

是Vertica的5倍

三、ClickHouse的基本嘗試——Docker 安裝 + Dbeaver客戶端使用

3.1 ClickHouse 的Docker 安裝

首先,建立Docker掛載目錄

mkdir /data/clickhouse

然後,直接在命令列執行(Docker 的安裝,請執行百度~):

docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -p 9000:9000 -p 8123:8123 --volume=/data/clickhouse:/var/lib/clickhouse yandex/clickhouse-server

備註:/data/clickhouse掛載/var/lib/clickhouse

3.2 Clickhouse Dbweaver客戶端的使用

直接到官網下載:https://dbeaver.io/download/

3.3 Clickhouse Python 程式的控制

首先,安裝python對應的包

pip3 install --timeout 1000 clickhouse_driver

from clickhouse_driver import Client

client = Client('localhost')

res = client.execute('SHOW DATABASES')

print(res)

22
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 每天進步一點點1,網路常用埠