接下來看一下數(shù)據(jù)庫發(fā)展歷史。

在1960年左右出現(xiàn)了數(shù)據(jù)庫,緊接著在1970年左右出現(xiàn)了關(guān)系型數(shù)據(jù)庫,典型代表如MySQL,1980年左右出現(xiàn)了數(shù)據(jù)庫倉庫的理論,并且出現(xiàn)了MPV架構(gòu)的數(shù)據(jù)倉庫,1998年左右出現(xiàn)了NoSQL數(shù)據(jù)庫,典型代表如MongoDB。

隨著2000年互聯(lián)網(wǎng)的快速發(fā)展,出現(xiàn)了大量的非結(jié)構(gòu)化數(shù)據(jù)處理的需求,緊接著在2006年~2009年出現(xiàn)了Hadoop Spark代表的大數(shù)據(jù)平臺,同時在2006年AWS推出了云計算業(yè)務(wù),很多數(shù)據(jù)開始上云。在2010年左右出現(xiàn)了分布式流數(shù)據(jù)處理,典型代表如2010年出現(xiàn)的Storm平臺,2013年出現(xiàn)的SparkStreaming,2014年出現(xiàn)的Flink產(chǎn)品,同時在2010年還出現(xiàn)了數(shù)據(jù)湖的概念,2017年~2019年出現(xiàn)了Delta Lake、Hudi、Iceberg等數(shù)據(jù)湖產(chǎn)品,2013年~2017年是云原生快速發(fā)展的幾年,出現(xiàn)了如Kubernetes這樣的技術(shù),很多數(shù)據(jù)庫、數(shù)據(jù)倉庫、數(shù)據(jù)湖產(chǎn)品都基于云原生進(jìn)行構(gòu)建,在2020年左右出現(xiàn)了湖倉一體化的數(shù)據(jù)平臺。

從以上可以看出,從1960年到2020年左右數(shù)據(jù)平臺一個大概的發(fā)展歷史,接下來分別看一下數(shù)據(jù)庫、數(shù)據(jù)倉庫、數(shù)據(jù)湖包括湖倉一體的產(chǎn)品。

數(shù)據(jù)庫是我們大家所熟知的,比如你去商場里購買了一件產(chǎn)品,這個商品它會記錄進(jìn)入到數(shù)據(jù)庫中,是什么時間點購買哪件產(chǎn)品,這個產(chǎn)品的價格是什么,這通常稱為事務(wù)性數(shù)據(jù)庫,典型代表如MySQL、Sql Server、Oracle、PostgreSQL,特點在于要處理高并發(fā)、快速讀寫刪的能力,并且是低延遲的,通常采用行存數(shù)據(jù)庫方式。

還有一種數(shù)據(jù)庫是偏向于分析型的,它重點在于是哪類人購買了哪類產(chǎn)品,它的用戶畫像是什么樣的,這類數(shù)據(jù)都是通過分析型數(shù)據(jù)庫進(jìn)行處理的,它的特點在于是海量數(shù)據(jù)的復(fù)雜查詢、快速查詢、通常采用列存。典型代表如ClickHouse、Presto、Greenplum、Snowflake、databend,都是屬于數(shù)倉庫類似的產(chǎn)品。

還有一類需求,就是既有事務(wù)性數(shù)據(jù)庫的需求,也有混合型數(shù)據(jù)庫的需求,那就是出現(xiàn)了HTAP混合型數(shù)據(jù)庫,典型代表如TiDB,它既可以做TP類的事務(wù)處理,也可以做AP的數(shù)據(jù)的處理,但是如果說特別大量的數(shù)據(jù)處理,建議還是用OLAP類數(shù)據(jù)庫進(jìn)行處理。

    接下來看一下什么是大數(shù)據(jù)平臺,大數(shù)據(jù)平臺主要有以下特點:

    第一是數(shù)據(jù)量大,通常是TP、PB甚至是EB級的數(shù)據(jù)。

    第二是數(shù)據(jù)類型繁多,結(jié)構(gòu)化、非結(jié)構(gòu)化、日志、視頻、圖片、地理位置等等,這些數(shù)據(jù)都需要進(jìn)行處理。

    第三,商業(yè)價值高,但是這種價值需要構(gòu)建在海量數(shù)據(jù)之上,通過數(shù)據(jù)分析、機器學(xué)習(xí)進(jìn)行挖掘出來,提供給前端的業(yè)務(wù)系統(tǒng)。

