數(shù)據(jù)庫行業(yè)發(fā)展至今,在數(shù)據(jù)層面有很多的加速和變革,尤其是過去幾年的云數(shù)倉爆炸式增長(zhǎng),帶來了行業(yè)的很多變化。毫無疑問,云數(shù)據(jù)倉庫已成為企業(yè)數(shù)據(jù)堆棧的基石,各種規(guī)模的公司和組織習(xí)慣使用數(shù)據(jù)倉庫來分析業(yè)務(wù)數(shù)據(jù)。Snowflake 的迅速崛起就是這一趨勢(shì)的典型代表。
但如果我們把大數(shù)據(jù)的變量拆成速度、數(shù)量和多樣性三個(gè)維度,我們發(fā)現(xiàn)大家最關(guān)注的維度仍然是速度。當(dāng)我們重新審視對(duì)“大數(shù)據(jù)”的定義,并且結(jié)合數(shù)據(jù)資產(chǎn)的要素,我們最重要的需求是從 OLTP [1] 數(shù)據(jù)庫處理的數(shù)據(jù)資產(chǎn)上的微服務(wù)對(duì)低延遲消耗的要求。
 【資料圖】
【資料圖】
與此同時(shí),很多大數(shù)據(jù)部門購買了所有新工具并從遺留系統(tǒng)遷移之后,他們發(fā)現(xiàn)仍然無法去理解這些數(shù)據(jù),也許數(shù)據(jù)大小根本不是問題所在。世界的數(shù)據(jù)量變大了,但硬件也以更快的速度變大了,供應(yīng)商仍在推動(dòng)硬件的能力擴(kuò)展。今天我們就來聊一家有點(diǎn)“不一樣”思路的數(shù)據(jù)庫創(chuàng)業(yè)公司——MortherDuck,看看他們的產(chǎn)品 DuckDB 是如何來理解這個(gè)世界的。
歷史沿革:歐美合作的商業(yè)化產(chǎn)物
說起 MortherDuck 的前世今生,首先還是要從產(chǎn)品 DuckDB 講起。DuckDB 是一個(gè)專門構(gòu)建的進(jìn)程內(nèi)在線分析處理數(shù)據(jù)庫管理系統(tǒng),其旨在實(shí)現(xiàn)高效數(shù)據(jù)分析。從 2019 年 DuckDB 第一個(gè)開源版本發(fā)布,到 2021 年,短短兩年間,DuckDB 的周下載量增長(zhǎng)迅速。此時(shí),這個(gè)原本由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì) (CWI) 創(chuàng)立的項(xiàng)目被分拆出來獨(dú)立運(yùn)作,項(xiàng)目研究人員 Hannes Mühleisen 和 Mark Raasveldt 成立了 DuckDB Labs。
故事至此,為什么 MortherDuck 還未出現(xiàn)呢?別急,我們還缺少另一位主角——谷歌 Big Query 的創(chuàng)始工程師 Jordan Tigani,他也關(guān)注著 DuckDB,并一直尋求為市場(chǎng)提供輕型數(shù)據(jù)庫產(chǎn)品。在和 DuckDB Labs 的聯(lián)合創(chuàng)始人 Mühleisen 溝通并獲得支持后,Tigani 開始嘗試將開源的 DuckDB 商業(yè)化。新公司 MortherDuck 就此誕生,并獲得了由紅點(diǎn)資本 (美國) 領(lǐng)投的 1250 萬美元天使輪融資和 A16Z 領(lǐng)投 3500 萬美元 A 輪融資,公司估值 1.75 億美元。
回頭來看,作為一家起步時(shí)間不長(zhǎng)的初創(chuàng)公司,獲得這樣的資本認(rèn)可不可謂不成功。由于 DuckDB 并非 MortherDuck 的原創(chuàng)開源產(chǎn)品,因此,想要未來長(zhǎng)久且穩(wěn)定地基于開源產(chǎn)品構(gòu)建服務(wù),得到項(xiàng)目創(chuàng)始團(tuán)隊(duì)的支持至關(guān)重要。
在雙方的合作中 DuckDB 團(tuán)隊(duì)一定程度上參與了 MotherDuck,而 MotherDuck 又是 DuckDB 基金會(huì)的成員,該非營(yíng)利組織擁有 DuckDB 的大部分知識(shí)產(chǎn)權(quán)。DuckDB 自己的商業(yè)部門 DuckDB Labs 是 MotherDuck 的股東。不得不說 Tigani 與 DuckDB Labs 合作是聰明之舉,通過此舉,雙方利益得以綁定。
定位:OLAP 領(lǐng)域的 SQLite
要聊 DuckDB,我們先來看看 SQLite,其可以稱得上世界上使用最多的關(guān)系型數(shù)據(jù)庫系統(tǒng),我們幾乎在每臺(tái)手機(jī)、每個(gè)瀏覽器和操作系統(tǒng)上都能找到它的身影,它甚至也在飛機(jī)上運(yùn)行。
由于 SQLite 是嵌入式的,因此其不需要外部服務(wù)器管理。同時(shí),他幾乎綁定了每種語言,也正是基于這些特點(diǎn),讓其更容易使用,我們必須承認(rèn) SQLite 的偉大。但與此同時(shí),其問題也突出。SQLite 是為 OLTP 而設(shè)計(jì)的,采用行存儲(chǔ),不能利用內(nèi)存來加快計(jì)算速度,查詢優(yōu)化器非常有限,所以對(duì)于分析來說非常不友好。
正是基于此,DuckDB 看到了機(jī)會(huì)。簡(jiǎn)單來講,它是用于分析 (OLAP 領(lǐng)域 [2] ) 的 SQLite,作為一個(gè)進(jìn)程內(nèi)數(shù)據(jù)庫,它使開發(fā)人員、數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師和數(shù)據(jù)分析師能夠使用純 SQL 以極快的分析能力為它的代碼提供支持。此外,它有能力在可能存在的地方分析數(shù)據(jù),例如在筆記本電腦或云端。
DuckDB 使用了一個(gè)列式矢量化查詢引擎,該引擎仍會(huì)解釋查詢,但會(huì)在一次操作中處理大量向量,由此減少傳統(tǒng)系統(tǒng) (如 PostgreSQL、MySQL 或 SQLite) 中按順序處理每一行的開銷,提升查詢性能。
SQLite 是小型的關(guān)系型數(shù)據(jù)庫,可用于進(jìn)程內(nèi)的部署。
DuckDB 所處象限
認(rèn)知:數(shù)據(jù)庫行業(yè)的“非共識(shí)”
與行業(yè)大部分公司不同,MortherDuck 擁有不一樣的行業(yè)信仰。
首先,Tigani 認(rèn)為大多數(shù)客戶和組織的數(shù)據(jù)存儲(chǔ)適中,并不大。同時(shí),客戶數(shù)據(jù)大小服從冪律分布。最大客戶的存儲(chǔ)量是第二大客戶的兩倍,第三大客戶的存儲(chǔ)量是第二大客戶的一半,依此類推。因此,雖然有客戶擁有數(shù)百 PB 的數(shù)據(jù),但大小很快就會(huì)下降。
其次,存算分離中存在存儲(chǔ)偏差,數(shù)據(jù)大小增速快于計(jì)算。假如業(yè)務(wù)是靜態(tài)的,既不增長(zhǎng)也不收縮,數(shù)據(jù)隨時(shí)間線性增長(zhǎng),但計(jì)算需求不會(huì)改變太多,因?yàn)榇蠖鄶?shù)分析都是針對(duì)近期數(shù)據(jù)進(jìn)行的。這種存算偏差,讓我們可能根本不需要進(jìn)行分布式處理。而且,很多用戶希望他們的問題得到簡(jiǎn)單快速的答案 —— 他們不想等待云。
最后,大多數(shù)數(shù)據(jù)很少被查詢。得到處理的數(shù)據(jù)中,有很大一部分不到 24 小時(shí)。到數(shù)據(jù)保存一周時(shí),查詢的可能性或許比最近一天低 20 倍。歷史數(shù)據(jù)往往很少被查詢,這也就意味著數(shù)據(jù)工作集大小比我們預(yù)期的易于管理。如果有一個(gè)包含 10 年數(shù)據(jù)的 PB 表,這些數(shù)據(jù)最后可能被壓縮至不到 50 GB。所以,很多云廠商專注于 100TB 的查詢性能,這可能不僅與大多用戶無關(guān),且會(huì)分散他們提供出色用戶體驗(yàn)的能力。
因此,MortherDuck 提出了自己的觀點(diǎn),大數(shù)據(jù)是真實(shí)存在的,但大多數(shù)人可能不需要擔(dān)心。“大數(shù)據(jù)”已死——現(xiàn)今我們最重要的事情不是擔(dān)心數(shù)據(jù)大小,而是專注于我們將如何使用它來做出更好的決策。我們也會(huì)時(shí)常問自己,組織真的會(huì)生成大量數(shù)據(jù)嗎?如果生成了,真的需要一次使用大量數(shù)據(jù)嗎?如果需要,數(shù)據(jù)真的太大而無法放在一臺(tái)機(jī)器上嗎?也許不同的組織會(huì)給出不同的答案。
未來:沒有“銀彈”,沒有萬能的選擇
我們目前所處的時(shí)代高速變化,產(chǎn)生了很多數(shù)據(jù)庫管理系統(tǒng)。正如我們看到的情況,目前這個(gè)世界還沒有萬能的數(shù)據(jù)庫管理系統(tǒng)。大家都會(huì)采取不同的權(quán)衡取舍,以更好地適應(yīng)特定的用例,DuckDB 也是如此。有時(shí)我們需要側(cè)重考慮為多個(gè)并發(fā)用戶提供服務(wù),有時(shí)我們也需要一個(gè)對(duì)單用戶工作負(fù)載非??斓那度胧綌?shù)據(jù)庫。
DuckDB 會(huì)成功嗎?答案也許并不確定。不過我們確實(shí)看到了一個(gè)充滿活力的開源社區(qū)正在形成,雖然還未有任何商業(yè)化的信息披露,但我們應(yīng)有耐心給予這個(gè) A 輪公司,畢竟故事才剛剛開始。
DuckDB 在 Github 的 star 數(shù)量變化
注釋:
[1] OLTP:On-Line Transaction Processing 聯(lián)機(jī)事務(wù)處理過程,也稱為面向交易的處理過程。
[2] OLAP:Online Analytical Processing 聯(lián)機(jī)分析處理。聯(lián)機(jī)分析處理 OLAP 是一種軟件技術(shù),它使分析人員能夠迅速、一致、交互地從各個(gè)方面觀察信息,以達(dá)到深入理解數(shù)據(jù)的目的。
關(guān)鍵詞: 數(shù)據(jù)倉庫 olap sqlite
 營(yíng)業(yè)執(zhí)照公示信息  聯(lián)系我們:55 16 53 8 @qq.com  財(cái)金網(wǎng)  版權(quán)所有  cfenews.com
營(yíng)業(yè)執(zhí)照公示信息  聯(lián)系我們:55 16 53 8 @qq.com  財(cái)金網(wǎng)  版權(quán)所有  cfenews.com