萬字帶你走過數據庫的這激蕩的三年

本文收集了卡內基梅隆大學計算機科學系數據庫學副教授 Andy Pavlo 從 2021 到 2023 連續三年對數據庫領域的回顧,希望通過連續三年的回顧讓你對數據庫領域的技術發展有所了解。

關于 Andy Pavlo:卡內基梅隆大學計算機科學系數據庫學副教授,數據庫調優公司 OtterTune 的 CEO 兼聯合創始人。

為了聚焦于數據庫技術趨勢演變,本文未對原文“寒暄式”開頭和注釋性語句作翻譯。此外,為了節約部分讀者的時間,本文分為“觀點簡述”及“歷年回顧”兩部分:在“觀點簡述”部分,你將了解到 Andy 這 3 年對數據庫的看法、見解;在“歷年回顧”部分,你將了解到該年具體的數據庫領域發生的事件,以及 Andy 對該事件的看法。

本文目錄:

  • 觀點簡述
  • 歷年回顧
    • 2023 年數據庫回顧:向量數據庫雖然大火,但沒有技術壁壘
      • 向量數據庫的崛起
        • Andy 說:向量數據庫沒有技術護城河
      • SQL 持續變好
        • 屬性圖查詢(SQL/PGQ)
        • 多維數組(SQL/MDA)
        • Andy 說:SQL:2023 是個里程碑
      • MariaDB 的困境
        • Andy 說:數據庫的聲譽比以往任何時候都重要
      • 美國航空因政府數據庫崩潰而停飛
        • Andy 說:歷史悠久的核心數據系統,是每個數據庫從業者最大的噩夢
      • 數據庫的融資情況
        • Andy 說:無論初創公司,還是高估值的公司日子都不好過
      • 史上最貴的密碼重置
        • Andy 說:意料之外的大人物生活
    • 2022 年數據庫回顧:江山代有新人出,區塊鏈數據庫還是那個傻主意
      • 放緩的大規模數據庫融資
        • Andy 說:不只是 OLAP 領域,OLTP 領域前景也一樣嚴峻
      • 區塊鏈數據庫還是那個蠢點子
        • Andy 說:有讓人信服的用例才是合格的新技術
      • 新的數據系統
        • Andy 說:欣然看到數據庫領域的勃勃生機
      • 數據庫先驅的逝世
        • Andy 說:這是一個讓人難過的消息
      • 數據庫的巨額財富和民主
        • Andy 說:Larry 干得漂亮
    • 2021 年數據庫回顧:性能之爭烽煙起,不如低調搞大錢
      • PostgreSQL 的主導地位
        • Andy 說:PostgreSQL 只會在未來幾年變得更好
      • 基準測試之爭
        • Databricks vs Snowflake
        • Rockset vs Apache Druid vs ClickHouse
        • ClickHouse vs TimescaleDB
        • Andy 說:性能之爭不值當
      • 大數據搞大錢
        • Andy 說:我們正處在數據庫的黃金時代
      • 消逝的數據庫們
        • ServiceNow 收購了 Swarm64
        • Splice Machine 破產了
        • 私募公司收購了 Cloudera
        • Andy 說:2022 年可能會有更多的數據庫公司倒閉
      • 堅持的回報
        • Andy 說:為 Larry 高興

觀點簡述

從 2021 年興起的數據庫性能之爭,似乎經過 2 年時間的洗禮,熱度有所降低,2022、2023 的數據庫廠商們相對 Peace 并沒有發起過多的性能戰。枯木又逢春,盡管向量數據庫存在已久,2023 年 vector database 又大火的一把。不過在 Andy 看來,向量數據庫并沒有技術壁壘:有多種現成的集成方式,可快速集成向量能力到現有的數據庫,這些集成方式甚至還有開源的,更是大大降低數據庫廠商的集成成本。SQL 新規范 SQL:2023 在對圖數據的支持上,雖然目前只是做了讀查詢的適配,在 Oracle v23c 給出了 Oracle 的圖查詢示例。不過,目前跟進 SQL/PGQ 的 DBMS 不多,像是 DuckDB 的實驗性分支;此外,Andy 覺得 SQL/PGQ 對現有的圖數據庫并不會造成威脅,畢竟還有查詢的性能問題需要攻克。在多維數組的支持上,SQL 新規范強化了數組功能,支持了真正意義上的數組——任意維度的數組。

在融資方面,2021 年是融資大年,各類數據庫無論是初創還是老牌數據庫廠商都能融到八位數的融資;到了 2022 年,上半年依舊保持著“好融資,融資高”的勁頭,但在下半年融資情況急轉直下,大額度的融資變少了,資金縮緊。這個情況延續到了 2023 年,除了市場融資變冷清之外,更多的資金集中到了同向量相關的領域,雖然還是有一些數據庫廠商“破局”成功融到了錢。

在數據庫可持續發展方面,自 2021 年 Swarm64、Cloudera 被收購,Splice Machine 破產之后。隨后的 2022、2023 年,MarkLogic、Ahana、EverSQL、Seafowl 也先后分別被 Progress Software、IBM、Aiven、EnterpriseD 收購,結束了他們的“獨立”生涯。

這 3 年也發生了一些逸事,比如 Oracle 的聯合創始人 Larry Ellison 雖然在 2018 年在億萬富翁排名中跌至第十位,但是在 2021 年重返第五位,甚至在 2023 年僅次于 Bernard Arnault、Elon Musk、Jeff Bezos 以 1,070 億美元名列第四。此外,Larry Ellison 在 2023 年還花了 10 億給 Elon Musk 來重置他的 Twitter 密碼好繼續他的推特之旅。習慣用子女名來命名數據庫的 MySQL、MaxDB、MariaDB 之父 Monty Widenus 估計最近的日子不好過,因為 MariaDB 的公司和基金會發生了一些矛盾,不僅如此,它的市值還蒸發了 90%。

除了上面的一些事件,像是美國航空因政府數據庫崩潰而停飛 11,000 多架飛機、區塊鏈數據庫是個蠢點子之類的指控,就得你翻閱歷年回顧了。

歷年回顧

2023 年數據庫回顧:向量數據庫雖然大火,但沒有技術壁壘

英文原文:https://ottertune.com/blog/2023-databases-retrospective

向量數據庫的崛起

毫無疑問,2023 年是向量數據庫的一年。盡管幾年前相關的某些系統早已存在,但去年人們對 LLM 及其上構建的服務(例如,ChatGPT)的廣泛關注讓向量數據庫成為大家的視線焦點。向量數據庫旨在基于語義,而不僅僅是數據內容來提供更深層的數據檢索能力,特別是針對非結構化數據。也就是說,應用程序可以搜索與主題相關的文檔(例如,“有 Slinging 相關歌曲的 hip-hop 團體”),而不是包含精準關鍵字(例如,“Wu-Tang Clan”)的文檔。

這種主題搜索所依賴的“魔法”是 transformer,它將數據轉換為一個固定長度的一維浮點數向量,稱之為嵌入 Embedding。人類雖然不能直接理解這些嵌入的值,但嵌入的內容編碼了參數和 transformer 訓練語料庫之間的某種關系。這些嵌入向量的大小從簡單 transformer 的數百維到高端模型的數千維不等。

假如,我們使用 transformer 為數據庫中的所有記錄生成嵌入,就能通過查找與給定輸入在高維空間中最相近的記錄嵌入來搜索相似記錄。然而,暴力比較所有向量以找到最相近的匹配結果是非常昂貴的。這種暴力搜索的復雜度是 O(N * d * k),其中 N 是嵌入的數量,d 是每個向量的大小,k 是你想要的匹配數量——你可能不知道這個復雜度代表什么,反正很糟糕就是。

這也促成向量數據庫的崛起。本質上,向量數據庫只是一個帶有特定索引數據結構的文檔數據庫,以加速對嵌入的相似性搜索。不同于對查詢進行精準匹配來找到最相似的向量,向量數據庫用近似搜索來生成結果,在速度和精度之間做了權衡,這種結果做出了“足夠好”的折中。

在 2022 年區塊鏈數據庫神話崩盤之后,風投們嗅到了向量數據庫的商機,再次變得興奮。他們幾乎投資了向量數據庫領域的所有主流玩家(廠商)們。在 2023 年的種子輪融資中,Marqo 爆出了一個 520 萬美元的種子輪,Qdrant 拿到了 750 萬美元的種子輪,而 Chroma 則融到一個巨額的 1,800 萬美元種子輪。同年 4 月,Weaviate 在 B 輪成功融到 5,000 萬美元。最搶眼的還是 2023 年 Pinecone 在 B 輪融到讓人羨慕的 1 億美元。很顯然,向量數據庫公司在正確的時間點出現在了正確的賽道。

Andy 說:向量數據庫沒有技術護城河

自從 LLM 在 2022 年末隨著 ChatGPT 變成熱點,在不到一年的時間,多家 DBMS 廠商便添加了自己的向量搜索擴展,其中包括有 SingleStore、Oracle、Rockset 和 ClickHouse。同時,不少基于 PostgreSQL 的數據庫產品也宣布支持向量搜索;有些使用 pgvector 擴展(像 Supabase、AlloyDB),而另外一些則使用其他的開源 ANN(近似最近鄰算法,Approximate Nearest Neighbor)庫,比如:Timescale、Neon。此外,領先的 NoSQL 數據庫,像 MongoDB 和 Cassandra,也支持了向量索引。