第四,處理實時性要求高,海量數(shù)據(jù)的處理要求不局限在離線中,而是推薦系統(tǒng),它的實時性要求非常高,不等看完短視頻,接下來就推薦其他的,看完戰(zhàn)爭片以后,給你推薦的愛情片,可能就不是他所喜歡的,就體現(xiàn)不了它的價值。

這是一個大數(shù)據(jù)平臺典型的架構(gòu),從下往上首先是數(shù)據(jù)采集,所采集數(shù)據(jù)源可以是多種多樣的,比如說是從其他的數(shù)據(jù)庫中,事務(wù)性數(shù)據(jù)庫或者其他的數(shù)據(jù)庫中進(jìn)行采集,可以是文件系統(tǒng),可以是日志等。

之后進(jìn)行數(shù)據(jù)的計算和存儲,再往上是數(shù)據(jù)的應(yīng)用,比如說是通過OLAP的數(shù)據(jù)倉庫進(jìn)行分析。

接下來看一下數(shù)據(jù)湖與數(shù)據(jù)倉庫之間的關(guān)系,數(shù)倉主要是偏向事前的建模,數(shù)據(jù)湖主要偏向事后的建模。數(shù)據(jù)湖通常是把所有的數(shù)據(jù)結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)放到里面,都可以進(jìn)行存儲,之后根據(jù)這些數(shù)據(jù)進(jìn)行建模處理,數(shù)倉則不同,通常在建模之前就進(jìn)行數(shù)據(jù)的一些提取、抽取、分析,所以說它偏向于做事前的建模,而且它的存儲通常是結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)。

引擎方面也不太一樣,數(shù)據(jù)湖是多種引擎都可以用,有多種數(shù)據(jù)源進(jìn)行有限的優(yōu)化,數(shù)據(jù)倉庫是特定的數(shù)據(jù)引擎,通常選用一種數(shù)據(jù)引擎,或者說是兩三種特定的數(shù)據(jù)引擎,根據(jù)它的數(shù)據(jù)特點或者業(yè)務(wù)系統(tǒng)的要求選擇特定的數(shù)據(jù)引擎,經(jīng)常對數(shù)據(jù)進(jìn)行高度優(yōu)化,甚至數(shù)據(jù)處理過程高度優(yōu)化。

項目啟動方面也不太一樣,數(shù)據(jù)湖是易啟動的,只要你有需求就可以快速的建立數(shù)據(jù)湖,把非結(jié)構(gòu)化數(shù)據(jù)、結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲,數(shù)據(jù)倉庫是需要提前規(guī)劃、提前運作的。

治理方面也不太一樣,數(shù)據(jù)治理方面,數(shù)據(jù)湖是偏向于數(shù)據(jù)量比較大,數(shù)據(jù)倉庫也是數(shù)據(jù)量比較大,但是更強調(diào)數(shù)據(jù)質(zhì)量。數(shù)據(jù)湖通常是做一些數(shù)據(jù)機器學(xué)習(xí),做一些數(shù)據(jù)挖掘,數(shù)據(jù)倉庫偏向于提供給前端的BI展示,可視化方面。

聊完了數(shù)據(jù)湖、數(shù)據(jù)倉庫之后,我們來看一下2020年左右出現(xiàn)的湖倉一體,湖倉一體是一種將數(shù)據(jù)湖的靈活性和數(shù)倉的易用性、規(guī)范性、高性能結(jié)合起來的一種新型架構(gòu),類似于在湖邊搭建的很多小倉庫,把數(shù)據(jù)湖中不同的數(shù)據(jù)進(jìn)行有效的分析,或者通過機器學(xué)習(xí)甚至來檢索音視頻信息等等處理。

說到了湖倉一體,先看海外的兩個產(chǎn)品,第一個是Snowflake,它之前是一直做數(shù)倉這個產(chǎn)品起家的,但是隨著業(yè)務(wù)量的逐漸發(fā)展,現(xiàn)在它提出了DataCloud理念,這是一個數(shù)據(jù)云平臺的概念,它也逐漸的往湖倉一體方向發(fā)展。databricks是2013年由伯克利大學(xué)的研究人員成立的,偏向數(shù)據(jù)湖的概念,現(xiàn)在它也具有部分?jǐn)?shù)倉的能力,所以說這兩個產(chǎn)品越來越靠近,他們的產(chǎn)品邊界越來越模糊,snowflake可以作為一部分湖的數(shù)據(jù)處理,databricks可以做一部分?jǐn)?shù)倉的處理,他們逐漸都往湖倉一體的架構(gòu)演進(jìn)。

