clickhouse基本介紹

什么是clickhouse?

ClickHouse 是一個(gè)列式存儲(chǔ)的高效能分析性數(shù)據(jù)管理系統(tǒng)觉痛,具有
原生的向量化執(zhí)行引擎,Developed by Yandex, opne source since 2016

官網(wǎng): ClickHouse is a column-oriented database management system (DBMS) for
online analytical processing of queries (OLAP)

為什么clickhouse脫穎而出

感人的性能

  • 與一些同類(lèi)型產(chǎn)品對(duì)比


    官網(wǎng)截圖
  • 與其他分析型數(shù)據(jù)庫(kù)對(duì)比


    易觀數(shù)據(jù)

    可以看出clickhouse在性能上有非常卓越的表現(xiàn)。但是這并不意味著它可以代替其他的查詢(xún)數(shù)據(jù)庫(kù)球榆。

特性

數(shù)據(jù)壓縮充易、磁盤(pán)存儲(chǔ)

在一些列式數(shù)據(jù)庫(kù)管理系統(tǒng)中(例如InfiniDB CE和MonetDB) 并沒(méi)有使用數(shù)據(jù)壓縮。但是, 若想達(dá)到比較優(yōu)異的性能裁着,數(shù)據(jù)壓縮確實(shí)起到了至關(guān)重要的作用繁涂。

許多的列式數(shù)據(jù)庫(kù)(如 SAP HANA, Google PowerDrill)只能在內(nèi)存中工作,這種方式會(huì)造成比實(shí)際更多的設(shè)備預(yù)算二驰。ClickHouse被設(shè)計(jì)用于工作在傳統(tǒng)磁盤(pán)上的系統(tǒng)扔罪,它提供每GB更低的存儲(chǔ)成本,但如果有可以使用SSD和內(nèi)存桶雀,它也會(huì)合理的利用這些資源

提供 LZ4矿酵、ZSTD 兩種數(shù)據(jù)壓縮格式

支持SQL

ClickHouse支持基于SQL的聲明式查詢(xún)語(yǔ)言,該語(yǔ)言大部分情況下是與SQL標(biāo)準(zhǔn)兼容的矗积。
支持的查詢(xún)包括 GROUP BY全肮,ORDER BY,IN漠魏,JOIN以及非相關(guān)子查詢(xún)倔矾。
絕大部分查詢(xún)基本和常用的mysql一樣,可以省去大部分同學(xué)的學(xué)習(xí)成本柱锹。不僅如此提供了強(qiáng)大的函數(shù)支查詢(xún)能力哪自,更豐富的存儲(chǔ)格式,例如array多維數(shù)組禁熏、json壤巷、tuple、set等瞧毙。

ps:我們就用這個(gè)解決了變態(tài)的產(chǎn)品提的變態(tài)需求,實(shí)時(shí)查詢(xún)千億數(shù)據(jù)下根據(jù)數(shù)組下標(biāo)的等值查詢(xún)和數(shù)據(jù)包含的范圍查詢(xún)胧华。性能還不錯(cuò)

多核心并行處理

ClickHouse會(huì)使用服務(wù)器上一切可用的資源,從而以最自然的方式并行處理大型查詢(xún)

向量化引擎

為了高效的使用CPU宙彪,數(shù)據(jù)不僅僅按列存儲(chǔ)矩动,同時(shí)還按向量(列的一部分)進(jìn)行處理,這樣可以更加高效地使用CPU

索引
  • 主鍵

ClickHouse支持主鍵索引释漆,它將每列數(shù)據(jù)按照index granularity(默認(rèn)8192行)進(jìn)行劃分悲没,會(huì)為每個(gè)數(shù)據(jù)片段創(chuàng)建一個(gè)索引文件,索引文件包含每個(gè)索引行(『標(biāo)記』)的主鍵值男图。索引行號(hào)定義為 n * index_granularity 示姿。當(dāng)數(shù)據(jù)被插入到表中時(shí)甜橱,會(huì)分成數(shù)據(jù)片段并按主鍵的字典序排序。例如栈戳,主鍵是 (CounterID, Date) 時(shí)岂傲,片段中數(shù)據(jù)按 CounterID 排序,具有相同 CounterID 的部分按 Date 排序子檀。
但是值得注意的是:ClickHouse 不要求主鍵惟一镊掖。所以,你可以插入多條具有相同主鍵的行命锄。要想實(shí)現(xiàn)去重效果堰乔,需要結(jié)合具體的表引擎ReplacingMergeTree、CollapsingMergeTree脐恩、VersionedCollapsingMergeTree實(shí)現(xiàn)镐侯。

  • 稀疏索引

