溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數據分析引擎ClickHouse是什么

發布時間:2022-01-18 10:47:47 來源:億速云 閱讀:265 作者:柒染 欄目:大數據

這篇文章的內容主要圍繞大數據分析引擎ClickHouse是什么進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

一、什么是ClickHouse?

ClickHouse是一個用于聯機分析(OLAP)的列式數據庫管理系統(DBMS)。

對于存儲而言,列式數據庫總是將同一列的數據存儲在一起,不同列的數據也總是分開存儲。

常見的列式數據庫有:Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+。

二、傳統分析數據庫的解決方案:  
1、傳統面對大數據量的處理方式:對數據進行分層,通過層層遞進形成數據集市,從而減少最終查詢的數據體量,比如提出數據立方體概念,通過對數據進行預先處理,以空間換時間,提升查詢性能。
2、OLAP分類
關系型ROLAP:使用關系型模型構建,數據模型常使用星型模型或雪花模型
多維型MOLAP:使用多維數組的形式保存數據,其核心思想是借助預處理聚合結果,使用空間換時間的形式提升查詢性能
混合架構HOLAP:可以理解ROLAP和MOLAP兩者集成

三、一匹橫空出世的黑馬ClickHouse

ClickHouse(全稱:Click Stream,Data WareHouse)具有ROLAP、在線實時查詢、完整的DBMS、列式存儲、不需要任何數據預處理、支持批量更新、非常完善的SQL和函數支持、支持高可用、不依賴Hadoop生態及開箱即用等特點。
ClickHouse 歷史演化過程:
Mysql時期->另辟蹊徑的Metrage時期->自我突破的OLAPServer時期->水到渠成的ClickHouse時期
1、MySQL時期:
采用MyISAM表引擎,采用B+數結構存儲索引,而數據文件使用另外單獨的存儲文件,(區別于InnoDB表引擎使用B+樹同時存儲索引和數據,數據直接掛載在葉子節點中)
2、Metrage時期:
數據模型層面:關系型模型改為Key-Value模型
索引層面:LSM樹代替了B+樹
數據處理層面:實時查詢改為預處理方式
使用LSM樹最具代表性的是Hbase數據庫,LSM本質可以看成將原本一顆大樹拆成了許多顆小樹,每一批次寫入的數據會在內存中構建出一個小樹,構建完成即完成寫入(這里會通過預寫日志的方式,防止內存故障而導致數據丟失),寫入數據只發生在內存,不涉及磁盤操作,所以極大的提高了寫入速度。
3、OLAPServer時期:
設計思路:取眾家之長
數據模型:換回了關系型,理由:關系型有更好的描述能力
存儲層面:與MyISAM表引擎類似,分為索引文件和數據文件
索引層面:沿用LSM樹,將索引文件和數據文件按列進行拆分,每個列字段獨立存儲。

四、ClickHouse(全稱:Click Stream,Data WareHouse)

1、ClickHouse適用場景:
非常適用商業智能領域,也廣泛應用于廣告流量、web、app流量、電信、金融、電子商務、信息安全、網絡游戲、物聯網等
2、ClickHouse不適用場景:
不支持事務
不擅長根據主鍵按行粒度查詢(雖然支持),所以不應該把ClickHouse當作Key-Value數據庫使用
不擅長按行刪除數據(雖然支持)

五、ClickHouse架構詳解

ClickHouse是一款MPP架構的列式存儲數據庫,汲取了各家技術的精髓,將每一個細節做到了極致。
1、完備的DBMS(數據庫管理系統)功能
DDL(數據庫定義語言):可以動態的創建數據庫、表和視圖
DML(數據庫操作語言):動態的查詢、新增、修改及刪除數據
權限控制、數據備份與恢復、分布式管理等
2、列式存儲與數據壓縮
不同的列保存在不同的文件中,數據中的重復項越多壓縮率就越高,數據的體量就越小,傳輸就越快,對網絡帶寬和磁盤IO的壓力就越小,使用LZ4算法壓縮,壓縮率達8:1.
3、向量化執行引擎
向量化引擎可以簡單的理解做一項消除程序中循環的優化,原理是在寄存器層面的并行操作,寄存器的訪問速度是內存的300倍,硬盤的3000萬倍。
4、關系模型與SQL查詢
關系模型(包括星型模型、雪花模型乃至寬表模型)相當于其它模型有更好的數據描述能力,另外注意ClickHouse SQL語法區分大小寫。
5、多樣化的表引擎
擁有合并數、內存、文件、接口和其他六大類20多種表引擎,每種引擎都有各自的特點,適用于不同的場景。
6、多線程與分布式
如果說向量化執行是通過數據級并行方式提升了性能,那么多線程處理就是通過線程級并行方式實現了性能提升,相比底層硬件實現的向量化執行SIMD(單個指令處理多條數據),線程級并行方式由高層次的軟件層面控制。
分布式設計的思想是分而治之,在分布式有一條金科定律:移動計算比移動數據更劃算。
在存儲方面ClickHouse既支持分區(縱向擴展,利用多線程原理),也支持分片(橫向擴展,利用分布式原理),可以說將多線程和分布式技術應用到了極致。
7、多主架構
HDFS、Spark、Hbase和ElasticSearch這類分布式系統都采用了Master-Slave主從架構,由一個節點管控,而ClickHouse采用多主架構,客戶端訪問任何一個節點都能得到相同的結果。
8、在線查詢
能夠做到急速響應,且無須對數據進行任何預處理加工。
9、數據分片與分布式查詢
數據分片是一種將數據橫向切分,ClickHouse提供了本地表(Local Table)和分布式表(Distributed Table),本地表相當于一份數據分片,而分布式表本身不存儲任何數據,它是本地表的訪問代理,其作用類似分庫中間件,借助分布式表可訪問多個本地表,從而實現分布式查詢。

六、ClickHouse的設計原則,如此之快的秘訣

1、著眼硬件,先想后做
2、算法在前,抽象在后
3、勇于嘗鮮,不行就換
4、特定場景,特殊優化
5、持續測試,持續改進

感謝你的閱讀,相信你對“大數據分析引擎ClickHouse是什么”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女