clickhouse基礎(chǔ)學(xué)習(xí)

一、是什么

ClickHouse是一個開源的列式數(shù)據(jù)庫管理系統(tǒng),專門設(shè)計用于處理大規(guī)模數(shù)據(jù)分析和OLAP(在線分析處理)工作負載。它最初由俄羅斯的Yandex公司開發(fā)冀自,并于2016年發(fā)布為開源項目。

二秒啦、有什么特點

  1. 列式存儲:ClickHouse以列式存儲方式組織數(shù)據(jù)熬粗,這意味著相同列中的數(shù)據(jù)存儲在一起,這種存儲方式在分析查詢和聚合操作中非常高效余境。

  2. 高性能:ClickHouse被設(shè)計成能夠處理非常大的數(shù)據(jù)集驻呐,并能夠快速執(zhí)行復(fù)雜的分析查詢。它通過使用多核CPU和高度優(yōu)化的查詢執(zhí)行引擎來實現(xiàn)高性能葛超。

  3. 支持SQL:ClickHouse支持SQL查詢語言暴氏,這使得它易于使用和集成到現(xiàn)有的數(shù)據(jù)分析工具和應(yīng)用程序中延塑。

  4. 分布式架構(gòu):ClickHouse可以輕松擴展到多個節(jié)點绣张,以處理大規(guī)模數(shù)據(jù)集。它支持數(shù)據(jù)分片关带、負載均衡和故障容忍侥涵,以確保高可用性和可伸縮性。

  5. 實時數(shù)據(jù)導(dǎo)入:ClickHouse支持實時數(shù)據(jù)導(dǎo)入宋雏,可以從各種數(shù)據(jù)源實時接收數(shù)據(jù)芜飘,這對于處理流式數(shù)據(jù)和實時分析非常有用。

  6. 開源:ClickHouse是開源的磨总,可以免費使用和定制嗦明,因此它在許多組織中得到了廣泛的應(yīng)用。

三蚪燕、常用的業(yè)務(wù)場景

  1. 數(shù)據(jù)倉庫: ClickHouse可以用作企業(yè)數(shù)據(jù)倉庫娶牌,用于存儲和分析大規(guī)模的歷史數(shù)據(jù)奔浅。它支持高性能的復(fù)雜查詢和聚合操作,有助于發(fā)現(xiàn)數(shù)據(jù)中的趨勢和洞察诗良。
  2. 實時報告和儀表盤: ClickHouse可以用于構(gòu)建實時報告和儀表盤汹桦,通過實時數(shù)據(jù)導(dǎo)入和快速查詢執(zhí)行,幫助業(yè)務(wù)決策者實時監(jiān)控業(yè)務(wù)績效鉴裹。
  3. 廣告分析: 在廣告技術(shù)領(lǐng)域舞骆,ClickHouse可用于跟蹤廣告活動的效果,分析點擊率径荔、轉(zhuǎn)化率和ROI等關(guān)鍵指標督禽。
  4. 日志分析: ClickHouse非常適合處理大量日志數(shù)據(jù),例如服務(wù)器日志总处、應(yīng)用程序日志和網(wǎng)絡(luò)流量日志赂蠢。它能夠快速執(zhí)行日志分析查詢,幫助識別問題和異常辨泳。
  5. 事件追蹤: 許多應(yīng)用程序需要追蹤用戶活動和事件虱岂。ClickHouse可以用于存儲和分析這些事件數(shù)據(jù),以提供洞察用戶行為和趨勢的見解菠红。
  6. 時序數(shù)據(jù)分析: 時序數(shù)據(jù)(例如傳感器數(shù)據(jù)第岖、監(jiān)控數(shù)據(jù)、時間序列數(shù)據(jù)庫中的數(shù)據(jù))的存儲和分析是ClickHouse的另一個強大用途试溯。它支持時間窗口查詢和聚合蔑滓,使其成為處理時序數(shù)據(jù)的理想選擇。
  7. 數(shù)據(jù)湖分析: ClickHouse可以與數(shù)據(jù)湖架構(gòu)集成遇绞,用于在數(shù)據(jù)湖中存儲和分析大規(guī)模數(shù)據(jù)集键袱。
  8. 在線廣告投放: ClickHouse可以幫助廣告技術(shù)公司實時調(diào)整廣告投放策略,以提高廣告的定位精度和效率摹闽。
  9. 金融分析: 金融領(lǐng)域需要處理大量的交易和市場數(shù)據(jù)蹄咖。ClickHouse可以用于執(zhí)行復(fù)雜的金融分析,例如風(fēng)險評估付鹿、投資組合優(yōu)化和市場趨勢分析澜汤。
  10. 運營分析: 企業(yè)可以使用ClickHouse來分析運營數(shù)據(jù),包括庫存管理舵匾、供應(yīng)鏈優(yōu)化和客戶關(guān)系管理俊抵。

