偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

OLAP 的技術(shù)研發(fā)與思考--ClickHouse 2023 總結(jié)和 2024 展望

數(shù)據(jù)庫 其他數(shù)據(jù)庫
ClickHouse 是一個(gè)用于聯(lián)機(jī)分析(OLAP)的列式數(shù)據(jù)庫管理系統(tǒng)(DBMS),主要用于線上分析處理。本文會(huì)介紹 ClickHouse 2024 核心新功能和產(chǎn)品研發(fā)方向。

一、ClickHouse 簡介

1、ClickHouse 是什么?

圖片

  • 開源

ClickHouse 是一款開源產(chǎn)品,自 2016 年首次開源至今已經(jīng) 7 年時(shí)間;在這期間,有幸得到了全球 1300 余名開發(fā)者的貢獻(xiàn);自開源以來,ClickHouse 已發(fā)布 500 多個(gè)版本。

  • 列式數(shù)據(jù)庫

ClickHouse 的核心是以 C++ 和 assembly 編寫的列式數(shù)據(jù)庫,并在此基礎(chǔ)上進(jìn)行性能優(yōu)化,在聚合、排序、索引、后臺合并等方面均有出色的表現(xiàn),因此獲得了“世界上最快的數(shù)據(jù)庫”的稱號。

  • 分布式架構(gòu)

ClickHouse 是一個(gè)高可用性的分布式系統(tǒng),既可以部署在單個(gè)節(jié)點(diǎn)上,也可以將不同的節(jié)點(diǎn)部署到同一數(shù)據(jù)中心,甚至可以將節(jié)點(diǎn)分散部署到多個(gè)不同的數(shù)據(jù)中心。

在擴(kuò)展性方面,作為一種 Multi-master 分布式系統(tǒng),既支持垂直擴(kuò)展,也支持水平擴(kuò)展;即便個(gè)別服務(wù)器出現(xiàn)故障,系統(tǒng)依然可以繼續(xù)運(yùn)行,不影響整體的服務(wù)體驗(yàn)。

  • OLAP 數(shù)倉

ClickHouse 是一種 OLAP 數(shù)據(jù)庫,主要為處理不可變數(shù)據(jù)以及超大規(guī)模查詢而創(chuàng)建,支持?jǐn)?shù)百 PB 數(shù)據(jù)量的即時(shí)查詢服務(wù),同時(shí)也支持 BI 工具。

2、ClickHouse 的優(yōu)勢

圖片

  • 輕量級快速查詢

ClickHouse 在大規(guī)模數(shù)據(jù)分析和查詢方面表現(xiàn)良好,聚合和計(jì)算速度都非常快,如上圖右側(cè)截圖所示,ClickHouse 的表現(xiàn)顯著超越 Pinot、Redshift、Elasticsearch、Druid 等其他競爭對手。

  • 資源利用最大化

ClickHouse 采用行業(yè)領(lǐng)先的數(shù)據(jù)壓縮技術(shù),存儲(chǔ)效率提高數(shù)十倍至百倍。

  • 方便上手,容易使用

ClickHouse 支持多種不同 Table Function,支持各種數(shù)據(jù)來源(例如 S3、Delta Lake、Iceberg、Hudi 等)的自助式數(shù)據(jù)引入,同時(shí)支持標(biāo)準(zhǔn) SQL 語法查詢,因此易于上手。

3、ClickHouse 的發(fā)展歷程

圖片

ClickHouse 最初于 2009 年基于互聯(lián)網(wǎng)規(guī)模分析需求而創(chuàng)建;在 2016 年 6 月,ClickHouse 以 Apache 2.0 許可證發(fā)布第一個(gè)版本;從右圖可以看出,自 2016 年起,ClickHouse 經(jīng)歷了飛速的發(fā)展,其增長速度遠(yuǎn)超其他同類型項(xiàng)目。到 2021 年,ClickHouse Inc 成立,公司致力于投資開源產(chǎn)品,實(shí)現(xiàn)技術(shù)的不斷優(yōu)化。公司去年推出云服務(wù),支持開源軟件(OSS)的開發(fā),并構(gòu)建托管的云 SaaS 產(chǎn)品;這樣,ClickHouse 不僅是一個(gè)開源產(chǎn)品,同時(shí)也提供了云服務(wù)選項(xiàng)。

