比Hive快800倍周伦!大數(shù)據(jù)實時分析領(lǐng)域黑馬開源ClickHouse

一. 概述

隨著物聯(lián)網(wǎng) IOT 時代的來臨,IOT 設(shè)備感知和報警存儲的數(shù)據(jù)越來越大湃崩,有用的價值數(shù)據(jù)需要數(shù)據(jù)分析師去分析荧降。大數(shù)據(jù)分析成了非常重要的環(huán)節(jié)。當(dāng)然近兩年開啟的開源大潮攒读,為大數(shù)據(jù)分析工程師提供了十分富余的工具朵诫。但這同時也增加了開發(fā)者選擇合適的工具的難度,尤其對于新入行的開發(fā)者來說薄扁。學(xué)習(xí)成本剪返,框架的多樣化和復(fù)雜度成了很大的難題废累。例如 Kafka,Hdfs,Spark,Hive 等等組合才能產(chǎn)生最后的分析結(jié)果。把各種開源框架脱盲、工具邑滨、庫、平臺人工整合到一起所需工作之復(fù)雜钱反,是大數(shù)據(jù)領(lǐng)域開發(fā)和數(shù)據(jù)分析師常有的抱怨之一掖看,也是他們支持大數(shù)據(jù)分析平臺簡單化和統(tǒng)一化的首要原因。

二.ClickHouse 發(fā)展歷史

Yandex 在 2016 年 6 月 15 日開源了一個數(shù)據(jù)分析的數(shù)據(jù)庫面哥,名字叫做 ClickHouse哎壳,這對保守俄羅斯人來說是個特大事。更讓人驚訝的是幢竹,這個列式存儲數(shù)據(jù)庫的跑分要超過很多流行的商業(yè) MPP 數(shù)據(jù)庫軟件耳峦,例如 Vertica。如果你沒有聽過 Vertica焕毫,那你一定聽過 Michael Stonebraker蹲坷,2014 年圖靈獎的獲得者,PostgreSQL 和 Ingres 發(fā)明者(Sybase 和 SQL Server 都是繼承 Ingres 而來的), Paradigm4 和 SciDB 的創(chuàng)辦者邑飒。Michael Stonebraker 于 2005 年創(chuàng)辦 Vertica 公司循签,后來該公司被 HP 收購,HP Vertica 成為 MPP 列式存儲商業(yè)數(shù)據(jù)庫的高性能代表疙咸,F(xiàn)acebook 就購買了 Vertica 數(shù)據(jù)用于用戶行為分析县匠。

三.ClickHouse 支持特性剖析

在看 ClickHouse 運行場景之前,架構(gòu)師或開發(fā)人員必須要了解技術(shù)的功能特性以及弊端撒轮。只有”知己知彼”才可以”百戰(zhàn)不殆”乞旦,接下來我們看一下 ClickHouse 的具體特點。我們來看看其中的一些功能:

?1. 真正的面向列的 DBMS

在一個真正的面向列的 DBMS 中题山,沒有任何“垃圾”存儲在值中兰粉。例如,必須支持定長數(shù)值顶瞳,以避免在數(shù)值旁邊存儲長度“數(shù)字”玖姑。例如,十億個 UInt8 類型的值實際上應(yīng)該消耗大約 1 GB 的未壓縮磁盤空間慨菱,否則這將強烈影響 CPU 的使用焰络。由于解壓縮的速度(CPU 使用率)主要取決于未壓縮的數(shù)據(jù)量,所以即使在未壓縮的情況下符喝,緊湊地存儲數(shù)據(jù)(沒有任何“垃圾”)也是非常重要的闪彼。

因為有些系統(tǒng)可以單獨存儲單獨列的值,但由于其他場景的優(yōu)化协饲,無法有效處理分析查詢备蚓。例如 HBase课蔬,BigTable,Cassandra 和 HyperTable郊尝。在這些系統(tǒng)中二跋,每秒鐘可以獲得大約十萬行的吞吐量,但是每秒不會達(dá)到數(shù)億行流昏。

另外扎即,ClickHouse 是一個 DBMS,而不是一個單一的數(shù)據(jù)庫况凉。ClickHouse 允許在運行時創(chuàng)建表和數(shù)據(jù)庫谚鄙,加載數(shù)據(jù)和運行查詢,而無需重新配置和重新啟動服務(wù)器刁绒。

?2. 數(shù)據(jù)壓縮

