- 今日推薦
-
- tiktok和亞馬遜「tiktok怎么樣」
- 電商運(yùn)營(yíng)的工作是什么「電商運(yùn)營(yíng)是做什么工作內(nèi)容」
- 東南亞電商行業(yè)「東南亞電商巨頭間的斗爭(zhēng)」
- 東莞做電商「東莞電子產(chǎn)品」
- 現(xiàn)在電商賣什么最賺錢「電商做什么賺錢」
- 做好電商網(wǎng)站建設(shè)的五個(gè)方法「電商網(wǎng)站」
- 虎門服裝電商「時(shí)尚產(chǎn)業(yè)」
- 韻達(dá)快遞怎么查詢有批量查詢大量快遞的查詢軟件嗎「韻達(dá)快遞條碼查詢」
- 網(wǎng)站制作的基本流程是「網(wǎng)站制作過(guò)程介紹」
- 您的快遞破了加個(gè)微信號(hào)「突然有個(gè)申通快遞的加我微信」
- 特別關(guān)注
-
- 教你快速查詢極兔快遞的詳細(xì)信息視頻「查快遞」
- 建設(shè)一個(gè)電商網(wǎng)站的流程「自建網(wǎng)站電子商務(wù)平臺(tái)有哪些」
- 電商網(wǎng)站怎么制作要在意哪些問(wèn)題和建議「電子商務(wù)網(wǎng)頁(yè)制作是什么」
- 張家界跨境保稅商品中心開(kāi)業(yè)了嗎「張家界旅游商品產(chǎn)業(yè)園」
- 張家界市供銷聯(lián)社「張家界經(jīng)濟(jì)開(kāi)發(fā)區(qū)」
- 「思想的力量」多輪驅(qū)動(dòng)促發(fā)展——天津轉(zhuǎn)型升級(jí)蹄疾步穩(wěn)
- 接受錄取通知「高考錄取通知書怎么拿」
- 電商逆戰(zhàn):京東下鄉(xiāng)拼多多進(jìn)城是真的嗎「京東拼多多」
- 電商的機(jī)遇與挑戰(zhàn)「農(nóng)村電商機(jī)會(huì)有哪些」
- 有沒(méi)有可以快速查詢韻達(dá)快遞并設(shè)置快遞參數(shù)的查詢軟件「快遞打單軟件哪個(gè)好用韻達(dá)」
- 熱門點(diǎn)擊
-
- 天津卓爾電商城業(yè)主群「天津卓爾鬼市」
- 快遞損壞加微信「快遞沒(méi)有當(dāng)面驗(yàn)收后發(fā)現(xiàn)損壞怎么辦」
- 怎么查詢極兔快遞物流信息「查詢兔軟件」
- 螞蟻金服透露個(gè)人隱私「螞蟻金服最新資訊」
- 三翼鳥智能廚房「電信全資子公司智慧城市翼」
- 中國(guó)的電商教父是誰(shuí)「中國(guó)電商的鼻祖」
- 電子商務(wù)概論王偉軍「中國(guó)電商之父圖片」
- 易趣網(wǎng)的邵亦波簡(jiǎn)介「易趣網(wǎng)的創(chuàng)始人」
- 基于比特幣底層技術(shù)區(qū)塊鏈在電商運(yùn)用的構(gòu)想「比特幣區(qū)塊鏈技術(shù)」
- 回鄉(xiāng)做電商「如何看待電商下鄉(xiāng)」
hive億級(jí)數(shù)據(jù)處理「clickhouse集群」
作者 | 張海濤
編輯 | Vincent
出處丨AI 前線
AI 前線導(dǎo)讀:ClickHouse 是俄羅斯最大的搜索公司 Yandex 推出的大數(shù)據(jù)存儲(chǔ)和開(kāi)源組件,在 2017 年易觀 OLAP 大賽獲得黑馬冠軍之后,得到了大量的媒體曝光和開(kāi)發(fā)者的認(rèn)同,大家戲稱這是俄羅斯送來(lái)的“喀秋莎數(shù)據(jù)庫(kù)”。本文將深入淺出的講解 ClickHouse 數(shù)據(jù)引擎的基本原理和使用場(chǎng)景,是一篇非常好的 ClickHouse 入門之作。
一. 概述隨著物聯(lián)網(wǎng) IOT 時(shí)代的來(lái)臨,IOT 設(shè)備感知和報(bào)警存儲(chǔ)的數(shù)據(jù)越來(lái)越大,有用的價(jià)值數(shù)據(jù)需要數(shù)據(jù)分析師去分析。大數(shù)據(jù)分析成了非常重要的環(huán)節(jié)。當(dāng)然近兩年開(kāi)啟的開(kāi)源大潮,為大數(shù)據(jù)分析工程師提供了十分富余的工具。但這同時(shí)也增加了開(kāi)發(fā)者選擇合適的工具的難度,尤其對(duì)于新入行的開(kāi)發(fā)者來(lái)說(shuō)。學(xué)習(xí)成本,框架的多樣化和復(fù)雜度成了很大的難題。例如 Kafka,Hdfs,Spark,Hive 等等組合才能產(chǎn)生最后的分析結(jié)果。把各種開(kāi)源框架、工具、庫(kù)、平臺(tái)人工整合到一起所需工作之復(fù)雜,是大數(shù)據(jù)領(lǐng)域開(kāi)發(fā)和數(shù)據(jù)分析師常有的抱怨之一,也是他們支持大數(shù)據(jù)分析平臺(tái)簡(jiǎn)單化和統(tǒng)一化的首要原因。
二.ClickHouse 發(fā)展歷史Yandex 在 2016 年 6 月 15 日開(kāi)源了一個(gè)數(shù)據(jù)分析的數(shù)據(jù)庫(kù),名字叫做 ClickHouse,這對(duì)保守俄羅斯人來(lái)說(shuō)是個(gè)特大事。更讓人驚訝的是,這個(gè)列式存儲(chǔ)數(shù)據(jù)庫(kù)的跑分要超過(guò)很多流行的商業(yè) MPP 數(shù)據(jù)庫(kù)軟件,例如 Vertica。如果你沒(méi)有聽(tīng)過(guò) Vertica,那你一定聽(tīng)過(guò) Michael Stonebraker,2014 年圖靈獎(jiǎng)的獲得者,PostgreSQL 和 Ingres 發(fā)明者(Sybase 和 SQL Server 都是繼承 Ingres 而來(lái)的), Paradigm4 和 SciDB 的創(chuàng)辦者。Michael Stonebraker 于 2005 年創(chuàng)辦 Vertica 公司,后來(lái)該公司被 HP 收購(gòu),HP Vertica 成為 MPP 列式存儲(chǔ)商業(yè)數(shù)據(jù)庫(kù)的高性能代表,F(xiàn)acebook 就購(gòu)買了 Vertica 數(shù)據(jù)用于用戶行為分析。
三.ClickHouse 支持特性剖析在看 ClickHouse 運(yùn)行場(chǎng)景之前,架構(gòu)師或開(kāi)發(fā)人員必須要了解技術(shù)的功能特性以及弊端。只有”知己知彼”才可以”百戰(zhàn)不殆”,接下來(lái)我們看一下 ClickHouse 的具體特點(diǎn)。我們來(lái)看看其中的一些功能:
1. 真正的面向列的 DBMS
在一個(gè)真正的面向列的 DBMS 中,沒(méi)有任何“垃圾”存儲(chǔ)在值中。例如,必須支持定長(zhǎng)數(shù)值,以避免在數(shù)值旁邊存儲(chǔ)長(zhǎng)度“數(shù)字”。例如,十億個(gè) UInt8 類型的值實(shí)際上應(yīng)該消耗大約 1 GB 的未壓縮磁盤空間,否則這將強(qiáng)烈影響 CPU 的使用。由于解壓縮的速度(CPU 使用率)主要取決于未壓縮的數(shù)據(jù)量,所以即使在未壓縮的情況下,緊湊地存儲(chǔ)數(shù)據(jù)(沒(méi)有任何“垃圾”)也是非常重要的。
因?yàn)橛行┫到y(tǒng)可以單獨(dú)存儲(chǔ)單獨(dú)列的值,但由于其他場(chǎng)景的優(yōu)化,無(wú)法有效處理分析查詢。例如 HBase,BigTable,Cassandra 和 HyperTable。在這些系統(tǒng)中,每秒鐘可以獲得大約十萬(wàn)行的吞吐量,但是每秒不會(huì)達(dá)到數(shù)億行。
另外,ClickHouse 是一個(gè) DBMS,而不是一個(gè)單一的數(shù)據(jù)庫(kù)。ClickHouse 允許在運(yùn)行時(shí)創(chuàng)建表和數(shù)據(jù)庫(kù),加載數(shù)據(jù)和運(yùn)行查詢,而無(wú)需重新配置和重新啟動(dòng)服務(wù)器。
2. 數(shù)據(jù)壓縮
一些面向列的 DBMS(InfiniDB CE 和 MonetDB)不使用數(shù)據(jù)壓縮。但是,數(shù)據(jù)壓縮確實(shí)提高了性能。
3. 磁盤存儲(chǔ)的數(shù)據(jù)
許多面向列的 DBMS(SAP HANA 和 GooglePowerDrill)只能在內(nèi)存中工作。但即使在數(shù)千臺(tái)服務(wù)器上,內(nèi)存也太小,無(wú)法在 Yandex.Metrica 中存儲(chǔ)所有瀏覽量和會(huì)話。
4. 多核并行處理
多核多節(jié)點(diǎn)并行化大型查詢。
5. 在多個(gè)服務(wù)器上分布式處理
上面列出的列式 DBMS 幾乎都不支持分布式處理。在 ClickHouse 中,數(shù)據(jù)可以駐留在不同的分片上。每個(gè)分片可以是用于容錯(cuò)的一組副本。查詢?cè)谒蟹制喜⑿刑幚怼_@對(duì)用戶來(lái)說(shuō)是透明的。
6.SQL 支持
如果你熟悉標(biāo)準(zhǔn)的 SQL 語(yǔ)法,那么大家在談?wù)?ClickHouse SQL 語(yǔ)法的支持層面上,就不能算真正全面的支持 SQL 語(yǔ)法了。ClickHouse SQL 有跟真正 SQL 不一樣的函數(shù)名稱。不過(guò)語(yǔ)法基本跟 SQL 語(yǔ)法兼容,支持 JOIN、FROM、IN 和 JOIN 子句以及標(biāo)量子查詢支持子查詢。不支持關(guān)聯(lián)子查詢。ClickHouse 支持基于 SQL 的聲明性的查詢語(yǔ)言,并且在許多情況下符合 SQL 標(biāo)準(zhǔn)。支持 FROM BY、IN 和 JOIN 子句中的 GROUP BY、ORDER BY,標(biāo)量子查詢和子查詢。不支持特殊的子查詢和窗口函數(shù)。
7. 向量化引擎
數(shù)據(jù)不僅按列存儲(chǔ),而且由矢量 - 列的部分進(jìn)行處理。這使我們能夠?qū)崿F(xiàn)高 CPU 性能。
8. 實(shí)時(shí)數(shù)據(jù)更新
ClickHouse 支持主鍵表。為了快速執(zhí)行對(duì)主鍵范圍的查詢,數(shù)據(jù)使用合并樹 (MergeTree) 進(jìn)行遞增排序。由于這個(gè)原因,數(shù)據(jù)可以不斷地添加到表中。添加數(shù)據(jù)時(shí)無(wú)鎖處理。
9. 索引
例如,帶有主鍵可以在特定的時(shí)間范圍內(nèi)為特定客戶端(Metrica 計(jì)數(shù)器)抽取數(shù)據(jù),并且延遲時(shí)間小于幾十毫秒。
10. 支持在線查詢
這讓我們使用該系統(tǒng)作為 Web 界面的后端。低延遲意味著可以無(wú)延遲實(shí)時(shí)地處理查詢,而 Yandex.Metrica 界面頁(yè)面正在加載(在線模式)。
11. 支持近似計(jì)算
系統(tǒng)包含用于近似計(jì)算各種值,中位數(shù)和分位數(shù)的集合函數(shù)。支持基于部分(樣本)數(shù)據(jù)運(yùn)行查詢并獲得近似結(jié)果。在這種情況下,從磁盤檢索比例較少的數(shù)據(jù)。支持為有限數(shù)量的隨機(jī)密鑰(而不是所有密鑰)運(yùn)行聚合。在數(shù)據(jù)中密鑰分發(fā)的特定條件下,這提供了相對(duì)準(zhǔn)確的結(jié)果,同時(shí)使用較少的資源。12. 數(shù)據(jù)復(fù)制和對(duì)數(shù)據(jù)完整性的支持。
使用異步多主復(fù)制。寫入任何可用的副本后,數(shù)據(jù)將分發(fā)到所有剩余的副本。系統(tǒng)在不同的副本上保持相同的數(shù)據(jù)。數(shù)據(jù)在失敗后自動(dòng)恢復(fù)
ClickHouse 不完美之處:
不支持事物。不支持 Update/Delete 操作。支持有限操作系統(tǒng)。
現(xiàn)在支持 ubuntu,CentOS 需要自己編譯,不過(guò)有熱心人已經(jīng)編譯好了,拿來(lái)用就行。對(duì)于 Windows 不支持。
ClickHouse 與已有大數(shù)據(jù)分析技術(shù)有何不同
知道了 ClickHouse 的特性和不完美,下面我們可以對(duì)比一下之前的大數(shù)據(jù)分析跟現(xiàn)在的有啥區(qū)別?
| 代替復(fù)雜的多樣大數(shù)據(jù)技術(shù)組合架構(gòu)
之前的大數(shù)據(jù)分析,例如 Hadoop 家族由很多技術(shù)和框架組合而成,猶如一頭大象被拆分后其實(shí)所剩下的價(jià)值也就是 HDFS、Kafka、Spark ,其他的幾乎都沒(méi)有任何價(jià)值。
這些可以用 ClickHouse 一項(xiàng)技術(shù)代替。
典型的大數(shù)據(jù)分析架構(gòu) =>ClickHouse
| 查詢速度快快快
以下為新浪公司實(shí)戰(zhàn)得出的測(cè)試結(jié)果:
集群部署 4 臺(tái)機(jī)器,每臺(tái)機(jī)器配置 :CPU [email protected] ,開(kāi)啟超線程后 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 秒
| 官方壓測(cè)
下面是 100M 數(shù)據(jù)集的跑分結(jié)果:ClickHouse 比 Vertia 快約 5 倍,比 Hive 快 279 倍,比 My SQL 快 801 倍;雖然對(duì)不同的 SQL 查詢,結(jié)果不完全一樣,但是基本趨勢(shì)是一致的。ClickHouse 跑分有多塊?舉個(gè)例子:ClickHouse 1 秒,Vertica 5.42 秒,Hive 279 秒;
四.ClickHouse 應(yīng)用場(chǎng)景自從 ClickHouse2016 年 6 月 15 日開(kāi)源后,ClickHouse 中文社區(qū)隨后成立。中文開(kāi)源組開(kāi)始以易觀、新浪、海康威視、美團(tuán)、京東、58、騰訊、酷狗音樂(lè)和俄羅斯開(kāi)源社區(qū)等人員組成,隨著開(kāi)源社區(qū)的不斷活躍,陸續(xù)有神州數(shù)碼、青云、PingCAP、中軟國(guó)際等公司成員加入。一開(kāi)始只是幾個(gè) ClickHouse 愛(ài)好者在群里討論 ClickHouse 技術(shù),后來(lái)因?yàn)榧尤氲娜嗽絹?lái)越多,群內(nèi)分享不太方便,社區(qū)建立了 ClickHouse 中文論壇。在交流中,我們了解到一些一線大廠已經(jīng)把 ClickHouse 運(yùn)用到生產(chǎn)環(huán)境中,社區(qū)也從各個(gè)公司運(yùn)用中吸收了經(jīng)驗(yàn)。
ClickHouse 目前已經(jīng)應(yīng)用于以下場(chǎng)景:
電信行業(yè)用于存儲(chǔ)數(shù)據(jù)和統(tǒng)計(jì)數(shù)據(jù)使用。新浪微博用于用戶行為數(shù)據(jù)記錄和分析工作。用于廣告網(wǎng)絡(luò)和 RTB、電子商務(wù)的用戶行為分析。信息安全里面的日志分析。檢測(cè)和遙感信息的挖掘。商業(yè)智能。網(wǎng)絡(luò)游戲以及物聯(lián)網(wǎng)的數(shù)據(jù)處理和價(jià)值數(shù)據(jù)分析。最大的應(yīng)用來(lái)自于 Yandex 的統(tǒng)計(jì)分析服務(wù) Yandex.Metrica,類似于谷歌 Analytics(GA),或友盟統(tǒng)計(jì)、小米統(tǒng)計(jì),幫助網(wǎng)站或移動(dòng)應(yīng)用進(jìn)行數(shù)據(jù)分析和精細(xì)化運(yùn)營(yíng)工具。據(jù)稱 Yandex.Metrica 為世界上第二大的網(wǎng)站分析平臺(tái)。ClickHouse 在這個(gè)應(yīng)用中,部署了近四百臺(tái)機(jī)器,每天支持 200 億的事件和歷史總記錄超過(guò) 13 萬(wàn)億條記錄,這些記錄都存有原始數(shù)據(jù)(非聚合數(shù)據(jù)),隨時(shí)可以使用 SQL 查詢和分析,生成用戶報(bào)告。五.ClickHouse 和一些技術(shù)的比較商業(yè) OLAP 數(shù)據(jù)庫(kù) 例如:HP Vertica, Actian the Vector,區(qū)別:ClickHouse 是開(kāi)源而且免費(fèi)的 云解決方案 例如:亞馬遜 RedShift 和谷歌的 BigQuery區(qū)別:ClickHouse 可以使用自己機(jī)器部署,無(wú)需為云付費(fèi)
3.Hadoop 生態(tài)軟件
例如:Cloudera Impala, Spark SQL, Facebook Presto , Apache Drill區(qū)別:ClickHouse 支持實(shí)時(shí)的高并發(fā)系統(tǒng)ClickHouse 不依賴于 Hadoop 生態(tài)軟件和基礎(chǔ)ClickHouse 支持分布式機(jī)房的部署開(kāi)源 OLAP 數(shù)據(jù)庫(kù) 例如:InfiniDB, MonetDB, LucidDB區(qū)別:這些項(xiàng)目的應(yīng)用的規(guī)模較小,并沒(méi)有應(yīng)用在大型的互聯(lián)網(wǎng)服務(wù)當(dāng)中,相比之下,ClickHouse 的成熟度和穩(wěn)定性遠(yuǎn)遠(yuǎn)超過(guò)這些軟件。 開(kāi)源分析,非關(guān)系型數(shù)據(jù)庫(kù) 例如:Druid , Apache Kylin區(qū)別:ClickHouse 可以支持從原始數(shù)據(jù)的直接查詢,ClickHouse 支持類 SQL 語(yǔ)言,提供了傳統(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 開(kāi)源的出現(xiàn)讓許多想做大數(shù)據(jù)并且想做大數(shù)據(jù)分析的很多公司和企業(yè)耳目一新。
ClickHouse 正是以不依賴 Hadoop 生態(tài)、安裝和維護(hù)簡(jiǎn)單、查詢速度快、可以支持 SQL 等特點(diǎn)在大數(shù)據(jù)分析領(lǐng)域越走越遠(yuǎn)。
感謝易觀 CTO 郭煒和新浪高鵬高總的資料支持和寫序支持。
傳送門
ClickHouse 官網(wǎng):https://clickhouse.yandex/
ClickHouse 開(kāi)源項(xiàng)目地址:https://github.com/yandex/ClickHouse
作者介紹
張海濤,目前就職于海康威視云基礎(chǔ)平臺(tái),負(fù)責(zé)云計(jì)算大數(shù)據(jù)的基礎(chǔ)架構(gòu)設(shè)計(jì)和中間件的開(kāi)發(fā),專注云計(jì)算大數(shù)據(jù)方向。ClickHouse 中文社區(qū)人員,如果想進(jìn)一步了解最新 ClickHouse 動(dòng)態(tài)和技術(shù)研究成果,請(qǐng)加微信 cyrjkj 入群共同研究和運(yùn)用。或者訪問(wèn)者訪問(wèn) clickhouse.com.cn 加入開(kāi)發(fā)加入開(kāi)發(fā)者社區(qū)。
相關(guān)文章
- 帶貨主播月入十幾萬(wàn)的真相視頻「帶貨主播能賺多少錢」
- 2020年美妝行業(yè)發(fā)展趨勢(shì)洞察「2019美妝行業(yè)發(fā)展趨勢(shì)」
- 14家銀行獲批設(shè)立理財(cái)子公司「理財(cái)通」
- 直播帶貨月入「now直播個(gè)人主播提成多少」
- 直播帶貨一晚上4個(gè)億「網(wǎng)紅一場(chǎng)直播真的能賺幾十萬(wàn)嗎」
- 傳統(tǒng)零售巨頭為什么進(jìn)軍電商「三國(guó)殺出貨」
- 亞馬遜夏季熱銷產(chǎn)品「亞馬遜優(yōu)惠活動(dòng)」
- 亞馬遜最火爆的產(chǎn)品「亞馬遜跨境賣得最好的產(chǎn)品」
- 中國(guó)品牌事件「12月24日歷史」
- 日本亞馬遜促銷節(jié)日「亞馬遜日本站選品參考」
- 慧擇保險(xiǎn)業(yè)務(wù)模式「養(yǎng)老保障產(chǎn)品」
- tiktok爆款產(chǎn)品「必看書單」
- 亞馬遜銷量第一的產(chǎn)品「怎么查看亞馬遜的銷量」
- 保險(xiǎn)行業(yè)創(chuàng)業(yè)方向都在這里了嗎「保險(xiǎn)行業(yè)怎么賺錢」
- 快遞網(wǎng)絡(luò)構(gòu)成「2019網(wǎng)絡(luò)總結(jié)」
- 快遞行業(yè)市場(chǎng)績(jī)效分析「快遞經(jīng)濟(jì)」
- 自己發(fā)貨和云倉(cāng)優(yōu)缺點(diǎn)「云倉(cāng)跟快遞有什么區(qū)別」
- 跨境電商個(gè)人店鋪「做跨境電商的平臺(tái)有哪些?哪個(gè)最好」