ClickHouse支持對(duì)任意列創(chuàng)建任意數(shù)量的稀疏索引。其中被索引的value可以是任意的合法SQL Expression驶冒,并不僅僅局限于對(duì)column value本身進(jìn)行索引苟翻。之所以叫稀疏索引,是因?yàn)樗举|(zhì)上是對(duì)一個(gè)完整index granularity(默認(rèn)8192行)的統(tǒng)計(jì)信息骗污,并不會(huì)具體記錄每一行在文件中的位置崇猫。

支持近似計(jì)算

ClickHouse提供各種各樣在允許犧牲數(shù)據(jù)精度的情況下對(duì)查詢(xún)進(jìn)行加速的方法:

  1. 用于近似計(jì)算的各類(lèi)聚合函數(shù),如:distinct values, medians, quantiles
  2. 基于數(shù)據(jù)的部分樣本進(jìn)行近似查詢(xún)需忿。這時(shí)诅炉,僅會(huì)從磁盤(pán)檢索少部分比例的數(shù)據(jù)。
  3. 不使用全部的聚合條件屋厘,通過(guò)隨機(jī)選擇有限個(gè)數(shù)據(jù)聚合條件進(jìn)行聚合涕烧。這在數(shù)據(jù)聚合條件滿(mǎn)足某些分布條件下,在提供相當(dāng)準(zhǔn)確的聚合結(jié)果的同時(shí)降低了計(jì)算資源的使用汗洒。
豐富的表引擎

clickhouse 不僅擁有自己強(qiáng)大的MergeTree家族的多種引擎外议纯,還提供了豐富的外部引擎供我們選擇,包括但不限于:kafka溢谤、HDFS瞻凤、Mysql。
但是使用外部引擎的時(shí)世杀,性能自然會(huì)不如本地存儲(chǔ)阀参。

MergeTree引擎家族中很有很多優(yōu)秀的引擎
比如:
    適合人物畫(huà)像的AggregatingMergeTree引擎
    可自定義去重的SummingMergeTree引擎
    折疊樹(shù)CollapsingMergeTree
    用于Graphite監(jiān)控的GraphiteMergeTree引擎
    。瞻坝。蛛壳。
這些都具有數(shù)據(jù)副本的能力  Replicated*
官方推薦的適合大多數(shù)場(chǎng)景的依然是MergeTree引擎,其家族中其他引擎大多也是在其基礎(chǔ)上做的封裝。

除此之外炕吸,還有分布式的表引擎。Distributed
Distributed是一種邏輯表引擎勉痴,并不存儲(chǔ)數(shù)據(jù)赫模。創(chuàng)建該表引擎時(shí),會(huì)指向已配置的分片集蒸矛,要查詢(xún)的時(shí)候瀑罗,它會(huì)向每個(gè)分片發(fā)起查詢(xún)并最終匯總集合然后返回。
這里配置分片集可超靈活的配置雏掠,不用的時(shí)候可以刪除斩祭。以后會(huì)單獨(dú)來(lái)介紹該引擎的使用。

數(shù)據(jù)分區(qū)PARTITION

ClickHouse支持PARTITION BY子句乡话,在建表時(shí)可以指定按照任意合法表達(dá)式進(jìn)行數(shù)據(jù)分區(qū)操作摧玫,比如通過(guò)toYYYYMM()將數(shù)據(jù)按月進(jìn)行分區(qū)、toMonday()將數(shù)據(jù)按照周幾進(jìn)行分區(qū)绑青。分區(qū)條件查詢(xún)诬像,只能讀取包含適當(dāng)分區(qū)數(shù)據(jù)塊,而不掃描過(guò)多的數(shù)據(jù)闸婴。靈活的使用坏挠,可以大大提升查詢(xún)的性能。

限制

沒(méi)有完美的設(shè)計(jì)邪乍,只有適合的設(shè)計(jì)降狠。
clickhouse也有自己的限制。

  • 不支持事務(wù)
  • 缺少高頻率庇楞,低延遲的修改或刪除已存在數(shù)據(jù)的能力榜配。僅能用于批量刪除或修改數(shù)據(jù)(性能不太好)
  • 稀疏索引使得ClickHouse不適合通過(guò)其鍵檢索單行的點(diǎn)查詢(xún)
  • 不支持大量的并發(fā)請(qǐng)求。每秒上百甚至更少

總結(jié)

  • 使用建議
  1. 數(shù)據(jù)被添加到數(shù)據(jù)庫(kù)姐刁,基本不怎么修改芥牌。
  2. 查詢(xún)并發(fā)相對(duì)不高。
  3. 大寬表存儲(chǔ)聂使,少部分字段使用壁拉。
  4. 批量操作,更新或者刪除柏靶。
  5. 列值相對(duì)小弃理,數(shù)字或者短字符串。
  6. 無(wú)事務(wù)處理屎蜓。
  • 推薦場(chǎng)景