4、兩種 ClickHouse 運(yùn)營模式

ClickHouse 有兩種運(yùn)營模式:ClickHouse 自建和 ClickHouse Cloud,用戶可根據(jù)不同的場景選擇適當(dāng)?shù)哪J健?/span>

圖片


(1)ClickHouse 自建

ClickHouse 自建是最初的設(shè)計(jì)理念:用戶直接下載開源軟件并部署到環(huán)境中;數(shù)據(jù)可以直接存儲(chǔ)在節(jié)點(diǎn)上,這是一種簡潔高效的模式,數(shù)據(jù)和資源(如內(nèi)存、CPU 和磁盤)都直接歸屬于子節(jié)點(diǎn)。

然而這種存儲(chǔ)方式也有其缺點(diǎn):

  • 容易出現(xiàn)節(jié)點(diǎn)丟失的情況;
  • 新增節(jié)點(diǎn),會(huì)因數(shù)據(jù)的復(fù)制而耗費(fèi)較長時(shí)間;
  • 節(jié)點(diǎn)擴(kuò)展或節(jié)點(diǎn)維護(hù)等操作會(huì)遇到限制。

(2)ClickHouse Cloud

ClickHouse Cloud 是另外一種架構(gòu),該架構(gòu)使用的是對象存儲(chǔ)而不是本地硬盤存儲(chǔ),從而實(shí)現(xiàn)存算分離。使用這樣的架構(gòu)模式,計(jì)算資源可以維持在穩(wěn)定狀態(tài),這樣可以輕松替換出現(xiàn)問題的節(jié)點(diǎn),同時(shí)可以快速實(shí)現(xiàn)擴(kuò)容或縮容;目前 ClickHouse 支持自動(dòng)擴(kuò)容或縮容,對于無服務(wù)器產(chǎn)品來說,大大提高了維護(hù)的便捷性,降低了維護(hù)成本。

5、ClickHouse 企業(yè)版在阿里云重磅上線

圖片

作為全球云戰(zhàn)略的關(guān)鍵組成部分,我們今年 3 月份宣布與阿里云達(dá)成合作,將 ClickHouse 引入中國市場。在運(yùn)營模式上,阿里云版本與原始 ClickHouse 有諸多相似之處,兩者均采用存算分離架構(gòu),并支持自動(dòng)擴(kuò)容和縮容。

圖片

這里就產(chǎn)生了一個(gè)疑問:開源和云端服務(wù)是否存在矛盾?答案顯然是不會(huì)存在矛盾。開源技術(shù)是云產(chǎn)品的核心,如果沒有強(qiáng)大且持續(xù)發(fā)展的開源技術(shù)支持,云產(chǎn)品往往很難取得成功;據(jù)了解,超過半數(shù)的云客戶都有使用過開源產(chǎn)品的經(jīng)驗(yàn);另一方面,當(dāng)產(chǎn)品取得了一定的成功,會(huì)將收益資源回饋給開源社區(qū),用于支持和發(fā)展開源產(chǎn)品。因此,開源產(chǎn)品和云產(chǎn)品之間相互扶持、相互促進(jìn)、共同發(fā)展,最終實(shí)現(xiàn)雙贏,共同推動(dòng)創(chuàng)業(yè)生態(tài)的繁榮。

6、ClickHouse 的使用場景

圖片

Uber 使用 ClickHouse 服務(wù)作為日志觀測平臺,日寫入量高達(dá)數(shù)十 PB。

二、ClickHouse 開源產(chǎn)品的產(chǎn)品新特性

1、ClickHouse 開源產(chǎn)品特性簡介

圖片