一些面向列的 DBMS(InfiniDB CE 和 MonetDB)不使用數(shù)據(jù)壓縮闷营。但是,數(shù)據(jù)壓縮確實提高了性能知市。

?3. 磁盤存儲的數(shù)據(jù)

許多面向列的 DBMS(SAP HANA 和 GooglePowerDrill)只能在內(nèi)存中工作傻盟。但即使在數(shù)千臺服務(wù)器上,內(nèi)存也太小嫂丙,無法在 Yandex.Metrica 中存儲所有瀏覽量和會話娘赴。

?4. 多核并行處理

多核多節(jié)點并行化大型查詢。

?5. 在多個服務(wù)器上分布式處理

上面列出的列式 DBMS 幾乎都不支持分布式處理跟啤。在 ClickHouse 中诽表,數(shù)據(jù)可以駐留在不同的分片上。每個分片可以是用于容錯的一組副本隅肥。查詢在所有分片上并行處理竿奏。這對用戶來說是透明的。

?6.SQL 支持

如果你熟悉標(biāo)準(zhǔn)的 SQL 語法腥放,那么大家在談?wù)?ClickHouse SQL 語法的支持層面上泛啸,就不能算真正全面的支持 SQL 語法了。ClickHouse ?SQL 有跟真正 SQL 不一樣的函數(shù)名稱捉片。不過語法基本跟 SQL 語法兼容平痰,支持 JOIN汞舱、FROM伍纫、IN 和 JOIN 子句以及標(biāo)量子查詢支持子查詢。不支持關(guān)聯(lián)子查詢昂芜。ClickHouse 支持基于 SQL 的聲明性的查詢語言莹规,并且在許多情況下符合 SQL 標(biāo)準(zhǔn)。支持 FROM BY泌神、IN 和 JOIN 子句中的 GROUP BY良漱、ORDER BY舞虱,標(biāo)量子查詢和子查詢。不支持特殊的子查詢和窗口函數(shù)母市。

?7. 向量化引擎

數(shù)據(jù)不僅按列存儲矾兜,而且由矢量 - 列的部分進(jìn)行處理。這使我們能夠?qū)崿F(xiàn)高 CPU 性能患久。

?8. 實時數(shù)據(jù)更新

ClickHouse 支持主鍵表椅寺。為了快速執(zhí)行對主鍵范圍的查詢,數(shù)據(jù)使用合并樹 (MergeTree) 進(jìn)行遞增排序蒋失。由于這個原因返帕,數(shù)據(jù)可以不斷地添加到表中。添加數(shù)據(jù)時無鎖處理篙挽。

?9. 索引

例如荆萤,帶有主鍵可以在特定的時間范圍內(nèi)為特定客戶端(Metrica 計數(shù)器)抽取數(shù)據(jù),并且延遲時間小于幾十毫秒铣卡。

?10. 支持在線查詢

這讓我們使用該系統(tǒng)作為 Web 界面的后端链韭。低延遲意味著可以無延遲實時地處理查詢,而 Yandex.Metrica 界面頁面正在加載(在線模式)算行。

?11. 支持近似計算

系統(tǒng)包含用于近似計算各種值梧油,中位數(shù)和分位數(shù)的集合函數(shù)。

支持基于部分(樣本)數(shù)據(jù)運行查詢并獲得近似結(jié)果州邢。在這種情況下儡陨,從磁盤檢索比例較少的數(shù)據(jù)。

支持為有限數(shù)量的隨機(jī)密鑰(而不是所有密鑰)運行聚合量淌。在數(shù)據(jù)中密鑰分發(fā)的特定條件下骗村,這提供了相對準(zhǔn)確的結(jié)果,同時使用較少的資源呀枢。

?12. 數(shù)據(jù)復(fù)制和對數(shù)據(jù)完整性的支持胚股。

使用異步多主復(fù)制。寫入任何可用的副本后裙秋,數(shù)據(jù)將分發(fā)到所有剩余的副本琅拌。系統(tǒng)在不同的副本上保持相同的數(shù)據(jù)。數(shù)據(jù)在失敗后自動恢復(fù)

ClickHouse 不完美之處:


不支持事物摘刑。

不支持 Update/Delete 操作进宝。

支持有限操作系統(tǒng)。

現(xiàn)在支持 ubuntu枷恕,CentOS 需要自己編譯党晋,不過有熱心人已經(jīng)編譯好了,拿來用就行。對于 Windows 不支持未玻。

?ClickHouse 與已有大數(shù)據(jù)分析技術(shù)有何不同