我們將多個 DBMS 對向量的快速支持,和先前 JSON 數據類型的興起做個有意思的對比。在 2000 年代后期,原生存儲 JSON 的 NoSQL 系統變得流行(像 MongoDB 和 CouchDB)。但在之后幾年時間里,關系型 DBMS 的老牌廠商才添加了對 JSON 的支持,像 PostgreSQL、Oracle 和 MySQL 分別是在 2012、2014 和 2015 年支持的該類型。SQL 標準雖在 SQL:2016 中添加了操作 JSON 數據的函數,但直到 SQL:2023 才添加了官方的 JSON 數據類型。盡管許多關系型 DBMS 已經支持了概念上相似的 XML,這種適配的拖延還是讓人唏噓。

向量搜索索引的快速支持有兩個可能的解釋。第一個是能通過嵌入進行的相似性搜索越發重要,以至于每個 DBMS 廠商都快速推出了自己的向量版本并第一時間宣布該消息。第二個是引入新的訪問方法和索引數據結構所需的工程成本如此低,以至于 DBMS 廠家們添加向量搜索并不需要太多工作。大多數廠商甚至沒有從頭開始編寫向量索引,而是直接集成了幾個可用的高質量開源庫之一,像是 Microsoft DiskANN、Meta Faiss。

DBMS 集成向量搜索能力的成本如此低,向量 DBMS 廠商根本沒有足夠深的護城河來抵抗現有 DBMS 的侵略,保持競爭優勢。

我最近和兩家公司 Pinecone 和 Weaviate (上面提到融資成功的向量數據庫廠商)的聯合創始人聊過,他們可以走兩條路(詳情參考 Andy 對話 Weaviate CTO 的采訪視頻)。第一條路是,客戶開始用向量 DBMS 作為“記錄數據庫”,廠商將為操作型工作提供更好的支持。最終,向量數據庫會看起來更像流行的文檔 DBMS,比如:MongoDB。接著,在五年內,像之前的 NoSQL 一樣增加對 SQL 的支持。另一條路是,向量 DBMS 作為次級數據庫,通過上游操作型 DBMS 的變更進行更新。就像人們使用 Elastic 和 Vespa 這樣的搜索引擎 DBMS 一樣。在這種情況下,向量 DBMS 可以在不擴展它們的查詢語言或擁有更結構化的數據模型的情況下生存。

旁注: 我最近錄制了一個關于向量與關系數據庫的問答節目。在里面我提到了,每個關系型 DBMS 在未來五年內都將擁有一個高性能的向量索引實現。

SQL 持續變好

今年 2024 年是 Don Chamberlain 和 Ray Boyce (RIP) 在 IBM 研究院創建 SQL 的五十周年。最初被稱為 SEQUEL(Structured English QUEry Language,結構化英語查詢語言)的 SQL,自 1980 年代以來,一直是與數據庫交互的事實標準。盡管 SQL 已經很老了,但它的使用情況和功能一直在增加,尤其是過去的十年。

去年,ISO/IEC 9075 規范的最新版本 SQL:2023 面世。這次更新包括了不少用來處理各種 SQL 方言中的痛點和不一致性的“好用功能”,比如:ANY_VALUE)。值得一提的是,當中兩個 SQL 增強功能,進一步削弱了對替代數據模型和查詢語言的需求。不過需要注意一點,新的 SQL 規范包含這些內容,并不代表你喜歡的關系型 DBMS 會立即支持這些新特性。

屬性圖查詢(SQL/PGQ)

目前,SQL 支持對圖進行只讀查詢。這允許應用程序在現有表上聲明一個屬性圖結構。下面這個 Oracle v23c 的圖示例,它記錄了哪些人在哪支樂隊中:

CREATE TABLE PEOPLE (ID INT PRIMARY KEY, NAME VARCHAR(32) UNIQUE);
CREATE TABLE BANDS (ID INT PRIMARY KEY, NAME VARCHAR(32) UNIQUE);
CREATE TABLE MEMBEROF (PERSON_ID INT REFERENCES PEOPLE (ID), BAND_ID INT REFERENCES BANDS (ID), PRIMARY KEY (PERSON_ID, BAND_ID));CREATE PROPERTY GRAPH BANDS_GRAPHVERTEX TABLES (PEOPLE KEY (ID) PROPERTIES (ID, NAME),BANDS KEY (ID) PROPERTIES (ID, NAME))EDGE TABLES (MEMBEROFKEY (PERSON_ID, BAND_ID)SOURCE KEY (PERSON_ID) REFERENCES PEOPLE (ID)DESTINATION KEY (BAND_ID) REFERENCES BANDS (ID)PROPERTIES (PERSON_ID, BAND_ID));

它由 DBMS 決定是為屬性圖創建輔助數據結構(例如,鄰接矩陣)還是僅跟蹤元數據。你可以用 MATCH 關鍵字在 SQL 中編寫圖遍歷查詢,這個語法建立在現有查詢語言(像是 Neo4j 的 Cypher,Oracle 的 PGQL 和 TigerGraph 的 GSQL)的基礎上,并且兼容了新興的 GQL 標準。以下查詢返回每支樂隊的成員數:

SELECT band_id, COUNT(1) AS num_membersFROM graph_table ( BANDS_GRAPHMATCH (src) - [IS MEMBEROF] -> (dst)COLUMNS ( dst.id AS band_id )) GROUP BY band_id ORDER BY num_members DESC FETCH FIRST 10 ROWS ONLY;

截至 2024 年 1 月,我知道的唯一支持 SQL/PGQ 的 DBMS 是 Oracle。DuckDB 的實驗性分支雖然也支持 SQL/PGQ,但上面示例不能運行,因為兩個數據庫支持的語法略有不同。你可以從 CWI/DuckDB 研究員 Gabor Szarnyas 整理的這個 SQL/PGQ 的優秀資源列表中了解更多關于 SQL/PGQ 的信息。

多維數組(SQL/MDA)

從 SQL:1999 引入有限的單維度、固定長度數組數據類型以來,SQL 就支持數組類型。而 SQL:2003 更是增強了該功能,支持嵌套數組,而無需預定義最大基數。在 SQL:2023 中,SQL/MDA 部分更新支持了使用整數坐標的真正的多維數組,這些數組可以是任意維度。此外,Rasdaman 的 RQL 大大地啟發了 SQL/MDA 語法,SQL 可以提供與其兼容,并與集合語義正交的結構和操作數組構造。借此讓應用程序只用在 SQL 中與多維數組交互和操作,而無需將它們導出,例如:到 Python Notebook。下表展示了在 CREATE TABLE 語句中使用 MDARRAY 數據類型的不同示例:
在這里插入圖片描述

盡管 SQL/MDA 規范在 2019 年以技術報告的形式出現,但直到 SQL:2023 它才被正式納入 SQL 標準。據我所知,除了 Rasdaman 之外,沒有其他生產級別的 DBMS 支持 SQL/MDA 擴展。我能找到的唯一其他數據庫是 ASQLDB,一個數據庫 HSQLDB 的分支。

Andy 說:SQL:2023 是個里程碑

SQL:2023 修訂版是 SQL 這種通用查詢語言持續進化和改進的下一個階段。當然,SQL 并不完美,也不具備真正的可移植性,因為每個 DBMS 都有自己的特點、專有特性和非標準擴展。就像我個人就非常喜歡 PostgreSQL 的 :: 轉換操作符快捷方式。

雖然 SQL/PGQ(SQL 對圖的支持)是個大事,但我不覺得它會立即對圖數據庫造成威脅,因為已經有多種方法將面向圖的查詢轉換為 SQL。包括 SQL Server 和 Oracle 在內的 DBMS 都提供了內置的 SQL 擴展,可以容易地存儲和查詢圖數據。Amazon Neptune 則是在 Aurora MySQL 之上的圖數據服務層。Apache AGE 在 PostgreSQL 之上提供了一個 openCypher 接口。我預測其他主流 OLAP 數據系統,例如:Snowflake,Redshift,BigQuery,都會在不久的將來支持 SQL/PGQ。

但在一個 DBMS 中添加 SQL/PGQ 并不像添加新語法那樣簡單。要確保圖查詢性能良好,需要考慮幾個工程上的問題。例如,圖查詢執行多路連接來遍歷圖。但當這些連接的中間結果比基礎表還大時,問題就來了。一個 DBMS 必須使用最壞情況下最優連接(WCOJ,Worst-case optimal join)算法來更有效地執行兩表聯合查詢,而不是通常用來連接兩個表的 hash join。另一個技術要點是使用因式分解來避免在連接過程中物化冗余的中間結果。這種類型的壓縮讓 DBMS 規避了一遍又一遍地用相同的連接記錄導致內存耗盡的問題。

上面我提到的優化點,并不是說現有的圖數據庫都做到了。據我所知,像是 Neo4j、TigerGraph 等圖數據庫都沒有實現。我唯一知道的實現了優化的是滑鐵盧大學的嵌入式圖數據庫 Kuzu。大多數關系型數據庫也沒有實現它們,至少我知道的那些開源數據庫沒有。上面提到的 DuckDB 實驗分支實現了 WCOJ 和因式分解優化,并在 2023 年的論文中顯示,在一個行業標準的圖基準測試中,其性能比 Neo4j 高出多達 10 倍。