在介紹 ClickHouse 開源產(chǎn)品的產(chǎn)品新特性之前,首先要特別感謝所有對 ClickHouse 作出貢獻(xiàn)的開發(fā)者;在最近的日常版本中,新增 20 多位貢獻(xiàn)者,這些開發(fā)者在 23.9 版本中首次提交了代碼。各位讀者如果有興趣,歡迎參與開源版本的開發(fā)過程,或者加入社區(qū)了解最新進(jìn)展。

圖片

ClickHouse 致力于處理大數(shù)據(jù),因此更快速地導(dǎo)入數(shù)據(jù)是我們的首要任務(wù)。在這方面發(fā)生了許多事情,一個(gè)典型的例子就是異步插入。這是一種批量插入的方式,可以高效地提高 I/O 和吞吐量。此外,我們還引入了去重插入的功能。有時(shí)用戶發(fā)出插入請求,但結(jié)果沒有返回,原因有很多種,也許是服務(wù)器宕機(jī)了,也許是網(wǎng)絡(luò)問題,用戶很難辨別原因,也很難知道插入操作是否成功。而去重功能,會(huì)在服務(wù)器端維護(hù)最近請求的緩存,這樣當(dāng)發(fā)出重復(fù)的插入請求時(shí),如果這段數(shù)據(jù)已經(jīng)插入過,則什么都不會(huì)發(fā)生;如果尚未插入,則繼續(xù)進(jìn)行;這樣可以確保不會(huì)重復(fù)插入數(shù)據(jù)。這是一個(gè)非常酷的功能。

當(dāng)然,整合也是 ClickHouse 非常重要的一部分。我將在演示的后半部分花更多時(shí)間談?wù)撜?,特別是關(guān)注數(shù)據(jù)湖的整合。

今年我們加入了 Hudi、Delta Lake、Iceberg 等不同的數(shù)據(jù)湖格式,當(dāng)然我們正在將這些整合到 ClickHouse 中。同時(shí),我們也在優(yōu)化 Parquet 的讀取性能,稍后會(huì)詳細(xì)介紹。

我們還非常關(guān)注半結(jié)構(gòu)化數(shù)據(jù)。當(dāng)然,已經(jīng)支持 ClickHouse 從 JSON 數(shù)據(jù)讀取一段時(shí)間了。在最新的版本中,我們?yōu)?JSON 引入了模式推斷,這樣只需查看一些對象并了解模式,就可以輕松進(jìn)行編組和解組。未來我們將繼續(xù)投資于 JSON 對象的支持,我們的目標(biāo)是使 JSON 在 ClickHouse 內(nèi)部成為本機(jī)的第一類類型,這樣使用 JSON 對象將會(huì)更加輕松。

2、Parquet Reading 速度提升

圖片

針對 Parquet 讀取性能的提升,在 23.4 版本,實(shí)現(xiàn)了從 S3/URL 讀取數(shù)據(jù),速度提升 100 倍;在 23.6 版本,分區(qū)查詢速度提高了 2 倍,對于單個(gè)文檔查詢提高了 4 倍。之所以得到這樣顯著的提升,是因?yàn)橄到y(tǒng)只讀取相關(guān)的列,并根據(jù)范圍(range)跳過不必要的 block,并且以并行的方式進(jìn)行執(zhí)行。

3、MySQL 兼容性支持

圖片

常見的第三方 BI 工具大多只支持少數(shù)熱門的數(shù)據(jù)庫;為了更好地實(shí)現(xiàn) BI 工具集成,我們改進(jìn)了與 MySQL Wire Protocol 和 SQL 的兼容性,使第三方工具能夠與 ClickHouse 無縫交互。我們在這方面會(huì)繼續(xù)與更多的廠商合作,推出更多 BI 工具。

4、SSH 密鑰驗(yàn)證

圖片