總之,ClickHouse在需要大規(guī)模數(shù)據(jù)存儲坐梯、高性能查詢和實時數(shù)據(jù)分析的各種業(yè)務(wù)場景中都可以發(fā)揮作用徽诲。它的設(shè)計使其適用于處理大數(shù)據(jù)和復(fù)雜分析需求的情況。

四、為什么它可以查詢的這么快谎替?

  1. 列式存儲: 列式存儲轩拨,減少I/O操作和數(shù)據(jù)傳輸量。ClickHouse采用列式存儲院喜,這意味著它將相同列的數(shù)據(jù)存儲在一起亡蓉,而不是行式存儲中將整行數(shù)據(jù)存儲在一起。這種列式存儲方式使得只需讀取和解析實際需要的列數(shù)據(jù)喷舀,從而減少了I/O操作和數(shù)據(jù)傳輸量砍濒。這對于數(shù)據(jù)分析查詢非常高效,因為通常只需要一部分列數(shù)據(jù)來回答查詢硫麻。

  2. 數(shù)據(jù)壓縮: 壓縮減少傳輸時間爸邢。ClickHouse使用高度優(yōu)化的壓縮算法件豌,將數(shù)據(jù)在存儲時壓縮睬关,這不僅減小了磁盤占用空間敷存,還減少了數(shù)據(jù)傳輸時間懒浮。在查詢時,ClickHouse能夠在內(nèi)存中快速解壓數(shù)據(jù)太抓,從而加快查詢速度棚菊。

  3. 多核并行處理: 數(shù)據(jù)存在分布式多態(tài)服務(wù)器上卿操,利用多臺服務(wù)器的CPU并行查詢柳洋。ClickHouse充分利用多核CPU和多線程技術(shù)待诅,可以并行執(zhí)行查詢操作。這意味著可以同時處理多個查詢片段熊镣,提高了查詢性能卑雁。

  4. 合并操作: 按照查詢條件只查詢某些數(shù)據(jù)塊的數(shù)據(jù),掃描的數(shù)據(jù)范圍會變小绪囱。ClickHouse使用合并操作來優(yōu)化查詢测蹲,避免不必要的數(shù)據(jù)移動。它將數(shù)據(jù)按塊(block)存儲鬼吵,并在查詢時盡可能使用整個塊扣甲。這減少了不必要的數(shù)據(jù)復(fù)制和操作。

  5. 索引技術(shù): ClickHouse支持索引而柑,這可以加速某些查詢文捶,特別是在過濾條件上使用索引列時荷逞。索引使得數(shù)據(jù)的查找更加高效媒咳,從而加速了查詢。

  6. 向量化執(zhí)行: ClickHouse使用向量化查詢執(zhí)行种远,這意味著它可以在一次操作中處理多個數(shù)據(jù)點涩澡,而不是逐個處理。這種向量化執(zhí)行方式減少了CPU指令的開銷坠敷,提高了查詢速度妙同。

  7. 數(shù)據(jù)分區(qū)和負載均衡: ClickHouse支持數(shù)據(jù)分區(qū)和負載均衡射富,可以將數(shù)據(jù)分散存儲在多個節(jié)點上,并在查詢時將工作負載均衡分配到不同的節(jié)點上粥帚。這有助于水平擴展和提高查詢性能胰耗。

五、clickhouse的底層數(shù)據(jù)存儲

數(shù)據(jù)在clickhouse以何種形式被存儲要看使用的是什么表引擎芒涡。表引擎柴灯,決定了一張 數(shù)據(jù)表最終的性格,它擁有何種特性费尽、數(shù)據(jù)以何種形式被存儲以及如何被加載赠群。