我很久之前說過,SQL 可能在你出生之前就存在,到你去世它依然會存在。對于那些聲稱自然語言查詢將完全取代 SQL 的說法,我依舊嗤之以鼻。

旁注:從上次我公開說到 2030 年圖數據庫都不會在數據庫市場上超過關系型數據庫以來,已經兩年過去了。到目前為止,我還是對的。

MariaDB 的困境

過去的一年,MariaDB 頻頻出現在新聞報道中,而且大多數都不是什么好消息。獨立于 MariaDB 基金會的 MariaDB 公司顯然是一個混亂的公司。在 2022 年,這家公司試圖借殼 SPAC 上市,但是股票($MRDB)在 IPO 后的三天內立即跌了 40%。而為了加速在紐交所上市進度的借殼操作也被公諸于世。到 2023 年底,MariaDB 公司股價自開盤以來跌了 90% 以上。

因為這些糟糕的財務問題,MariaDb 公司宣布了兩輪裁員。第一輪在 2023 年 4 月,但同年 10 月他們進行了另一輪更大規模的裁員。公司還宣布他們將關停兩款產品:Xpand 和 SkySQL。前者是 MariaDB 公司在 2018 年收購的產品,當時它還被稱為 Clustrix;我在 2014 年還參觀了 Clustrix 的舊金山辦公室,當時我覺得那里像個陰森的鬼城(辦公室里一半的燈都熄滅了)。后者 SkySQL 的歷史更加復雜。最初它只是一個提供 MariaDB 服務的獨立公司,在 2013 年與 Monty Program AB 合并。在 2014 年,合并后的 Monty Program AB + SkySQL 公司變成了今天的 MariaDB 公司。但在 2023 年 12 月,公司又宣布 SkySQL 沒有“死去”,而是作為一個獨立公司重新回到了市場!

MariaDB 公司的情況如此糟糕,以至于 MariaDB 基金會的 CEO 專門寫文章,抱怨自從 MariaDB 公司上市以來基金會與公司的關系是如何惡化,他希望能夠重新審視彼此關系。雪上加霜的是,微軟在 2023 年 9 月宣布,未來不再提供作為托管 Azure 服務的 MariaDB,而是改為采用 MySQL。可能有人不知道,MariaDB 本身就是 MySQL 的一個分支,是 MySQL 的原創始人 Monty Widenus 在 2009 年 Oracle 宣布收購 Sun Microsystems 后創建的。回憶下,Oracle 在 2005 年買了 InnoDB 的制造商 InnoBase,Sun 在 2008 年買了 MySQL AB。現在 MySQL 運行良好,MariaDB 卻遇到了問題。戲劇來源于現實,多看看數據庫市場你能吃到各種瓜!

Andy 說:數據庫的聲譽比以往任何時候都重要

過去的十年,數據庫客戶的精明程度有了大幅度的提升。各家公司也不再能僅憑華而不實的性能數字、取代 SQL 的新查詢語言,或是名人效應來“扮成功直到真正成功”了。數據庫的聲譽比以往任何時候都更為重要,其背后的公司聲譽也同樣重要。也就是說,這意味著軟件本身的穩定很重要,其公司也得有條不紊地運作。

開源數據庫背后的公司如果倒閉了,很少數據庫能繼續發展和繁榮。不過,PostgreSQL 算一個例外,盡管今天我們用的開源版本是基于加州大學伯克利分校的源碼,而不是 1996 年被 Informix 收購的商業版本 Illustra。另一個例子是,為 MySQL 構建 InfiniDB OLAP 引擎的公司在 2014 年破產后,其 GPLv2 源碼被接手并作為 MariaDB 的 ColumnStore 持續發展。

相反,更多現實告訴我們,一旦支付最多開發費用的公司消失,對應的數據庫就會逐漸衰落。唯二在某種程度上算是活下來數據庫的例子是 Riak 和 RethinkDB。Basho 在 2017 年破產后,現在 Riak 由在 UK’s NHS 工作的一個人維護。RethinkDB 公司在 2017 年倒閉(鑒于創始人對女性在科技界的看法,這并不奇怪)后,數據庫源碼就被轉移到了 Linux 基金會。盡管基金會接手了項目,RethinkDB 仍處于活著的狀態:該項目在 2023 年發布了一個新版本,但它們只是熱修復,來解決一些已知問題。有興趣的話,你可以去 Apache 基金會檔案室看看那些被遺棄的數據庫項目。

只在云端提供數據庫服務的 DBaaS,在穩定性上只會更糟糕。因為如果公司失敗,或是開始面臨財務壓力,他們就會關閉托管你數據庫的服務器。Xeround 在 2013 年關閉云服務時,給了他們的客戶兩周時間遷移數據。為了降低成本,InfluxDB 在 2023 年 7 月刪除整個 region 前給了客戶六個月的時間遷移,但大家還是大吃一驚。

MariaDB 比一般的數據庫創業公司處于更好的位置,因為 Monty 和其他人成立了一個管理開源項目的非營利基金。但當你是一個以盈利為目的的開源數據庫公司,而幫助你管理該 DBMS 運作的非營利組織公開表示你管理混亂的話,那就是一個壞兆頭!與此同時,MySQL 在持續改善,Oracle 依舊是那個從工程角度看不錯的企業級數據庫選擇。MariaDB 公司的混亂將進一步促進人們轉向使用 PostgreSQL。

MariaDB 肯定不能失敗,據我所知,Monty 沒有更多的孩子可以用來給數據庫命名了(例如:MaxDB、MySQL、MariaDB)。

小趣聞:MariaDB 取名自 Monty 的小女兒 Maria,MaxDB 取名自兒子 Max,MySQL 來自大女兒 My。

美國航空因政府數據庫崩潰而停飛

在 2023 年 1 月 11 日,由于飛行通知 NOTAM 系統故障,聯邦航空管理局 FAA 停飛了美國所有的航班。NOTAM 系統向飛行員提供以純文本編碼的消息,告訴他們可能在飛行路徑上會遇到的意外和潛在危險。當 NOTAM 系統在 1 月 11 日早晨崩潰時,直接導致美國大約 11,000 架航班無法起飛。所幸的是,其他國家運行著獨立的、不受美國 NOTAM 故障影響的 NOTAM 系統能正常起飛。

根據 FAA 官方說法,這次故障是由于一個數據庫文件損壞導致的。一名來自第三方承包商的工程師嘗試用備份文件替換它,但結果是備份文件也有問題。2008 年也發生了類似的事件。

關于 FAA 在 NOTAM 所用的 DBMS 并沒有公開信息。有一些報道稱,NOTAM 仍然在運行于 1988 年的兩臺 Philips DS714/81 大型機上。但這些 Philips DS714 機器沒有我們今天所知的操作系統;它們是 1960 大型機年代的遺物。也就是說,在 1980 年代 FAA 無法為應用使用現有的數據庫系統,即便是那些當時已經存在的數據庫,像是 Oracle、Ingres 和 Informix 都支持當時的各種 Unix。我覺得比較合理的可能是,NOTAM 可能用 Flat File(比如:CSV)來自行管理數據。1980 年代由非數據庫專家編寫的應用程序代碼負責從文件中讀取/寫入記錄,復制到備用服務器,并在出現故障時維護數據的完整性。

Andy 說:歷史悠久的核心數據系統,是每個數據庫從業者最大的噩夢

在無法替代的傳統硬件上運行關鍵任務系統,使用的還是由早就退休的內部開發人員編寫的自定義數據庫訪問庫,這是每個數據庫從業者最大的噩夢。我很驚訝它竟然沒崩潰得更早(除非 2008 年的故障是同一系統),我覺得我們應該給這個運行了 35 年的系統一些掌聲。

有消息稱,NOTAM 系統每秒只處理 20 條消息。按照現代數據標準,這個數據量真的很小,但別忘記,FAA 是在 1980 年代配置的這個系統。數據庫傳奇人物,1998 年圖靈獎得主 Jim Gray 在 1985 年寫到,“普通”的數據庫管理系統可以執行大約每秒 50 次事務(txn/sec),而非常高端的系統可以達到每秒 200 次。作為參考,五年前,有人使用 1980 年代的基準測試(基于 TPC-A 的 TPC-B)在樹莓派 3 上運行 PostgreSQL,大約達到了每秒 200 次事務。如果我們不考慮那些使用跨數據中心的強一致性復制(這會受到光速的限制)的系統,現代單節點在線事務處理(OLTP)DBMS 可以在某些工作負載下實現每秒數百萬次事務的吞吐量。NOTAM 在 1980 年代的峰值每秒 20 條消息的吞吐量并沒有推動當時的技術極限,而且顯然今天也沒有。

因為 NOTAM 沒有將數據庫與應用程序邏輯分離,所以獨立升級這些組件是不可能的。考慮到在 1980 年代中期,關系模型的優點已經眾所周知,NOTAM 這種設計是該批判的。當然,并不是說 SQL 就能防止這次確切的失敗(這是一個人為錯誤),但獨立性會讓各個組件不那么笨重,更易于管理。