ClickHouse 近期推出 SSH 密鑰驗(yàn)證,采用公鑰/私鑰組合的方式,將私鑰放在客戶端,公鑰存入 ClickHouse 中;這樣的方案比輸入密碼更快、更簡單、更安全,能夠有效防止暴力破解、撞庫攻擊等行為,同時(shí)提高開發(fā)者體驗(yàn)。

5、數(shù)據(jù)管理能力方面的擴(kuò)展

  • 輕量級操作

在輕量級操作中,ClickHouse 主要關(guān)注數(shù)據(jù)的快速讀取。雖然大部分的數(shù)據(jù)是不可變數(shù)據(jù),但是在有些使用場景還是有大量數(shù)據(jù)刪除和數(shù)據(jù)更新的需求;如果使用傳統(tǒng)的方式來刪除數(shù)據(jù),會(huì)造成所有 part 重構(gòu),從而耗費(fèi)大量的 I/O 和 CPU;假如使用輕量級的刪除操作,首先給待刪除的數(shù)據(jù)添加標(biāo)簽,這樣后臺在數(shù)據(jù)合并時(shí)即可實(shí)現(xiàn)數(shù)據(jù)的徹底刪除,而不影響數(shù)據(jù)的讀取性能。

  • 數(shù)據(jù)庫事務(wù)

數(shù)據(jù)庫事務(wù)的支持是用戶期待已久且備受歡迎的功能,實(shí)現(xiàn)了 ACID 屬性的進(jìn)一步優(yōu)化,并支持 ClickHouse 用戶不同的應(yīng)用場景;目前該功能仍在研發(fā)階段,會(huì)盡快推出這個(gè)功能。

  • 查詢緩存

圖片

在開發(fā)過程中,每次查詢操作相對較為耗時(shí),因此將首次查詢結(jié)果放入緩存,后期重復(fù)查詢可直接讀取查詢結(jié)果,這樣可以大大減少查詢延時(shí),降低資源消耗。

6、更加靈活豐富的數(shù)據(jù)分析能力

  • 分析器

將分析器加入到 ClickHouse 配套服務(wù)中,并將其設(shè)置為默認(rèn)配置,從而增強(qiáng)多關(guān)聯(lián)子句的復(fù)雜查詢性能。

  • 加強(qiáng) JOIN 性能

加強(qiáng) JOIN 操作的優(yōu)化,并支持自動(dòng)選擇 JOIN 方法(如 Merge Join、Grace Hash Join 等)。

  • Inverted Indices / Vector Search

團(tuán)隊(duì)將繼續(xù)開發(fā) inverted indices 和 vector search 演算法等新功能,并有望在 2024 年的穩(wěn)定版中推出。

7、向量搜索(Vector Search)

圖片

向量搜索目前尚處于實(shí)驗(yàn)階段,待測試穩(wěn)定后有望于 2024 年發(fā)布,感興趣的讀者可以訪問我們的官方網(wǎng)站了解更多詳細(xì)信息。

圖片

三、問答環(huán)節(jié)

Q1:ClickHouse 如何支持文本數(shù)據(jù)(如 JSON 數(shù)據(jù)以及日志數(shù)據(jù)等)這類半結(jié)構(gòu)化數(shù)據(jù)的查詢和過濾?

A1:ClickHouse 已經(jīng)支持 JSON 一段時(shí)間了,不過是以 experimental 的功能推出的。前兩個(gè)月 ClickHouse 在 github 上發(fā)布了 RFC,在一定程度上提升了 JSON 的讀取性能;然而目前仍然不是非常滿意,因此后期計(jì)劃重寫這部分功能,以實(shí)現(xiàn)對 JSON 更高效的支持。

對于半結(jié)構(gòu)化數(shù)據(jù)(log text data),目前 ClickHouse 支持通過 stream 方式,使用 LIKE 方法對 log data 實(shí)現(xiàn)查詢和過濾,不過查詢相對較慢;后期計(jì)劃完善這部分功能,提升搜索效率,不過現(xiàn)在仍處于實(shí)驗(yàn)階段。