接下來看一下什么是新一代云原生數(shù)倉。

新一代云原生數(shù)倉同傳統(tǒng)數(shù)倉相比有以下特點。

第一,傳統(tǒng)數(shù)倉是在云計算發(fā)展之前就已經(jīng)出現(xiàn)的,1982年左右出現(xiàn)了數(shù)據(jù)倉庫,當(dāng)時還沒有云計算,它通常是采用存算一體的架構(gòu),比如Greenplum、ClickHouse都是這樣的產(chǎn)品形態(tài)。隨著云計算的發(fā)展,開始把這些產(chǎn)品搬到云上,典型的代表如K8S推出的Redshift,阿里云推出的云ClickHouse等等,相對用戶來說不需要基于虛擬機或者物理機,重新去搭整個數(shù)倉平臺,可以一鍵化部署出來,性能調(diào)優(yōu)云廠商也會做,升級管理也會做,但是這樣的產(chǎn)品形態(tài)還是存算一體的架構(gòu),只是省了整個的搭建過程,甚至是部分的運維工作,但是還是需要運維整個數(shù)倉平臺的。

2012年出現(xiàn)了Snowflake產(chǎn)品,講究存算分離的架構(gòu),基于云計算進(jìn)行構(gòu)建的,底層基于對象存儲,上層的計算節(jié)點是可以隨意擴(kuò)展的,所以說跟著業(yè)務(wù)量進(jìn)行擴(kuò)展,包括Databend也是存算分離的架構(gòu),基于云原生構(gòu)建的,底層基于對象存儲,上層的計算節(jié)點可以跟業(yè)務(wù)量進(jìn)行隨意擴(kuò)展。相對于傳統(tǒng)數(shù)倉來說,其靈活性非常高,業(yè)務(wù)量繁忙的時候可以增加計算節(jié)點,底層存儲節(jié)點,因為都是存在對象存儲之上或者共享資源池,通常對象存儲是沒有容量限制的,這樣只需要增加上層的計算節(jié)點就可以了,所以說靈活性非常高。而傳統(tǒng)數(shù)倉靈活性相對差一些。

講一下傳統(tǒng)數(shù)倉和新一代數(shù)倉的差異,左側(cè)是傳統(tǒng)數(shù)倉和新一代數(shù)倉的示意圖,傳統(tǒng)數(shù)倉是基于Share-Nothing進(jìn)行構(gòu)建的,它的特點首先是計算單元和存儲單元是一體的,比如構(gòu)建在物理服務(wù)器或者虛擬機上的,如新增加一個結(jié)點,需要將原有數(shù)據(jù)放到新的節(jié)點上來,這就需要保證原有數(shù)據(jù)安全,做一些備份操作,其次新節(jié)點還要校驗整個數(shù)據(jù)的一致性,過程是非常復(fù)雜的。

左下圖可以看到新一代的數(shù)倉通常是基于Share Storage架構(gòu)構(gòu)建的,底層是共享存儲,可以是對象存儲,可以是軟件定義存儲,其上層的計算節(jié)點是無狀態(tài)的,而底層存儲系由對象存儲保證的。

右側(cè)列出了傳統(tǒng)數(shù)倉和新一代數(shù)倉的差異,首先從架構(gòu)地方面:傳統(tǒng)數(shù)倉是存算一體架構(gòu)的,而新一代數(shù)倉是基于可擴(kuò)展的存算分離架構(gòu)的,現(xiàn)在有部分傳統(tǒng)數(shù)倉也會基于存算分離架構(gòu)進(jìn)行改造,可以支持對象存儲,但是這種改造其實是半狀態(tài),就是一半的狀態(tài),它可以把數(shù)據(jù)存儲到對象存儲中來,它跟新一代數(shù)倉還有差異的,傳統(tǒng)的新數(shù)倉會基于對象存儲做各種優(yōu)化、調(diào)度,而傳統(tǒng)數(shù)倉是不具備這些的,改造過來只是將數(shù)據(jù)可以存儲到對象存儲中來,但依然是傳統(tǒng)存算一體架構(gòu),需要指定分區(qū)、創(chuàng)建索引等,這些都是跟新一代數(shù)倉有差異的地方。