盡管如此,當時美國政府其實已經在用商用關系型 DBMS。例如,Stonebraker 的 RTI(Ingres 廠商)在 1988 年的 IPO 申報文件中提到,他們現有的客戶包括國防部和內政部、軍事分支和研究實驗室。我相信當時美國政府的其他部門也在使用 IBM DB2 和 Oracle。因此,除非 NOTAM 有什么我不知道的特別之處,不然 FAA 本可以使用真正的數據庫管理系統。

停飛事件發生的時候,我正在阿姆斯特丹的 CIDR 2023 會議的返程中。幸運的是,停飛沒有影響入境的國際航班,我的飛機可以順利地降落。但我還是被困在紐瓦克機場,因為美國所有國內航班都停飛了。熟悉紐瓦克機場的人都知道,在這里待著并不是什么好事。

延伸閱讀:你可以閱讀我之前的文章,了解下為什么如果 NOTAM 數據庫運行在 Amazon RDS 上,不太可能發生數據庫崩潰。

數據庫的融資情況

除了上面提到的向量數據庫是風投的“新寵”之外,其他類型的數據庫在 2023 年也是有融資的。但總體而言,今年的數據庫融資活動比往年要冷清得多。

自動調優初創公司 DBTune 在歐洲完成了 260 萬美元的種子輪融資。PostgresML 獲得了 450 萬美元的種子輪融資,來打造一個通過自定義擴展來支持從 SQL 調用 ML 框架的 DBaaS。TileDB 在秋季宣布完成了 3,400 萬美元的 B 輪融資,以此繼續完善他們的陣列數據庫管理系統。盡管有著 13 年的歷史,SQReam 還是獲得了 4,500 萬美元的 C 輪融資,來繼續開發他們的 GPU 加速數據庫管理系統。Neon 在 2023 年 8 月完成了 4,600 萬美元的 B 輪融資,以擴展無服務器 PostgreSQL 平臺。當然,2023 年的融資贏家再次是 Databricks,他們在 2023 年 9 月完成了 5 億美元的 I 輪融資。雖然這是一筆巨款,但并不如他們在 2021 年 H 輪的 16 億美元來得多。

Peter Boncz 和 Tianzhou Chen 提醒我了,還有 MotherDuck(DuckDB 的商業版本)在 2023 年 9 月完成的 5,250 萬美元的 B 輪融資。另一個數據庫產品 DBeaver,完成了 500 萬美元的種子輪融資,來繼續研發受歡迎的 multi-DBMS 。

此外,2023 年數據庫領域也發生了一些收購。最大的一筆交易在年初發生,MarkLogic 被 Progress Software 以 3.55 億美元現金收購。MarkLogic 是最古老的 XML 數據庫管理系統之一(約 2001 年),而 Progress 擁有 OpenEdge,一種更古老的數據庫管理系統(約 1984 年)。IBM 收購了 Meta 的衍生公司 Ahana,該公司試圖將 PrestoDB(它不同于已經更名為 Trino 的 PrestoSQL)商業化。多云數據庫服務提供商 Aiven 收購了 AI 驅動的查詢重寫器初創公司 EverSQL。EnterpriseDB 用 Bain Capital(私募投資公司)的資金收購了基于 DataFusion 兼容 PostgreSQL 的 OLAP 引擎的 Seafowl 團隊。Snowflake 收購了兩家初創公司:(1)由前斯坦福教授 Peter Bailis 打造的 Sisu Data,以及(2)由伯克利教授 Aditya Parameswaran 基于 Modin 研發的 Ponder。

Andy 說:無論初創公司,還是高估值的公司日子都不好過

我的風投朋友們說,他們在 2023 年看到了更多新公司的推介,但比往年簽發的支票更少。這個趨勢貫穿所有初創領域,數據庫市場也不例外。大部分的風投注意力都在那些和人工智能+大型語言模型(LLM)有一點點關系的項目,這也合理,畢竟這是計算領域的新篇章。

盡管美國 2023 年的宏觀經濟指標有些積極的跡象,但科技產業依舊緊張,每家企業都在削減成本。像 OtterTune(作者所在的公司)客戶希望我們的數據庫優化服務能在 2023 年幫助他們降低數據庫基礎設施成本。這與公司早些年人們主要來找 OtterTune 提高數據庫管理系統的性能和穩定性不同。我們計劃在 2024 年宣布新功能,以幫助降低數據庫成本。回到大學,這個學期有比平常更多的學生請我幫他們找數據庫開發的工作。這讓我很吃驚,因為 CMU 的計算機科學學生一直不愁找工作,靠自己就拿到不錯的實習和全職 offer,除了有次我最優秀的本科生重寫了我們的查詢優化器,但因為忘了問我,結果找不到暑期實習,最后在匹茲堡機場附近的迪克體育用品店做網頁開發——他現在在 Vertica 工作得很開心。

如果美國的科技市場繼續低迷不振,接下來的幾年眾多數據庫初創公司都難有大發展。小型的數據庫初創公司要么會被大型科技公司或私募股權收購,要么就直接倒閉。但是,那些融到大筆錢且估值很高的公司也不好過。正如我之前說的那樣,有些公司可能無法 IPO,而且沒有哪家大型科技公司會需要這些 DBMS,因為如今大家都有自己的數據庫系統。因此,這些大數據庫管理系統公司將面臨三個選擇:接受降低估值的融資以保持運營;通過私募股權獲得支持,保持運營(比如:Cloudera);被一家 IT 服務公司收購(比如:Rocket,Actian),這些公司將 DBMS 置于維護模式,但繼續從那些被困的客戶那里收取許可費,因為這些客戶有他們無法輕易遷移的遺留應用程序。不過,這三條路對于數據庫公司來說都不理想,應該會嚇跑潛在的新客戶。

最后,我要重述一句:不要問 Databricks 是不是會 IPO,而是它何時會 IPO。

史上最貴的密碼重置

2023 年,數據庫傳奇大佬 Larry Ellison 春風得意。對于他原本杰出的職業生涯來說,2023 年也是一個標志性的一年。2023 年 6 月,他重返世界第四富有的位置。Oracle 公司的股價($ORCL)在 2023 年上漲了 22%,略低于標準普爾 500 指數 24% 的回報率。此外,在 2023 年 9 月,Larry 第一次去了 Redmond,并與微軟首席執行官 Satya Nadella 一起登臺宣布,Oracle 可作為 Azure 云平臺上托管服務使用。隨后同年 11 月,股東們壓倒性地投票支持 79 歲的 Larry 繼續擔任 Oracle 董事會主席。

但 2023 年真正的大新聞是,Elon Musk 在 Larry 對 Musk 收購社交媒體公司投資了 10 億美元后,親自幫 Larry 重置了 Twitter 密碼。正是這筆價值 10 億美元的密碼重置,我們在 2023 年 10 月有幸看到了 Larry 的第二條推文,也是他十多年來的首條新推文。Larry 預告了他即將前往牛津大學的行程,后來他在那里宣布在牛津大學成立埃里森技術研究院(EIT)。

Andy 說:意料之外的大人物生活

其實 Larry 發了什么根本不重要,重要的是 Larry 回歸推特發推文。我偷偷打聽過,Larry 偶爾會看看推特,主要關注創業點子提案、祝福以及不經意冒出的奇思妙想。

Larry 的推文之所以出人意料,是因為人們一般會認為他總是忙于更宏偉的活動。畢竟,他擁有一架 MiG-29 戰斗機和一個夏威夷島嶼。他有很多更偉大的事情可以做。所以,當他抽出時間在一個日益衰落的社交媒體上寫推文,告訴我們他在做什么。這對我們所有人來說,都是一個重大的生活事件。為此,Larry 不得不請他那個世界上最富有的朋友來重置他的密碼。雖然花費 10 億美元,但當你擁有 1,030 億美元時,這都不是什么事了。

2022 年數據庫回顧:江山代有新人出,區塊鏈數據庫還是那個傻主意

英文原文:https://ottertune.com/blog/2022-databases-retrospective

放緩的大規模數據庫融資

正如我去年說的那樣,2021 年是數據庫融資的大年。隨著投資者繼續尋找下一個 Snowflake,大量資金涌向了新的 DBMS 初創公司。2022 年初看起來像是要再過一次 2021 年,有非常多的大額融資消息。

融資狂歡在 2022 年的 2 月開始,Timescale 完成了 1.1 億美元的 C 輪融資,Voltron Data 完成了 1.1 億美元的種子輪 + A 輪融資,Dbt Labs 完成了 2.22 億美元的 D 輪融資。Starburst 在 3 月宣布了他們 2.5 億美元的 D 輪融資來繼續提升他們的 Trino 產品。Imply 在 5 月拿出 1 億美元的 D 輪融資用于開發他們的 Druid 商業版本。DataStax 在 6 月的 IPO 途中獲得了 1.15 億美元的資金。最后,SingleStore 在 7 月完成了 1.16 億美元的 F 輪融資,然后在 10 月又融了 3,000 萬美元。