Q2:ClickHouse 在原生 MPP 數(shù)據(jù)庫和 Elastic MPP 數(shù)據(jù)庫方面做了哪些改進(jìn)?

A2:由于傳統(tǒng)擴(kuò)容效率不高,因此 ClickHouse 創(chuàng)建了 Cloud 模式,以 Serverless 擴(kuò)展,云端推出 Table Engine 使用存算分離結(jié)構(gòu)。對于原生 MPP 數(shù)據(jù)庫和 Elastic MPP 數(shù)據(jù)庫方面尚未作出修改。

Q3:ClickHouse 對于類似 MySQL 的虛擬列或表達(dá)式列的支持情況如何?

A3:ClickHouse 已經(jīng)支持虛擬列,并且可以使用 MATERIALIZED 子句創(chuàng)建列。它類似于 MySQL 的虛擬列,總是基于另一列進(jìn)行計(jì)算,并且不占用存儲(chǔ)。詳見:

https://clickhouse.com/docs/en/sql-reference/statements/create/table#materialized

Q4:關(guān)聯(lián)查詢方面,如何 JOIN 外部的 ElasticSearch 數(shù)據(jù)?

A4:ClickHouse 不支持 ElasticSearch 表引擎。但是,我們支持的表引擎有 MySQL、PostgreSQL、MongoDB、S3、Hive、Hudi、DeltaLake 等。并且可以使用它們進(jìn)行 JOIN。

Q5:ClickHouse 能完全取代 Spark 嗎?

A5:是的,ClickHouse 與 ANSI SQL 兼容,就像 Spark 一樣。

Q6:ClickHouse 能實(shí)現(xiàn)倒排索引嗎?

A6:根據(jù)實(shí)踐經(jīng)驗(yàn),如果不超過百級的 QPS,在億級至百億級的查詢量,token 數(shù)在千到萬的級別,ClickHouse 一般都能做到亞秒級響應(yīng)。因此先前很多 ES 的場景現(xiàn)在都轉(zhuǎn)移到了 ClickHouse 中。

Q7:ClickHouse 集群規(guī)模如何?

A7:完整節(jié)點(diǎn)有幾千臺,對于百億級別的數(shù)據(jù),使用單集群存儲(chǔ),一般情況使用 1 臺 SSD 存儲(chǔ)就夠用了。

Q8:對于 BI 場景下的多表關(guān)聯(lián)需求,JOIN 性能的目標(biāo)和預(yù)期大概是什么水平?

A8:具體的目標(biāo)和預(yù)期目前很難量化,我們在 2024 的 plan list 中已經(jīng)將這部分工作設(shè)定為高優(yōu)先級。

責(zé)任編輯:姜華 來源: DataFunTalk
相關(guān)推薦

2023-12-12 07:34:54

炎凰數(shù)據(jù)大數(shù)據(jù)分析數(shù)據(jù)庫開發(fā)

2022-07-28 09:39:26

研發(fā)效能業(yè)務(wù)

2022-12-19 11:20:41

行業(yè)4.0物聯(lián)網(wǎng)

2022-05-27 11:46:48

技術(shù)能力思考

2023-02-06 15:05:06

2024-12-26 08:06:35

2024-01-19 09:03:06

ReactTypeScripFlexbox

2023-02-03 10:42:01

2022-05-25 10:47:01

淘寶開發(fā)模式

2024-11-21 10:05:14

2017-04-25 08:57:47

云計(jì)算云化私有云

2023-07-27 10:33:24

2011-11-03 14:35:06

2024-04-11 09:29:12

React生態(tài)系統(tǒng)TypeScript

2023-12-15 09:46:19

2022-01-20 11:01:41

量子計(jì)算系統(tǒng)

2024-01-29 08:20:03

物化視圖StarRocksOLAP系統(tǒng)

2025-03-06 09:00:00

前端AI開發(fā)

2021-08-30 11:48:33

開發(fā)技術(shù)互聯(lián)網(wǎng)

2011-07-28 17:22:57

虛擬化云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號