存算一體架構(gòu)有助于實現(xiàn)Serverless架構(gòu),新一代數(shù)倉是Serverless架構(gòu),而傳統(tǒng)數(shù)倉不是。新一代數(shù)倉可以支持Lakehouse(湖倉一體),也可以支持?jǐn)?shù)據(jù)湖,可以基于HDFS文件進(jìn)行處理,而傳統(tǒng)數(shù)倉不具備Lakehouse功能的。

擴(kuò)容能力方面,傳統(tǒng)數(shù)倉是南北向的數(shù)據(jù),要保持一致性,它的擴(kuò)容復(fù)雜度是比較高的;而新一代數(shù)倉是東西向擴(kuò)容,是比較容易一些的。

細(xì)膩度方面也不一樣,傳統(tǒng)數(shù)倉通?;贙VM進(jìn)行調(diào)度,而新一代數(shù)倉基于微服務(wù)化進(jìn)行調(diào)度,調(diào)度的更精細(xì)化一些,速度更快一些。傳統(tǒng)數(shù)倉不具備多租戶概念,而新一代數(shù)倉通常都會支持多租戶,可根據(jù)業(yè)務(wù)線進(jìn)行不同的數(shù)據(jù)處理,可以進(jìn)行不同業(yè)務(wù)單元業(yè)務(wù)結(jié)算。傳統(tǒng)數(shù)倉使用起來要指定分區(qū),手動創(chuàng)建索引,而新一代數(shù)倉是無需指定分區(qū),自動化創(chuàng)建索引。

什么是Databend?

Databend具有哪些產(chǎn)品功能特點,能給用戶帶來哪些價值?

    Databend公司團(tuán)隊主要來自于Clickhouse社區(qū),以及國內(nèi)和海外的大廠,團(tuán)隊人員在數(shù)據(jù)庫和云計算領(lǐng)域具有豐富的經(jīng)驗,貢獻(xiàn)過很多開源代碼和開源項目,比如Clickhouse、MySQL內(nèi)核(TokuDB)、RadonDB、NessDB等開源項目。

Databend成立于2021年3月,成立之初獲得了高瓴創(chuàng)投和華創(chuàng)資本、九合創(chuàng)投的融資,2022年6月首家通過了中國信通院組織的《可信云-云原生數(shù)據(jù)倉庫通用技術(shù)能力》的評審,并獲得信通院頒發(fā)的《2022年云原生新銳企業(yè)》。

   Databend是一個使用Rust研發(fā)、開源、完全面向于云架構(gòu)的新一代數(shù)倉,提供了極致的彈性能力,致力于打造按需、按量的Data Cloud產(chǎn)品體驗。

具有以下的特點,首先內(nèi)核Databend是完全開源的。第二,真正存算一體架構(gòu),計算節(jié)點無狀態(tài)。第三,底層基于對象存儲構(gòu)建。第四,可以做數(shù)據(jù)集市,做一個Data Marketing,可以產(chǎn)生更大數(shù)據(jù)價值。第五,操作運維起來非常簡便。

這是Databend的部署圖,左側(cè)是Databend的節(jié)點,主要存儲一些源數(shù)據(jù)信息,中間是它的計算節(jié)點,主要是做數(shù)據(jù)的查詢、分析、計算任務(wù),計算節(jié)點可以是隨意擴(kuò)展的,跟你的業(yè)務(wù)量進(jìn)行擴(kuò)展。它構(gòu)建在對象存儲之上,可以是AWS S3、阿里云OOS,甚至私有化部署的MINLO等。

目前Databend已經(jīng)支持的對象存儲包括AWS、Azure、阿里云、騰訊云、青云、金山云,包括社區(qū)里貢獻(xiàn)了谷歌GCP、谷歌的對象存儲和華為對象存儲。私有化支持Minlo、SeaveedFS、Ceph等等。

開源必然聊到開源社區(qū),Databend是在成立之初就進(jìn)行了代碼開源,也就是Day1就開源,隨著一年多的發(fā)展,目前已經(jīng)自然增長到4700多個Stars,其中一半來自海外,有140多位代碼貢獻(xiàn)者,四成來自公司外的社區(qū),10位左右海外活躍貢獻(xiàn)者,包括Apache的頂級成員,包括SAP北美大數(shù)據(jù)工程團(tuán)隊負(fù)責(zé)人。