2022 年上半年還有幾家較小的公司完成了讓人印象深刻的 A 輪融資,包括 Neon 的 3,000 萬美元 A 輪用來研發無服務器 PostgreSQL 產品,ReadySet 2,900 萬美元 A 輪融資來研發查詢緩存層,Convex 的 2,600 萬美元 A 輪來繼續開發他們基于 PostgreSQL 的應用程序框架,以及 QuestDB 的 1,500 萬美元 A 輪來開發時序數據庫。盡管我們 OtterTune 沒有新的 DBMS 或相關基礎設施,但我們也在 4 月完成了 1,200 萬美元的 A 輪融資。

但是,到了 2022 年下半年,大規模的融資輪停止了。盡管早期初創公司還是有較小額的融資進來,但更后面的公司再也沒有九位數的美元融資了。

流處理引擎 RisingWave 在 10 月籌集了 3,600 萬美元的 A 輪,Snowflake 查詢加速器 Keebo 融到 1,050 萬美元的 A 輪資金。在 11 月,我們看到了 MotherDuck 的 4,500 萬美元種子輪 + A 輪融資的新聞來開發商業化 DuckDB 的云版本,以及 EdgeDB 在 11 月的 1,500 萬美元 A 輪融資。最后,是 SurrealDB 完成了 600 萬美元的種子輪融資。我可能漏掉了一些其他公司,這不是一個詳盡的列表。

在數據庫領域唯一其他值得注意的金融事件是,MariaDB 在 12 月的災難性地通過 SPAC IPO,股價在首個交易日就下跌了 40%。

Andy 說:不只是 OLAP 領域,OLTP 領域前景也一樣嚴峻

與 2021 年相比,在 2022 年大額融資輪減少的原因有兩個。最明顯的是整個科技行業在降溫,部分原因是人們對通貨膨脹、利率和加密經濟崩潰的擔憂。另一個原因是,有能力大額融資的公司在資金干涸之前就完成了融資。

例如,Starburst 在 2021 年完成了 1 億美元的 C 輪融資后,在 2022 年進行了它的 D 輪融資。在過去兩年完成巨額融資的數據庫公司,很快就需要再次融資來保持增長勢頭。

壞消息是,除非科技行業有所改善,并且大型機構投資者開始再次將資金投入市場,否則這些公司們將面臨困境。市場無法維持這么多獨立軟件供應商(ISVs)為數據庫服務。這些擁有十億美元估值的公司唯一繼續前進的法子是,進行首次公開募股或破產。這些公司對于大多數公司來說太貴了,無法被收購(除非風投公司愿意大打折扣)。

此外,進行大型并購的大型科技公司(比如:亞馬遜、谷歌、微軟)都有了自己的云數據庫產品。因此,不清楚誰會收購這些數據庫初創公司。亞馬遜沒有理由在他們 Redshift 每年賺取數十億美元時,去以 2021 年的 20 億美元估值購買 ClickHouse。這個問題不僅限于 OLAP 數據庫公司;OLTP 數據庫公司很快也將面臨同樣的問題。

我并不是唯一一個對數據庫初創公司的前景做出如此嚴峻預測的人。Gartner 分析師預測,到 2025 年,50% 的獨立 DBMS 供應商將退出市場。顯然我有自己的看法,我認為未來生存下來的公司是那些致力改善或者是強化 DBMS 的公司,而不是替換它們的公司(比如:dbt、ReadySet、Keebo 和 OtterTune)。

我無法判斷 MariaDB 借殼 SPAC “快速上市”是否是個好主意。這種金融操作不在我的專業領域(數據庫)內。但既然這和前美國總統用他的社交媒體公司做的事情一樣,我就姑且認為它不是什么好主意。

區塊鏈數據庫還是那個蠢點子

關于 Web3 根本性轉變了構建新應用程序方式這點,有很多夸張的說法。我有一個學生甚至因為我教授的是關系數據庫而不是 Web3,憤然從我的課堂離席。Web3 運動的核心是在區塊鏈數據庫中存儲狀態。

區塊鏈本質上是去中心化的分散的日志結構數據庫(即,賬本),它們通過使用某種 Merkle 樹的變體和 BFT 共識協議來維護增量校驗和,從而確定下一個要入庫的更新。這些增量校驗和是區塊鏈確保數據庫日志記錄不變性的方式:客戶端使用這些校驗和來驗證之前的數據庫更新沒有被更改。

區塊鏈是之前想法的巧妙結合。但是,廠商們認為去中心化賬本是每個人構建 OLTP 應用程序必須的,這點是一種誤導。從數據庫的角度,除了加密貨幣之外,區塊鏈數據庫和現有的 DBMS 沒有任何差別。此外,任何區塊鏈在數據庫安全性和可審計性比現有 DBMS 表現更好的說法,都是胡說。

如果說加密貨幣是區塊鏈數據庫的最佳實踐,那么 2022 年加密市場的崩潰顯然沒有幫到它們,甚至是進一步阻礙了區塊鏈數據庫的發展。當然我會忽略 FTX 的崩盤(他們申請了破產保護),畢竟它就是徹頭徹尾的詐騙,和數據庫一點關系都沒。不過,我要指出,FTX 和所有其他加密貨幣交易所一樣,并沒有在區塊鏈數據庫上運行業務,而是使用了 PostgreSQL。

此外,其他與加密貨幣無關的區塊鏈數據庫用例,如交易和游戲平臺,都因為不切實際或詐騙沒有落地。

Andy 說:有讓人信服的用例才是合格的新技術

評估某項技術的原則之一是,一旦廠商開始制作它的媒體廣告,它就不再是“新”技術了。簡單來說,像是 IBM 之類的廠商在打廣告的時還沒有出來讓人信服的用例,那么這個產品永遠也不會有用例。

舉個例子,IBM 在 2002 年在一則商業廣告中吹捧 Linux 是一個熱門的新事物,但那時已經有包括谷歌在內的成千上萬的公司將 Linux 作為主要服務器操作系統使用了。所以,當 IBM 在 2018 年發布他們的區塊鏈廣告時,我就知道這項技術除了在加密貨幣領域有用,在其他領域毫無用處。因為其他領域沒有一個問題是去中心化的區塊鏈能解決,而中心化的 DBMS 不能解決的。

因此,2022 年 IBM 宣布將關閉與航運巨頭 Maersk 合作的供應鏈 IT 基礎設施改造項目,也就不奇怪了,畢竟這正是 IBM 在廣告中炒作的場景。

相比任意一個可信權威管理、只允許受信任的客戶端直連、用心編寫的事務數據庫,區塊鏈數據庫的效率低得可怕。除了加密貨幣(見上文)或者其他什么欺詐場景,現實數據世界的運行方式都是和其他數據庫目前處理的那樣。

信任是一個正常運轉的社會的基石。例如,我授權托管 OtterTune 網站的公司向我的信用卡收費,他們又信任一個云提供商來托管他們的軟件。沒人會需要使用區塊鏈數據庫來進行這些“信任”交易。

從工作量證明(PoW:proof-of-work)轉換到不那么費事的權益證明(PoS:proof-of-stake),共識機制確實提升了區塊鏈數據庫的性能。但這只影響數據庫的吞吐量;區塊鏈交易的延遲仍然以數十秒計算。如果解決這些長延遲的方法是使用參與者較少的 PoS 區塊鏈,那么應用程序使用 PostgreSQL 來認證這些參與者會更好。

你可以讀一讀 Tim Bray(XML 之父)同 AWS 高層內部討論是否有區塊鏈可行用例的精彩文章。值得留意的是,Tim 說 AWS 在 2016 年就得出過區塊鏈數據庫是數據問題的解決方案的結論,這比 IBM 推出區塊鏈數據庫廣告早了兩年!雖然 AWS 最終在 2018 年發布了 QLDB 服務,但它不同于區塊鏈;它是一個中心化的可驗證賬本,不使用 BFT 共識。與亞馬遜極為成功的 Aurora 產品相比,QLDB 客戶的采用率一直不太理想。

趣聞:在 FTX 崩盤(申請破產保護)前的三周,有人和我說 OtterTune 的全職工程師人數和 FTX 在巴哈馬的團隊一樣。這個人還說,既然工程師人數一樣,OtterTune 應該像 FTX 那樣更有前景,而且現在應該有 10 億美元的年度經常性收入(ARR)。真是有意思呀。

新的數據系統

