學(xué)AI,好工作 就找北大青鳥(niǎo)
關(guān)注小青 聽(tīng)課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

阿里騰訊頭條快手都在用的Clickhouse到底是什么?

來(lái)源:北大青鳥(niǎo)總部 2023年04月11日 09:45

摘要: 在云計(jì)算、大數(shù)據(jù)的互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)分析成為了一項(xiàng)尤其重要的能力,掌握一門大數(shù)據(jù)庫(kù)技術(shù),毫無(wú)疑問(wèn)會(huì)為簡(jiǎn)歷加分,畢竟阿里、騰訊、頭條、快手都已經(jīng)在使用ClickHouse。

又是一年七夕到了,有對(duì)象的人打開(kāi)手機(jī),準(zhǔn)備給女朋友買個(gè)禮物,一打開(kāi)女朋友的淘寶,包包、化妝品、項(xiàng)鏈、手鏈、衣服…..全都是各種推薦,每一樣都很心動(dòng),買什么好呢?反正都是女朋友喜歡的,隨便買一樣,準(zhǔn)沒(méi)錯(cuò)。那么沒(méi)有對(duì)象的人難道就不能過(guò)七夕了嗎?當(dāng)然不是,打開(kāi)手機(jī),刷刷抖音,各種搞笑視頻,笑的根本停不下來(lái),愉快的一天就過(guò)去了。

在玩手機(jī)的同時(shí),有木有發(fā)現(xiàn)它很懂你的心,給你推薦的內(nèi)容基本是你可以接受的?甚至還有點(diǎn)讓你小心動(dòng),偶爾也讓你有點(diǎn)小驚喜,讓你不得不感嘆系統(tǒng)的強(qiáng)大“太厲害了,居然這也知道”。在這個(gè)“最懂你”的系統(tǒng)背后其實(shí)是ClickHouse大數(shù)據(jù)庫(kù)在提供支持噢。頭條內(nèi)部有上千近萬(wàn)個(gè)clickhouse節(jié)點(diǎn),單集群最大節(jié)點(diǎn)數(shù)1200,總數(shù)據(jù)量幾十PB;快手內(nèi)部也使用ClickHouse,存儲(chǔ)總量大約10PB。俗話說(shuō)“二十一天養(yǎng)成一個(gè)習(xí)慣”,在二十一天類重復(fù)的做一件事,最后這件事必定深入你的生活,同樣,頭條快手將你二十一天、二百一十天的數(shù)據(jù)全都進(jìn)行用戶畫(huà)像、用戶行為分析,最后呈現(xiàn)給你的內(nèi)容,必定打動(dòng)你心啊。

那么ClickHouse到底是什么呢?它有什么特性可以獲得如此多大廠的青睞、互聯(lián)網(wǎng)企業(yè)的使用呢?今天我們就來(lái)詳細(xì)介紹這款數(shù)據(jù)庫(kù)。

ClickHouse是用于聯(lián)機(jī)分析(即OLAP,OnLineAnalyticalProcessing)的列式數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS。OLAP與OLTP是相對(duì)的,OLAP主要是用于讀取數(shù)據(jù)、進(jìn)行數(shù)據(jù)分析,輔助運(yùn)營(yíng)決策分析;OLTP(OnLineTransaction Processing)聯(lián)機(jī)事務(wù)處理是進(jìn)行事務(wù)的增刪改查操作,比如在電商系統(tǒng)中進(jìn)行商品的購(gòu)買、庫(kù)存減少等。

在OLAP場(chǎng)景中側(cè)重于對(duì)數(shù)據(jù)的分析,因此讀數(shù)據(jù)操作是多于寫(xiě)數(shù)據(jù)的。在數(shù)據(jù)一次性寫(xiě)入后,數(shù)據(jù)工程師需要從各個(gè)角度對(duì)數(shù)據(jù)進(jìn)行挖掘、分析,直到發(fā)現(xiàn)其中的業(yè)務(wù)變化趨勢(shì),對(duì)于數(shù)據(jù)的讀取是非常頻繁,而且不需要數(shù)據(jù)的更新,也不需要事務(wù)來(lái)強(qiáng)調(diào)一致性,只要獲取到數(shù)據(jù)就好啦,ClickHouse非常適合作為底層數(shù)據(jù)庫(kù)提供支持。

所謂列式數(shù)據(jù)庫(kù)指的是數(shù)據(jù)在數(shù)據(jù)庫(kù)中存儲(chǔ)的方式。在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)如Mysql中,數(shù)據(jù)是按行來(lái)存儲(chǔ)的,而在列式數(shù)據(jù)庫(kù)如ClickHouse中,數(shù)據(jù)是按列來(lái)存儲(chǔ)的。這樣存儲(chǔ)的好處就是在做數(shù)據(jù)分析時(shí)選擇某幾列來(lái)作為分析屬性,獲取數(shù)據(jù)非???,延遲低,如果按行讀取,每次只能讀取一個(gè)數(shù)據(jù),有10000條就需要讀取1000次,降低了效率。