Databend是Rust上開源的第一個數(shù)據(jù)庫類項目,多次上了Rust榜單,同時也上過HackerNew首頁,它是世界程序員的一關(guān)注內(nèi)容的科技平臺。

右下角是海外著名的投資機構(gòu)做得世界上所有數(shù)據(jù)庫的排名,Databend大概排在世界所有數(shù)據(jù)庫當(dāng)中27位左右,也是這些數(shù)據(jù)庫當(dāng)中最年輕的一個。

接下來了解一下Databend的典型應(yīng)用場景舉例。

Databend可以做數(shù)據(jù)的歸檔,以多點為例,前有很多用戶商品相關(guān)的訂單信息,都存儲在MySQL數(shù)據(jù)庫當(dāng)中,隨著業(yè)務(wù)量逐漸增大,每一個月的數(shù)據(jù)都很大,都需要進(jìn)行歸檔的處理,大概它有20多臺歸檔的數(shù)據(jù)庫,每臺服務(wù)器大概有500TB硬盤,所以說每年光用于數(shù)據(jù)歸檔的服務(wù)大概就有50萬人民幣左右,而且是構(gòu)建在云之上的。之后他們采用了Databend的產(chǎn)品,底層把所有的數(shù)據(jù)歸檔到對象存儲中,通過Databend。上層開兩到三個計算節(jié)點,如此進(jìn)行處理以后,它既可以滿足查詢的需求,同時也滿足歸檔的需求,為用戶帶來價值就是節(jié)省大概90%的成本,這個成本也可以很好的算出來。

它的服務(wù)器從原有的20臺降到了2到3臺,所以計算單元CPU內(nèi)存也是非常耗費資金的,所以說通過歸檔的應(yīng)用,大概為多點節(jié)省了90%以上的成本。

接下來聊一下另一個產(chǎn)品,DatabendCloud,底層核心是構(gòu)建在開源的Databend內(nèi)核之上,為用戶提供了SaaS化的一站式服務(wù),中間DataWarehouse一核是由Databend驅(qū)動的,之上有一個SaaS一體化平臺,用戶只需要注冊用戶名密碼就可以使用整個數(shù)倉平臺了,左側(cè)可以把各種數(shù)據(jù)源,比如說基于MySQL、基于SQLserver數(shù)據(jù)導(dǎo)入,甚至一些文件進(jìn)行導(dǎo)入。右側(cè)可以通過Databend loud進(jìn)行分析,分析完以后提給前端的BI和Machine Learning等等。

對于用戶來說,首先不需要維護(hù)整個平臺了,整個平臺都是由Databend維護(hù),用戶只需要注冊用戶名密碼,進(jìn)來以后直接進(jìn)行連接,就可以達(dá)到原有的數(shù)倉能力,而且按需付費,需要計算的時候啟動一個計算節(jié)點,當(dāng)不需要處理的時候會自動關(guān)掉,這個自動關(guān)機也是由系統(tǒng)設(shè)定的,可以選擇一分鐘、五分鐘、十分鐘設(shè)定,可以自動關(guān)掉,這樣對于用戶來說達(dá)到了一個按需使用、按量計費的目的,節(jié)省了用戶的成本。

這個圖片是我們DatabendCloud申請頁面,可以通過申請平臺和網(wǎng)址進(jìn)入到DatabendCloud進(jìn)行申請,注冊申請完就可以開通DatabendCloud,用戶就可以直接使用了。

Databend典型用戶中,多點是做數(shù)倉歸檔處理的;快手是用到了Hive功能,它原有的數(shù)據(jù)都是存在Hive中,利用Databend進(jìn)行數(shù)據(jù)的分析處理;新加坡比特幣交易所主要用Databend進(jìn)行日志的處理,而且是海量日志PB級數(shù)據(jù)的處理;茄子快傳主要利用Databend具有數(shù)倉的分析能力,作為它其中的一個分析平臺,替換原有的Presto系統(tǒng);Voyance為非洲銀行提供類似于Snowflake產(chǎn)品形態(tài)的公司,它提供的是一個可視化的拓?fù)?、可以展示的DataCloud平臺,內(nèi)核也是基于Databend構(gòu)建的。

(本文根據(jù)Databend 聯(lián)合創(chuàng)始人王吟演講速記整理而成,未經(jīng)過本人審閱。)

分享到

songjy

相關(guān)推薦