5.1 MergeTree家族(合并樹)

之所以說是合并樹家族,是因為MergeTree衍生了好幾個與之類似的引擎旱幼。

  • MergeTree 最基礎(chǔ)的版本,支持數(shù)據(jù)分區(qū),后臺自動合并查描。

  • ReplacingMergeTree: 支持替換舊數(shù)據(jù)的MergeTree。在同一個分區(qū)內(nèi)柏卤,clickhouse在后臺合并數(shù)據(jù)的時候會刪除重復(fù)數(shù)據(jù)冬三,注意這里是同一個分區(qū)內(nèi)的去重效果。

  • SummingMergeTree: 支持把多行數(shù)據(jù)合并求和的MergeTree缘缚。在合并分區(qū)的時候长豁,將同一分組下的多行數(shù)據(jù)提前匯總合并成一行,這樣減少了數(shù)據(jù)行忙灼,又降低了后續(xù)匯總查詢的開銷匠襟。

  • AggregatingMergeTree: 支持聚合的MergeTree。將需要聚合的數(shù)據(jù)預(yù)先計算出來该园,并將結(jié)果保存起來酸舍,在后續(xù)進行聚合查詢的時候直接使用結(jié)果數(shù)據(jù)。

  • CollapsingMergeTree: 支持數(shù)據(jù)折疊(意思就是以增代刪)的MergeTree里初。它通過定義一個sign標志位字段啃勉,記錄數(shù)據(jù)行的狀態(tài),如果sign標記為1双妨,則表示這是一行有效的數(shù)據(jù)淮阐,如果是-1,則表示這行數(shù)據(jù)需要被刪除刁品。CollapsingMergeTree合并數(shù)據(jù)時泣特,同一分區(qū),sign為1和-1的數(shù)據(jù)會被抵消刪除挑随。猶如折疊一般状您。這個引擎還有個使用條件,就是對于寫入數(shù)據(jù)的順序有嚴格的要求,如果先寫入sign=-1的數(shù)據(jù)膏孟,在寫入sign=1的數(shù)據(jù)眯分,則不能夠折疊。所以如果你寫入數(shù)據(jù)是用的多線程寫入柒桑,大概率有問題弊决。

  • VersionedCollapsingMergeTree:結(jié)合版本控制的CollapsingMergeTree。這個就是為了解決上面說的寫入順序的問題魁淳。加了個版本號丢氢。數(shù)據(jù)會自動按照orderby version,這樣就有確定的順序先改。

    ......等等


    image.png

5.2 Memory(內(nèi)存)

自行了解下面的存儲結(jié)構(gòu)

5.3 文件

5.4 第三方自定義

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疚察,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子仇奶,更是在濱河造成了極大的恐慌貌嫡,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件该溯,死亡現(xiàn)場離奇詭異岛抄,居然都是意外死亡,警方通過查閱死者的電腦和手機狈茉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門夫椭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人氯庆,你說我怎么就攤上這事蹭秋。” “怎么了堤撵?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵仁讨,是天一觀的道長。 經(jīng)常有香客問我实昨,道長洞豁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任荒给,我火速辦了婚禮丈挟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘志电。我一直安慰自己曙咽,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布溪北。 她就那樣靜靜地躺著桐绒,像睡著了一般夺脾。 火紅的嫁衣襯著肌膚如雪之拨。 梳的紋絲不亂的頭發(fā)上茉继,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音蚀乔,去河邊找鬼烁竭。 笑死,一個胖子當著我的面吹牛吉挣,可吹牛的內(nèi)容都是我干的派撕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼睬魂,長吁一口氣:“原來是場噩夢啊……” “哼终吼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起氯哮,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤际跪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后喉钢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姆打,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年肠虽,在試婚紗的時候發(fā)現(xiàn)自己被綠了幔戏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡税课,死狀恐怖闲延,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情韩玩,我是刑警寧澤慨代,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站啸如,受9級特大地震影響侍匙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叮雳,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一想暗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帘不,春花似錦说莫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽互婿。三九已至,卻和暖如春辽狈,著一層夾襖步出監(jiān)牢的瞬間慈参,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工刮萌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驮配,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓着茸,卻偏偏與公主長得像壮锻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涮阔,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

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