今年有不少新的 DBMS 軟件的重大新聞:

  • Google AlloyDB:2022 年最讓人震驚的消息是 5 月份谷歌云宣布了它們的新數據庫服務。AlloyDB 不是基于 Spanner 構建的,而是一個修改版的 PostgreSQL,它分離了計算層和存儲層,并且支持在存儲中直接處理 WAL 記錄。
  • Snowflake Unistore:6 月份,Snowflake 宣布了他們的新 Unistore 引擎,用“混合表”來支持 DML 操作的低延遲交易。當查詢要更新表時,變更會傳到 Snowflake 的列式存儲中。SingleStore 數據庫的某個人有些激動,說 SingleStore 在這個領域有一些專利,雖然這個說法沒啥實質性證據支撐。補充信息:SingleStore 和 Snowflake Unistore 有部分技術交集,你可以理解為他們存在一定的競爭關系。
  • MySQL Heatwave:當 Oracle 發現 Amazon 從 MySQL 賺的錢比他們多后,終于在 2020 年決定為 MySQL 構建自己的云服務。但他們并沒有僅僅做個 RDS(關系數據庫服務)克隆版,而是用一個叫做 Heatwave 的內存向量化 OLAP 引擎擴展了 MySQL。2021 年 Oracle 還宣布他們的 MySQL 服務還支持自動化數據庫優化(但與 OtterTune 提供的優化服務不同)。到了 2022 年,Oracle 終于發現他們不是領先的云供應商,并向 AWS “低頭”在 AWS 上托管了 MySQL Heatwave。
  • Velox:Meta 在 2020 年開始構建 Velox,作為 PrestoDB 的新執行引擎。兩年后,他們宣布了這個項目并發表了一篇關于它的 VLDB 論文。Velox 并不是一個完整的 DBMS:它不帶 SQL 解析器、目錄、優化器或網絡支持。相反,它是一個帶有內存池和存儲連接器的 C++ 可擴展執行引擎。人們可以基于 Velox 構建一個成熟的 DBMS。
  • InfluxDB IOx:就像 Meta 的 Velox 一樣,Influx 團隊在過去兩年一直在努力開發新 IOx 引擎。在 10 月,他們宣布新引擎正式上線(GA)。InfluxDB 從零開始基于 DataFusion 和 Apache Arrow 構建了 IOx。值得慶祝下的是,我在 2017 年和 Influx 的 CTO 說使用 MMAP 是個壞主意后,他們在新系統中拋棄了 MMAP。
Andy 說:欣然看到數據庫領域的勃勃生機

很高興見證了 2022 年數據庫領域發生的這些事。我對 AlloyDB 的看法是,它是一個簡潔的系統,當中投入了讓人感嘆的工程量,但我還是不知道它有什么創新點。AlloyDB 的架構類似于 Amazon 的 Aurora 和 Neon,在 DBMS 存儲中有個額外的計算層,可以獨立于計算節點處理 WAL 記錄。盡管谷歌云已經擁有堅挺的數據庫產品組合(比如:Spanner、BigQuery),但它們還是覺得有必要構建 AlloyDB 來嘗試趕上亞馬遜和微軟。

需要關注的長期趨勢是諸如 Velox、DataFusion 和 Polars 之類的框架的普及。結合像 Substrait 之類的項目,這些查詢執行組件的商品化意味著未來的五年內,所有的 OLAP DBMS 將在性能上大致持平。

與其完全從頭開始構建一個新的 DBMS,或者是 hard fork 一個現有系統(像 Firebolt fork ClickHouse),比如使用一個像 Velox 這樣的可擴展框架。也就是說,每個 DBMS 都將具備同 Snowflake 十年前獨有的相同向量化執行能力。尤其是在云上,存儲層對每個人來說都是相同的(比如:亞馬遜控制的 EBS/S3),那么區分 DBMS 產品的關鍵因素將會是那些難以量化的事物,如 UI/UX 設計和查詢優化。

數據庫先驅的逝世

在 2022 年 7 月有一個讓人難過的消息,Martin Kersten 逝世了。Martin 是 CWI 的研究員,他是多個頗具影響力的數據庫項目的引領者,包括 1990 年代最早的分布式內存 DBMS(PRISMA/DB)和 2000 年代最早的列式 OLAP DBMS(MonetDB)。因為他在數據庫方面的貢獻,Martin 在 2020 年因被荷蘭政府授予皇家騎士稱號。

MonetDB 的代碼庫還是其他幾個 OLAP 系統項目的跳板。在 2000 年代末,Peter Boncz 和 Marcin ?ukowski fork MonetDB 它開發 MonetDB/X100,后來商業化為 Vectorwise(現在叫 Actian Vector)。Marcin 后來離開,聯合他人共同創立的 Snowflake,采用了原來他在 MonetDB 代碼上開發的許多技術點。最近,Hannes Mühleisen 搞了個 MonetDB 的嵌入式版本 MonetDBLite,后來他又重寫了項目,變成了現在的 DuckDB。

Martin 對現代數據庫系統的貢獻如此重大,以至于你如果使用任何現代分析型 DBMS(像是 Snowflake、Redshift、BigQuery、ClickHouse),你就是在享受 Martin 和他的學生在過去 30 年開發的眾多進步成果。

Andy 說:這是一個讓人難過的消息

我知道,相比 Mike Stonebraker(研究數據庫的計算機科學家,2014 年圖靈獎獲得者)這樣的人,數據庫研究圈外人可能知曉 Martin 沒那么多。我總把 Martin 看作是 Stonebraker 的歐洲版:他們都是多產的數據庫研究者,高個子、瘦弱、戴眼鏡,年齡相仿。但 Martin 并不是像 Nintendo Smitch 山寨 Nintendo Switch 那樣的山寨貨。

除了研究,在業余時間 Martin 也樂于同他人討論數據庫架構。我最后一次見 Martin 是在新冠爆發之前的 2019 年。我們就他為什么認為在 MonetDB 中使用 MMAP 是正確的選擇爭論了一個小時;他聲稱因為 MonetDB 專注只讀的 OLAP 工作負載,所以 MMAP 就夠好了。其實有件事很對不住 Martin,就是那些他應對過的在 YouTube 觀看我的數據庫課程后,給他發郵件詢問為什么 MonetDB 做出了我聲稱的較差設計的學生。

我建議你看下 Martin 在 2021 年 CMU-DB 研討會的壓軸演講。我和 Martin 承諾在他的演講中,我不會用 MonetDB 采納 MMAP 這點讓他分心。為了表示誠意,在這個視頻的前面 60 秒,我找了個荷蘭人錄制一個仿皇家的 Martin 短片介紹。

數據庫的巨額財富和民主

2022 年 5 月,《華盛頓郵報》報道說,Oracle 創始人和帆船愛好者 Larry Ellison 參加了 2020 年 11 月剛結束的選舉的電話會議,與會的有美國總統和其他保守派領袖。

電話會議集中討論了總統的盟友和活動分子可能采取的、來推翻總統選舉的結果的不同策略。正如《郵報》文中指出的那樣,目前尚不清楚為什么政府要讓 Larry 參與通話。一種猜測是,鑒于 Larry 顯而易見的強大技術背景,他可能很適合評估外國勢力利用某種方式來使用衛星技術來遠程操控美國選舉的說法是否可行。

Andy 說:Larry 干得漂亮

相信 Larry 和我都厭倦了人們對他支持美國右翼的離譜言論,甚至有人說這個電話是 Larry 做過的最糟糕的事。這不是真的,要知道這樣的新聞和社交媒體言論會讓 Larry 感到難過。

我向你保證,Larry 只是試圖用他作為世界第七富有的人的巨額財富來幫助他的國家。他參與這次通話是值得欽佩的,應該受到贊揚。自由和公正的選舉不是一件小事,不像劃船比賽,有時候只要你能贏,搞點小動作也沒關系。Larry 用他的錢做了一些被人忽視的偉大事情,比如:為了活得更久,在抗衰老研究上花費了 3.7 億美元;投資了 10 億美元幫助 Elon Musk 運營(?,那時候推特尚未被收購)推特。所以,我支持 Larry 這個行為。

2021 年數據庫回顧:性能之爭烽煙起,不如低調搞大錢

英文原文:https://ottertune.com/blog/2021-databases-retrospective

對數據庫行業來說,2021 年是瘋狂的一年,數據庫的新人“超越”了老牌廠商,數據庫廠商們為基準測試的數字爭論不休,還有各種引人注目的融資輪次。好消息是不少,但是收購、破產或重組之類的不好消息,也讓一些數據庫消失在數據庫市場。

PostgreSQL 的主導地位

開發者的認知已經發生轉變:PostgreSQL 成為香餑餑,已是新應用程序的首選。它穩定可靠,功能豐富,且在不斷增加新功能。2010 年,PostgreSQL 開發團隊采取了更積極的發布計劃,每年發布一個新的主要版本,這里要感謝下 Tomas Vondra。順便提一嘴,PostgreSQL 是開源的。

如今,對很多系統來說,PostgreSQL 的兼容性是一個顯著亮點。這種兼容性是通過支持 PostgreSQL 的 SQL 方言(如 DuckDB)、線協議(如 QuestDB、HyPer)或整個前端(如 Amazon Aurora、YugaByte、Yellowbrick)來實現的。大公司們也跟進了這個趨勢。谷歌在 10 月宣布在 Cloud Spanner 中增加了 PostgreSQL 兼容性。還是在 10 月,亞馬遜宣布了 Babelfish 功能,將 SQL Server 查詢轉換成 Aurora PostgreSQL 查詢。

數據庫受歡迎程度的一個衡量標準是 DB-Engine 排名。這個排名不是很客觀,得分帶有一點程度的主觀性,但就排名前十的系統結果還是合理的。截至 2021 年 12 月,DB-Engine 排名顯示,雖然 PostgreSQL 仍然是第四大流行數據庫(僅次于 Oracle、MySQL 和 MSSQL),但它在過去的一年里縮小了與 MSSQL 的差距。

另一個值得考慮的趨勢是 PostgreSQL 在線上社區的提及頻率。它給我們提供了人們在數據庫中討論什么的信息。我下載了 Reddit 上 2021 年在數據庫相關的所有評論,并計算了數據庫名稱的出現頻率,自然 PostgreSQL 在其中。我又交叉參考數據庫的列表,合并了縮寫(例如,Postgres → PostgreSQL,Mongo → MongoDB,ES → Elasticsearch),最后整理出了前 10 個提及最多的 DBMS:

     dbms      | cnt 
