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

本文收集了卡內基梅隆大學計算機科學系數據庫學副教授 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_GRAPH
   VERTEX TABLES (
      PEOPLE KEY (ID) PROPERTIES (ID, NAME),
      BANDS KEY (ID) PROPERTIES (ID, NAME)
   )
   EDGE TABLES (
      MEMBEROF
      KEY (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_members
   FROM graph_table ( BANDS_GRAPH
      MATCH (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    | 656
 MySQL         | 317
 MongoDB       | 266
 Oracle        | 222
 SQLite        | 213
 Redis         |  88
 Elasticsearch |  70
 Snowflake     |  52
 DGraph        |  46
 Neo4j         |  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。如果你對數據庫的發展有自己的看法,記得留言喲~

參考資料

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


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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章