知道了 ClickHouse 的特性和不完美灾而,下面我們可以對比一下之前的大數(shù)據(jù)分析跟現(xiàn)在的有啥區(qū)別?

| ?代替復(fù)雜的多樣大數(shù)據(jù)技術(shù)組合架構(gòu)

之前的大數(shù)據(jù)分析扳剿,例如 Hadoop 家族由很多技術(shù)和框架組合而成旁趟,猶如一頭大象被拆分后其實所剩下的價值也就是 HDFS、Kafka庇绽、Spark 轻庆,其他的幾乎都沒有任何價值。

這些可以用 ClickHouse 一項技術(shù)代替敛劝。

典型的大數(shù)據(jù)分析架構(gòu) =>ClickHouse

| ?查詢速度快快快

以下為新浪公司實戰(zhàn)得出的測試結(jié)果:

集群部署 4 臺機(jī)器余爆,每臺機(jī)器配置 :CPU E5-2620@2.00GHz ?,開啟超線程后 24core ?夸盟,48g 內(nèi)存蛾方,3T × 12 Raid5Select ?count(*) ?300 億 數(shù)據(jù) ?0.9 秒

select date, count(*) from xx group by date ?,300 億數(shù)據(jù) group by 日期 查詢 9.8 秒

| ?官方壓測

下面是 100M 數(shù)據(jù)集的跑分結(jié)果:ClickHouse 比 Vertia 快約 5 倍上陕,比 Hive 快 279 倍桩砰,比 My SQL 快 801 倍;雖然對不同的 SQL 查詢释簿,結(jié)果不完全一樣亚隅,但是基本趨勢是一致的。ClickHouse 跑分有多塊庶溶?舉個例子:ClickHouse 1 秒煮纵,Vertica 5.42 秒,Hive 279 秒偏螺;

四.ClickHouse 應(yīng)用場景

自從 ClickHouse2016 年 6 月 15 日開源后行疏,ClickHouse 中文社區(qū)隨后成立。中文開源組開始以易觀套像、新浪酿联、海康威視夺巩、美團(tuán)贞让、京東、58柳譬、騰訊喳张、酷狗音樂和俄羅斯開源社區(qū)等人員組成,隨著開源社區(qū)的不斷活躍征绎,陸續(xù)有神州數(shù)碼蹲姐、青云、PingCAP人柿、中軟國際等公司成員加入柴墩。一開始只是幾個 ClickHouse 愛好者在群里討論 ClickHouse 技術(shù),后來因為加入的人越來越多凫岖,群內(nèi)分享不太方便江咳,社區(qū)建立了 ClickHouse 中文論壇。在交流中哥放,我們了解到一些一線大廠已經(jīng)把 ClickHouse 運用到生產(chǎn)環(huán)境中歼指,社區(qū)也從各個公司運用中吸收了經(jīng)驗。

ClickHouse 目前已經(jīng)應(yīng)用于以下場景:


電信行業(yè)用于存儲數(shù)據(jù)和統(tǒng)計數(shù)據(jù)使用甥雕。

新浪微博用于用戶行為數(shù)據(jù)記錄和分析工作踩身。

用于廣告網(wǎng)絡(luò)和 RTB、電子商務(wù)的用戶行為分析社露。

信息安全里面的日志分析挟阻。

檢測和遙感信息的挖掘。

商業(yè)智能峭弟。

網(wǎng)絡(luò)游戲以及物聯(lián)網(wǎng)的數(shù)據(jù)處理和價值數(shù)據(jù)分析附鸽。

最大的應(yīng)用來自于 Yandex 的統(tǒng)計分析服務(wù) Yandex.Metrica,類似于谷歌 Analytics(GA)瞒瘸,或友盟統(tǒng)計坷备、小米統(tǒng)計,幫助網(wǎng)站或移動應(yīng)用進(jìn)行數(shù)據(jù)分析和精細(xì)化運營工具情臭。據(jù)稱 Yandex.Metrica 為世界上第二大的網(wǎng)站分析平臺省撑。ClickHouse 在這個應(yīng)用中,部署了近四百臺機(jī)器俯在,每天支持 200 億的事件和歷史總記錄超過 13 萬億條記錄丁侄,這些記錄都存有原始數(shù)據(jù)(非聚合數(shù)據(jù)),隨時可以使用 SQL 查詢和分析朝巫,生成用戶報告鸿摇。

五.ClickHouse 和一些技術(shù)的比較

商業(yè) OLAP 數(shù)據(jù)庫


例如:HP Vertica, Actian the Vector,