---------------+-----PostgreSQL    | 656MySQL         | 317MongoDB       | 266Oracle        | 222SQLite        | 213Redis         |  88Elasticsearch |  70Snowflake     |  52DGraph        |  46Neo4j         |  42

自然,這個排名還是不科學,因為我沒有對評論進行情感分析。但它清楚地顯示了,在過去的一年里,人們提到 Postgres 的次數遠超過其他數據系統。經常有開發者發帖詢問新應用該用什么 DBMS,線上社區的回應幾乎都是 Postgres。

Andy 說:PostgreSQL 只會在未來幾年變得更好

首先,關系數據庫系統成為新應用的首選肯定是一件好事。這表明 Ted Codd 在 1970 年代提出的關系模型的持久影響力。其次,PostgreSQL 是一個很棒的數據庫系統。同所有 DBMS 一樣,它有已知的問題和不足之處。但是有著如此高的關注,PostgreSQL 只會在未來幾年變得更好。

基準測試之爭

不同的數據庫廠商之間在基準測試結果爭議,今年并不少見。數據庫廠商們試圖證明他們的系統比競爭對手的更快,這種做法可以追溯到 1980 年代末。這也是為什么 TPC(交易處理性能委員會)成立的原因,希望能提供一個中立平臺來監管性能比較。但是,隨著 TPC 在過去十年的影響力和普及度的減弱,數據庫們再次處于數據庫基準測試戰爭的漩渦中。

讓人印象深刻的有三場基準測試爭論。

Databricks vs Snowflake

Databricks 宣布他們新的 Photon SQL 引擎在 100TB TPC-DS 測試中創造了新的世界紀錄。Snowflake 回擊說,他們的數據庫速度是 Databricks 的兩倍,并且 Databricks 運行 Snowflake 的方式不正確。Databricks 反駁道,他們的 SQL 引擎在執行和價格、性能方面都優于 Snowflake。

Rockset vs Apache Druid vs ClickHouse

ClickHouse 強勢聲明,與 Druid 和 Rockset 相比,CK 的成本效率方面更出色。但沒那么簡單:Imply 立即用 Druid 的新版本進行了測試,并聲稱 Druid 獲得了性能勝利。Rockset 也加入了討論,說它的性能在實時分析上比其他兩個要好。

ClickHouse vs TimescaleDB

感受數據庫市場的風向變化,采取老虎式行事風格的 Timescale 加入了性能戰爭。他們發布了自己的基準測試結果,并借此機會指出 ClickHouse 技術的弱點。在 Hacker News 上,第三方基準測試的相關討論變得非常火爆。

Andy 說:性能之爭不值當