在分析場(chǎng)景下,列式數(shù)據(jù)庫(kù)還有很多其它的優(yōu)點(diǎn),比如低成本、低帶寬、低延時(shí)。在列式數(shù)據(jù)庫(kù)中我們知道同一列的數(shù)據(jù)都是一個(gè)類型的,那么可以將它進(jìn)行壓縮,在同樣的存儲(chǔ)空間下可以放更多的數(shù)據(jù),既節(jié)省了網(wǎng)絡(luò)帶寬,也提高了數(shù)據(jù)的cache命中率,更容易更快的獲取到數(shù)據(jù)。



介紹了ClickHouse的基本特性之后,我們?cè)購(gòu)拇鎯?chǔ)層和計(jì)算層看看它又給我們帶來(lái)哪些驚喜呢?在存儲(chǔ)層它實(shí)現(xiàn)了數(shù)據(jù)有序存儲(chǔ)、主鍵索引、稀疏索引、數(shù)據(jù)分區(qū)分片、主備復(fù)制等功能。

所謂數(shù)據(jù)的有序存儲(chǔ)指的是數(shù)據(jù)在建表時(shí)可以將數(shù)據(jù)按照某些列進(jìn)行排序,排序之后,相同類型的數(shù)據(jù)在磁盤上有序的存儲(chǔ),在進(jìn)行范圍查詢時(shí)所獲取的數(shù)據(jù)都存儲(chǔ)在一個(gè)或若干個(gè)連續(xù)的空間內(nèi),極大的減少了磁盤IO時(shí)間;所謂數(shù)據(jù)分區(qū)分片,指的是在ClickHouse的部署模式上支持單機(jī)模式和分布式集群模式,在分布式中會(huì)把數(shù)據(jù)分為多個(gè)分片,并且分布到不同的節(jié)點(diǎn)上,它提供了豐富的分片策略,包含random隨機(jī)分片(將寫(xiě)入數(shù)據(jù)隨機(jī)分發(fā)到集群中的某個(gè)節(jié)點(diǎn))、constant固定分片(將寫(xiě)入數(shù)據(jù)分發(fā)到某個(gè)固定節(jié)點(diǎn))、columnvalue分片(將寫(xiě)入數(shù)據(jù)按某一列的值進(jìn)行hash分片)、自定義表達(dá)式分片(將寫(xiě)入數(shù)據(jù)按照自定義的規(guī)則進(jìn)行hash分片)。

在計(jì)算層ClickHouse提供了多核并行、分布式計(jì)算、近似計(jì)算、復(fù)雜數(shù)據(jù)類型支持等技術(shù)能力,最大化程度利用CPU資源,提升系統(tǒng)查詢速度。所謂多核并行指的是在ClickHouse中數(shù)據(jù)是被分成了多個(gè)分區(qū),查詢某條數(shù)據(jù)時(shí)通過(guò)多分區(qū)的數(shù)據(jù)利用CPU的多核同時(shí)并行處理獲取數(shù)據(jù),降低了查詢時(shí)長(zhǎng);所謂分布式計(jì)算指的是ClickHouse將查詢?nèi)蝿?wù)拆分成多個(gè)子任務(wù)下發(fā)到多個(gè)集群中進(jìn)行多機(jī)并行處理,最后匯聚結(jié)果給到用戶,提供最近hostname規(guī)則(即將任務(wù)下發(fā)到機(jī)器最近的hostname節(jié)點(diǎn))、inorder(即按順序進(jìn)行分發(fā),當(dāng)某個(gè)分片不可用時(shí),下發(fā)到下一個(gè)分片);所謂近似計(jì)算指的是犧牲一定的精確度獲取數(shù)據(jù),在海量數(shù)據(jù)的分析中,其實(shí)并不需要非常精準(zhǔn)的數(shù)據(jù),近似數(shù)據(jù)足以分析決策,ClickHouse提供了中位數(shù)、分位數(shù)等多種聚合函數(shù),極大的提高了查詢性能,減輕了計(jì)算壓力。

ClickHouse的發(fā)展可謂是非常快速,除了各個(gè)大廠都在使用之外,在社區(qū)方面,github標(biāo)記為星級(jí)項(xiàng)目的人超過(guò)9000,成為最受開(kāi)源的項(xiàng)目之一。它是一套完整的解決方案,自帶存儲(chǔ)能力、計(jì)算能力,自己實(shí)現(xiàn)了分布式計(jì)算、分布式集群部署,完全高可用,真可謂是簡(jiǎn)單靈活又不失強(qiáng)大!

在云計(jì)算、大數(shù)據(jù)的互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)分析成為了一項(xiàng)尤其重要的能力,如果你還會(huì)這么一門大數(shù)據(jù)庫(kù)技術(shù),毫無(wú)疑問(wèn),絕對(duì)會(huì)為你的簡(jiǎn)歷加分喔,畢竟阿里、騰訊、頭條、快手都已經(jīng)在使用ClickHouse了呀~


標(biāo)簽: 大數(shù)據(jù)
熱門班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開(kāi)發(fā)全能班 爆滿開(kāi)班
網(wǎng)絡(luò)安全運(yùn)營(yíng)班 爆滿開(kāi)班
報(bào)名優(yōu)惠
免費(fèi)試聽(tīng)
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接