區(qū)別:ClickHouse 是開源而且免費的


云解決方案


例如:亞馬遜 RedShift 和谷歌的 BigQuery

區(qū)別:ClickHouse 可以使用自己機(jī)器部署,無需為云付費

3.Hadoop 生態(tài)軟件


例如:Cloudera Impala, Spark SQL, Facebook Presto , Apache Drill

區(qū)別:

ClickHouse 支持實時的高并發(fā)系統(tǒng)

ClickHouse 不依賴于 Hadoop 生態(tài)軟件和基礎(chǔ)

ClickHouse 支持分布式機(jī)房的部署

開源 OLAP 數(shù)據(jù)庫


例如:InfiniDB, MonetDB, LucidDB

區(qū)別:這些項目的應(yīng)用的規(guī)模較小劈猿,并沒有應(yīng)用在大型的互聯(lián)網(wǎng)服務(wù)當(dāng)中拙吉,相比之下,ClickHouse 的成熟度和穩(wěn)定性遠(yuǎn)遠(yuǎn)超過這些軟件揪荣。


開源分析筷黔,非關(guān)系型數(shù)據(jù)庫


例如:Druid , Apache Kylin

區(qū)別:ClickHouse 可以支持從原始數(shù)據(jù)的直接查詢,ClickHouse 支持類 SQL 語言仗颈,提供了傳統(tǒng)關(guān)系型數(shù)據(jù)的便利佛舱。

六.總結(jié)

在大數(shù)據(jù)分析領(lǐng)域中椎例,傳統(tǒng)的大數(shù)據(jù)分析需要不同框架和技術(shù)組合才能達(dá)到最終的效果,在人力成本请祖,技術(shù)能力和硬件成本上以及維護(hù)成本讓大數(shù)據(jù)分析變得成為昂貴的事情订歪。讓很多中小型企業(yè)非常苦惱肆捕,不得不被迫租賃第三方大型公司的數(shù)據(jù)分析服務(wù)刷晋。

ClickHouse 開源的出現(xiàn)讓許多想做大數(shù)據(jù)并且想做大數(shù)據(jù)分析的很多公司和企業(yè)耳目一新。

ClickHouse 正是以不依賴 Hadoop 生態(tài)慎陵、安裝和維護(hù)簡單眼虱、查詢速度快、可以支持 SQL 等特點在大數(shù)據(jù)分析領(lǐng)域越走越遠(yuǎn)席纽。

歡迎工作一到五年的Java工程師朋友們加入Java程序員開發(fā): 854393687

群內(nèi)提供免費的Java架構(gòu)學(xué)習(xí)資料(里面有高可用捏悬、高并發(fā)、高性能及分布式润梯、Jvm性能調(diào)優(yōu)邮破、Spring源碼,MyBatis仆救,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)合理利用自己每一分每一秒的時間來學(xué)習(xí)提升自己抒和,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕彤蔽,使勁拼摧莽,給未來的自己一個交代!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顿痪,一起剝皮案震驚了整個濱河市镊辕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚁袭,老刑警劉巖征懈,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異揩悄,居然都是意外死亡卖哎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門删性,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亏娜,“玉大人,你說我怎么就攤上這事蹬挺∥兀” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵巴帮,是天一觀的道長溯泣。 經(jīng)常有香客問我虐秋,道長,這世上最難降的妖魔是什么垃沦? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任客给,我火速辦了婚禮,結(jié)果婚禮上栏尚,老公的妹妹穿的比我還像新娘。我一直安慰自己只恨,他們只是感情好译仗,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著官觅,像睡著了一般纵菌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上休涤,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天咱圆,我揣著相機(jī)與錄音,去河邊找鬼功氨。 笑死序苏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捷凄。 我是一名探鬼主播忱详,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼跺涤!你這毒婦竟也來了匈睁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤桶错,失蹤者是張志新(化名)和其女友劉穎航唆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體院刁,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡糯钙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了退腥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片超营。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖阅虫,靈堂內(nèi)的尸體忽然破棺而出演闭,到底是詐尸還是另有隱情,我是刑警寧澤颓帝,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布米碰,位于F島的核電站窝革,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吕座。R本人自食惡果不足惜虐译,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吴趴。 院中可真熱鬧漆诽,春花似錦、人聲如沸锣枝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撇叁。三九已至供鸠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陨闹,已是汗流浹背楞捂。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留趋厉,地道東北人寨闹。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像君账,于是被迫代替她去往敵國和親鼻忠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容