在先前的數據庫基準測試中,已經有太多血淋淋的故事(參考:https://www.percona.com/blog/is-voltdb-really-as-scalable-as-they-claim/ 、https://www.youtube.com/watch?v=-TIUGC4X2q8&t=418s),我也曾是其中一員。但在性能競爭的路上,我失去了太多:不只是朋友,還有女朋友。隨著時間的流逝,現在我覺得性能之爭不值得。

現如今客觀地比較數據系統更加困難,因為云數據庫管理系統有很多可移動的部件和可調選項,往往很難確定性能差異的真正原因。真實的應用程序也不僅僅是一遍又一遍地運行相同的查詢。在提取、轉換和清洗數據時的用戶體驗,和原始性能數字一樣重要。正如我在這篇關于 Databricks 基準測試結果的文章中告訴記者的那樣,只有老年人才關心官方的 TPC 數字。

大數據搞大錢

自 2020 年下半年以來,價值至少 1 億美元的風險投資輪次數量一直在穩步增加。2020 年有 327 筆這樣的大宗交易,幾乎占總風險資本交易量的一半。截至 2021 年 1 月,價值 1 億美元或以上的風險投資回合已經超過 100 輪。

2021 年,大量投資資金涌向數據庫公司。在運營數據庫方面,CockroachDB 以 1.6 億美元的融資輪次領跑籌資排行榜,在 2021 年 12 月它再次融了 2.78 億美元。Yugabyte 完成了 1.88 億美元的 C 輪融資。PlanetScale 為他們的 Vitess 托管版融到了 2,000 萬美元的 B 輪。相對較老的 NoSQL 簇擁者 DataStax 為他們的 Cassandra 實現了 3,760 萬美元的風險融資。

盡管這些融資金額都很驚人,分析型數據庫市場的競爭更為激烈。TileDB 在 2021 年 9 月籌集了一筆未披露金額的資金。Vectorized.io 為他們與 Kafka 兼容的流處理平臺籌到 1,500 萬美元。StarTree 不再低調,宣布了用來打造商業化 Apache Pinot 的 2,400 萬美元融資。有著附加功能的物化視圖的 DBMS Materialize 宣布他們在 C 輪獲得了 6,000 萬美元。Imply 為基于 Apache Druid 的數據庫服務籌集了 7,000萬美元。SingleStore 在 2021 年 9 月籌集了 8,000 萬美元,使他們朝著 IPO 邁近了一大步。

2021 年年初,Starburst Data 為其 Trino 系統(前身為 PrestoSQL)籌集了 1 億美元。Firebolt 是另一家不再低調 DBMS 初創公司,他們發布了基于 ClickHouse 分支的云數倉的 1.27 億美元融資新聞。一家新公司,ClickHouse, Inc.,融了可怕的 2.5 億美元,來以 ClickHouse 為主建立新公司,以及從 Yandex 獲得使用 ClickHouse 名稱的權利。

不過 2023 年數據庫領域融資的最大贏家顯然是 Databricks,他們在 2021 年 8 月籌集了高達 16 億美元的資金,遙遙領先其他數據庫。

Andy 說:我們正處在數據庫的黃金時代

我們正處在數據庫的黃金時代,有很多優秀的數據庫可以選擇。投資者們正在尋覓下一個像 Snowflake 一樣可以 IPO 的數據庫初創公司。2021 年的融資金額比以往數據庫初創公司都要大。例如,Snowflake 直到成立五年后的 D 輪融資才有超過 1 億美元的單輪融資。Starburst 在成立不到三年的時間內就完成了 1 億美元的融資。現在融資涉及許多因素,比如:Starburst 團隊從 TeraData 獨立出來之前已經在 Presto 工作多年,我覺得如今數據庫的投入資金更多了。

消逝的數據庫們

遺憾的是,2021 年我們也“送別”了一些數據庫。

ServiceNow 收購了 Swarm64

該公司最初是開發在 PostgreSQL 上運行分析工作負載的 FPGA 加速器。后來,他們轉向僅使用擴展作為 PostgreSQL 的軟件加速器。但他們未能獲得關注,尤其是與其他資金充裕的云數倉相比。在 ServiceNow 收購之后,目前仍然沒有消息表明 Swarm64 產品是否會繼續維護。

Splice Machine 破產了

Splice 推出了一種混合型(HTAP)DBMS,它結合了 HBase 和 Spark SQL,前者用來處理操作性工作負載,后來用來分析數據。后來,他們推動提供一個用于操作性/實時機器學習應用的平臺。但是,由于專業的 OLTP 和 OLAP 系統在市場的主導地位,all-in-one 的混合系統在市場并沒有取得什么進展。

私募公司收購了 Cloudera

在 2010 年到 2020 年這十年的后期,技術重心從 MapReduce 和 Hadoop 技術轉移之后,Cloudera 同這些技術一樣在云數倉市場上失去了競爭力。盡管項目依舊在開發且在發布新版本,Impala 和 Kudu 的初創團隊的大部分人都已經離職。股價也跌破了 2018 年 IPO 的初始價。新投資者能否扭轉公司局面,還有待觀察。

Andy 說:2022 年可能會有更多的數據庫公司倒閉

看到數據庫項目或公司倒閉的新聞,總是讓人唏噓,但這也是數據庫行業的殘酷現實。開源可能有利于 DBMS 比開發它的廠商活得更久,但事實并非總是如此。由于數據庫的復雜性,它需要全職人員持續地修復 bug 和新增功能。將一個只有軀殼(defunct)的 DBMS 的源碼權和控制權轉移到像 Apache 或是 CNCF 這樣的開源軟件基金會,并不代表這個項目就會神奇般地復蘇。

例如,RethinkDB 在公司破產后捐給了 Linux 基金會,從 GitHub 上的跡象來看,這個項目已經處于停滯狀態(很少有提交,PR 也沒有合并)。無獨有偶,另一個例子是 DeepDB:公司失敗后,他們為代碼創建了自己的非營利基金會,但從來沒有人在上面工作。我預測,2022 年將有更多無法與主流云廠商、上面提到的那些資金充足的初創公司競爭的數據庫公司倒閉。

堅持的回報

近年來,Oracle 的聯合創始人 Larry Ellison 運氣不是很好。早在 2015 年,他還是世界上第五富有的人。但世事難料,在 2018 年的億萬富翁排名中他跌到了第十位。

但這一切在 2021 年 12 月發生了轉變,當 Larry 超過谷歌的聯合創始人 Larry Page 和 Sergey Brin,再次登上世界第五富有的位置。在 2021 年 12 月的某天,在宣布公司季度盈利超過預期時,Oracle 股票達到過去 20 年單日第二高漲幅,Larry 也在一天之內賺了 160 億美元。新聞媒體認為,這歸功于投資者對 Oracle 成功轉向云服務十分有信心。

Andy 說:為 Larry 高興

Larry 和我是舊相識,他重返財富榜第五位無疑是一個振奮人心的新聞。當他運氣不好,僅僅是世界上第十富有的人時,他可能有些憂郁。但是我很高興看到他能夠從低谷中走出來,回到他應有的排位。


以上為 Andy 教授三年來的數據庫 review。如果你對數據庫的發展有自己的看法,記得留言喲~

參考資料

  • 2023 年數據庫回顧原文:https://ottertune.com/blog/2023-databases-retrospective
  • 2022 年數據庫回顧原文:https://ottertune.com/blog/2022-databases-retrospective
  • 2021 年回顧:https://ottertune.com/blog/2021-databases-retrospective

翻譯:GPT-4
校對:清蒸、木鳥


感謝你的閱讀 (///▽///)

關于 NebulaGraph:它是一款開源的分布式圖數據庫,自 2019 年開源以來,先后被美團、京東、360 數科、快手、眾安金融等多家企業采用,應用在智能推薦、金融風控、數據治理、知識圖譜等等應用場景。(з)-☆ GitHub 地址:https://github.com/vesoft-inc/nebula

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711269.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711269.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711269.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vuepress項目側邊欄菜單配置使用

第一種菜單配置,自定義菜單名稱 {text: 菜單名稱,// 是否折疊collapsible: true,children: [{text: "自定義md菜單名稱",sidebarDepth: 2,link: "/xxx/aa.md",children: [],}],},第二種菜單配置 標題自動生成菜單,使用需要搭配sideb…

c語言求矩陣的局部極大值

給定M行N列的整數矩陣A,如果A的非邊界元素A[i][j]大于相鄰的上下左右4個元素,那么就稱元素A[i][j]是矩陣的局部極大值。本題要求給定矩陣的全部局部極大值及其所在的位置。 輸入格式: 輸入在第一行中給出矩陣A的行數M和列數N(3≤…

C語言創建結構體時 什么時候需要C++引用 什么情況下下不需要引用

在C語言中,結構體通常通過傳遞指針來實現對結構體的修改。當在函數中需要修改結構體的內容,并且希望這些修改在調用函數后仍然保持,可以考慮使用指針。引用是C中的一種特殊機制,用于更方便地傳遞參數,但在純粹的C語言中…

《springcloud alibaba》 三 sentinel流量控制

目錄 sentinel準備流控規則 qpspom.xmlapllication.yml啟動類controller查看結果流控提示不太友好 流控規則 線程數全局異常處理pom.xmlapplication.yml啟動類實體類controller類異常類測試 關聯流控模式關聯jmeter 鏈路servicecontroller代碼調整 流控效果Warm UP 熔斷降級規則…

[Flutter]用16進制顏色字符串初始化Color

使用: // 使用Color的靜態方法 fromARGB() 來創建顏色對象。透明度為 255(完全不透明) Color a Color.fromARGB(255, 42, 35, 72); // 使用八位的十六進制數來表示顏色,其中前兩位表示透明度,后六位表示紅色、綠色和…

本科畢業設計:計及并網依賴性的分布式能源系統優化研究。(C語言實現)(內包含NSGA II優化算法)(二)

目錄 前言 1、sofc函數 2、光伏板函數 3、集熱場函數 4、sofc電跟隨策略函數 5、二分法找sofc運行點函數 6、目標函數:成本 7、目標函數:二氧化碳排放量 8、目標函數:并網依賴性 前言 本篇文章介紹的是我的畢業設計,我將C…

JavaScript DOM操作筆記記錄回憶總結

一、什么是DOM? 1、通過 HTML DOM,可訪問 JavaScript HTML 文檔的所有元素。 2、當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model) 二、操作DOM 1、在操作DOM之前,我們需要先獲取到…

DOM 創建節點、添加節點和刪除節點

創建元素節點 document.createElement(‘標簽名’) 創建文本節點document.createTextNode ( 內容 ) 根據傳入的標簽名創建出一個空的元素對象創建出來的默認不顯示,要成為別人的子元素才能顯示,所以要結合appendChild使用 添加節點(后面&am…

團體程序設計天梯賽 L2-001 緊急救援(迪杰斯特拉算法)

L2-001 緊急救援 分數 25 作為一個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連接城市的快速道路。每個城市的救援隊數量和每一條連接兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助電話給你的時候&…

python筆記_運算符

A,算術運算符 運算符描述舉例結果加011-減2-11*乘1*11/除1/11%取模(取余)6%51(余1)//除,且向下取整 3//2 -1//2 1 -1 **返回x的y次冪2**01 取模運算公式 a % b a - a // b * b print(-10%…

【復現】藍凌OA SQL注入漏洞_61

目錄 一.概述 二 .漏洞影響 三.漏洞復現 1. 漏洞一: 四.修復建議: 五. 搜索語法: 六.免責聲明 一.概述 藍凌智能OA是由深圳市藍凌軟件股份有限公司開發,是一款針對中小企業的移動化智能辦公產品,融合了釘釘數字…

C習題002:澡堂洗澡【僅供參考】

問題 輸入樣例 在這里給出一組輸入。例如&#xff1a; 2 5 1 3 3 2 3 3 輸出樣例 在這里給出相應的輸出。例如&#xff1a; No代碼長度限制 16 KB 時間限制 400 ms 內存限制 64 MB 棧限制 8192 KB 代碼 #include<stdio.h> int main() {int N,W,s,t,p;int arr_s[…

遞歸算法題練習(數的計算、帶備忘錄的遞歸、計算函數值)

遞歸的介紹 概念:遞歸是指函數直接或間接調用自身的過程。 解釋遞歸的兩個關鍵要素: 基本情況(遞歸終止條件):遞歸函數中的一個條件&#xff0c;當滿足該條件時&#xff0c;遞歸終止&#xff0c;避免無限遞歸。可以理解為直接解決極小規模問題的方法。遞歸表達式(遞歸調用):遞…

k8s 中 namspace deployment pod services 之間的關系

在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;Namespace&#xff08;命名空間&#xff09;是一種用于將集群內部資源劃分為不同邏輯組的機制。Deployment、Pod和Service是Kubernetes中常見的資源&#xff0c;它們之間的關系如下&#xff1a; Namespace&#xff08;命…

網絡安全攻防演練:企業藍隊建設指南

第一章 概述 背景 網絡實戰攻防演習是當前國家、重要機關、企業組織用來檢驗網絡安全防御能力的重要手段之一,是對當下關鍵信息系統基礎設施網絡安全保護工作的重要組成部分。網絡攻防實戰演習通常是以實際運行的信息系統為攻擊目標,通過在一定規則限定下的實戰攻防對抗,最…

認識通訊協議——TCP/IP、UDP協議的區別,HTTP通訊協議的理解

目錄 引出認識通訊協議1、TCP/IP協議&#xff0c;UDP協議的區別2、HTTP通訊協議的講解 Redis沖沖沖——緩存三兄弟&#xff1a;緩存擊穿、穿透、雪崩緩存擊穿緩存穿透緩存雪崩 總結 引出 認識通訊協議——TCP/IP、UDP協議的區別&#xff0c;HTTP通訊協議的理解 認識通訊協議 …

第九屆數學與人工智能國際會議 (ICMAI 2024)即將召開!

2024年第九屆數學與人工智能國際會議將于2024年5月10-12日在中國北京召開。本屆會議由北京工業大學主辦&#xff0c;旨在促進應用邏輯、算法與復雜性研究&#xff0c;使用數學的方法促進人工智能理論與應用發展&#xff0c;加深學術交流與合作。我們熱忱歡迎從事相關技術研究的…

開源WIFI繼電器之使用說明

1、設備說明 1.1外觀 1.2供電 100~240V交流輸入&#xff0c;Lin接火線&#xff0c;Nin接零線。 1.3連接負載 輸出信號為繼電器無源信號&#xff0c;用于信號的導通和斷開控制&#xff0c;最大可通過10A負載電流&#xff0c;COM為繼電器公共端&#xff0c;NO為繼電器常開端&a…

藍牙耳機推薦高性價比,五大超好用藍牙耳機推薦,趕緊上車!

?隨著技術的不斷進步&#xff0c;藍牙耳機的性能和配置也在不斷提升&#xff0c;各大品牌都在推出具有各種特色的產品。其中&#xff0c;音質是很多消費者最為關注的一點。因此&#xff0c;我在這里為大家推薦幾款音質表現還不錯的幾款藍牙耳機&#xff0c;供大家參考。 一、挑…

SpringAOP

1. SpringAOP的基本概念 SpringAOP&#xff08;Aspect-Oriented Programming&#xff09;即面向切面編程&#xff0c;是Spring框架體系中非常重要的功能模塊之一。AOP與OOP&#xff08;面向對象編程&#xff09;相輔相成&#xff0c;提供了一種與OOP不同的抽象軟件結構的視圖。…