clickhouse mysql引擎_玩数据的,有必要搞搞这个大数据框架——ClickHouse
一、 什么是ClickHouse?
ClickHouse是一個(gè)用于聯(lián)機(jī)分析(OLAP)的列式數(shù)據(jù)庫管理系統(tǒng)(DBMS)——開源的!。ClickHouse最初是一款名為Yandex.Metrica(俄羅斯最大的搜索引擎公司)的產(chǎn)品,主要用于WEB流量分析。ClickHouse的全稱是Click Stream,Data WareHouse,簡稱ClickHouse。
二、為啥要搞ClickHouse呢? 搞數(shù)據(jù)分析,人家就是快!!!
2.1 ClickHouse 是列式數(shù)據(jù)庫(具體原理請看下圖)
列存儲(chǔ)索引主要在下面三個(gè)特性上提升查詢的性能:
- 行存儲(chǔ)使用逐行處理模式,每次只處理一行數(shù)據(jù);而列存儲(chǔ)索引使用批處理模式,每次處理一批數(shù)據(jù)行。
- 行存儲(chǔ)是逐行存儲(chǔ)(Row Store),每一個(gè)Page存儲(chǔ)多行數(shù)據(jù),而列存儲(chǔ)(Column Store)把數(shù)據(jù)表中的每一列單獨(dú)存儲(chǔ)在Page集合中,這意味著,Page集合中存儲(chǔ)的是某一列的數(shù)據(jù),而不是一行中所有列的數(shù)據(jù)。在讀取數(shù)據(jù)時(shí),行存儲(chǔ)把一行的所有列都加載到內(nèi)存,即使有些列根本不會(huì)用到;而列存儲(chǔ)只把需要的列加載到內(nèi)存中,不需要的列不會(huì)被加載到內(nèi)存中。
- 列存儲(chǔ)索引自動(dòng)對數(shù)據(jù)進(jìn)行壓縮處理,由于同一行的數(shù)據(jù)具有很高的相似性,壓縮率很高,數(shù)據(jù)讀取更快速。
行式數(shù)據(jù)庫
列式數(shù)據(jù)庫
2.2 ClickHouse 是性價(jià)比最高的列式數(shù)據(jù)庫
上圖列舉了包含count、sum、group by、order by等情況的查詢對比,同等條件下,ClickHouse的查詢性能異常強(qiáng)悍:
是MySQL的839倍
是Greenplum的24倍
是Vertica的5倍
三、ClickHouse的基本嘗試——Docker 安裝 + Dbeaver客戶端使用
3.1 ClickHouse 的Docker 安裝
首先,創(chuàng)建Docker掛載目錄
mkdir /data/clickhouse
然后,直接在命令行執(zhí)行(Docker 的安裝,請執(zhí)行百度~):
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客戶端的使用
直接到官網(wǎng)下載:https://dbeaver.io/download/
3.3 Clickhouse Python 程序的控制
首先,安裝python對應(yīng)的包
pip3 install --timeout 1000 clickhouse_driver
然后,通過Python實(shí)現(xiàn)增加,刪除,修改,以及查詢的功能
from clickhouse_driver import Client
client = Client('localhost')
res = client.execute('SHOW DATABASES')
print(res)
總結(jié)
以上是生活随笔為你收集整理的clickhouse mysql引擎_玩数据的,有必要搞搞这个大数据框架——ClickHouse的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea调试怎么跳出循环_使用IDEA的
- 下一篇: 手工雕刻图纸_龙门整体铝板雕刻弧形楼梯护