用于存儲(chǔ)數(shù)據(jù)和統(tǒng)計(jì)數(shù)據(jù)使用
用戶(hù)行為數(shù)據(jù)記錄和分析工作
日志分析

其他

Clickhouse官方還貼心給出中文官方文檔痘昌,就是看著不太順眼,還是英文的舒服。
隨著開(kāi)源辆苔,國(guó)內(nèi)各大廠(chǎng)商都紛紛跟進(jìn)算灸,在頭條、騰訊驻啤、攜程菲驴、快手都有大規(guī)模使用。
目前阿里云已經(jīng)率先推出了ClickHouse的云托管產(chǎn)品骑冗,處于公測(cè)階段赊瞬。感興趣的小伙伴可以去使用,一起學(xué)習(xí)贼涩。

如有錯(cuò)誤巧涧,希望大家批評(píng)指正。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遥倦,一起剝皮案震驚了整個(gè)濱河市谤绳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌袒哥,老刑警劉巖闷供,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異统诺,居然都是意外死亡歪脏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)粮呢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)婿失,“玉大人,你說(shuō)我怎么就攤上這事啄寡『拦瑁” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵挺物,是天一觀的道長(zhǎng)懒浮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)识藤,這世上最難降的妖魔是什么砚著? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮痴昧,結(jié)果婚禮上稽穆,老公的妹妹穿的比我還像新娘。我一直安慰自己赶撰,他們只是感情好坑资,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著菇怀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哟楷。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天否灾,我揣著相機(jī)與錄音吓蘑,去河邊找鬼。 笑死坟冲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溃蔫。 我是一名探鬼主播健提,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼伟叛!你這毒婦竟也來(lái)了私痹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤统刮,失蹤者是張志新(化名)和其女友劉穎紊遵,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體侥蒙,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡暗膜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鞭衩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片学搜。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖论衍,靈堂內(nèi)的尸體忽然破棺而出瑞佩,到底是詐尸還是另有隱情,我是刑警寧澤坯台,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布炬丸,位于F島的核電站,受9級(jí)特大地震影響蜒蕾,放射性物質(zhì)發(fā)生泄漏稠炬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一咪啡、第九天 我趴在偏房一處隱蔽的房頂上張望酸纲。 院中可真熱鬧,春花似錦瑟匆、人聲如沸闽坡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疾嗅。三九已至外厂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間代承,已是汗流浹背汁蝶。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留论悴,地道東北人掖棉。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像膀估,于是被迫代替她去往敵國(guó)和親幔亥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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

  • 引言 ClickHouse是近年來(lái)備受關(guān)注的開(kāi)源列式數(shù)據(jù)庫(kù)察纯,主要用于數(shù)據(jù)分析(OLAP)領(lǐng)域帕棉。目前國(guó)內(nèi)社區(qū)火熱,各...
    達(dá)微閱讀 1,931評(píng)論 0 7
  • ClickHouse是近年來(lái)備受關(guān)注的開(kāi)源列式數(shù)據(jù)庫(kù)即纲,主要用于數(shù)據(jù)分析(OLAP)領(lǐng)域。目前國(guó)內(nèi)社區(qū)火熱博肋,各個(gè)大廠(chǎng)...
    達(dá)微閱讀 818評(píng)論 0 0
  • 深秋曉聞滴水聲崇裁,睡中不覺(jué)晨將去。 窗外秋冷不舍被束昵,起用飯食好驅(qū)寒拔稳。 細(xì)雨長(zhǎng)滴語(yǔ)天音,聲聲摧人緊著衣锹雏。 鳥(niǎo)寂猶立空枝...
    倚欄者閱讀 132評(píng)論 0 2
  • 是不是感覺(jué)這么形容有些肉麻礁遵? 不過(guò)轻绞,一點(diǎn)也不夸張哦! 你佣耐,內(nèi)容創(chuàng)作者政勃,只要活兒好,顏值高兼砖,就放心地把自己的原創(chuàng)內(nèi)容...
    咖啡古古閱讀 254評(píng)論 0 0
  • (十) 武漢的天氣陰晴不定奸远,晝夜溫差也有些大既棺,下午時(shí)和懶喵去夜市買(mǎi)水果,順便吃飯懒叛,回來(lái)時(shí)已是晚上了丸冕,誰(shuí)料想天公突然...
    念安shiny閱讀 114評(píng)論 0 0