操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    作者|真梓(微信ID:315159284)

    Ray(微信ID:raylazy)

    編輯|石亞瓊

    把冷板凳坐熱的不僅有國內的半導體企業,還有一眾國產數據庫廠商。36氪不久前統計,在2020-2021年獲得融資的國產數據庫公司超過40家。僅2021年一年,獲得新一輪融資的企業就多達20家。

    這股風潮一直延續到2022年。近期,36氪分別報道了云原生實時數倉廠商「飛輪科技」天使輪和天使+輪獲超3億元融資,以及分布式數據庫和AI PaaS平臺「天云數據」數億元D輪融資的消息。值得一提的是,拿下超3億元融資的「飛輪科技」,成立時間尚不足半年,不得不說是一個十分亮眼的融資成績。

    更多被風投布局的項目還隱匿在水下。36氪了解到,即使在過冬論調四起的當下,仍有一些大廠光環加身的創業公司,大概率將以超出想象的價格完成新一輪融資。

    種種跡象表明,這可能是國產數據庫里程碑式的時代。至少過去,中國數據庫領域從未發生過這種連年持續的融資勝景。

    作為一種對數據進行增刪改查和分析的基礎軟件,數據庫起源于美國,發揚于歐美,國產數據庫的應用長期處于追隨者地位。一個核心節點是,自上世紀80年代后IBM、Oracle等海外關系型數據庫廠商紛紛入華,拿下金融、電信等領域核心客戶后,國內關系型數據庫市場(尤其是OLTP)幾乎被外企壟斷。也正因起步晚,又錯失這一主流戰場,長期以來國內數據庫企業寥寥可數。直到2010年,叫得出名字的公司只有兩位數。

    反觀現在,在公開盤點中,已有超200個國產數據庫浮出水面。這其中不僅有歷史較久的關系型數據庫,還包括圖數據庫、時序數據庫等新型數據庫。在每個細分領域,都有被VC高價追逐的早期項目。

    若順著半導體爆火的思路深究,國內創投風向的轉換或被視作這一現象出現的動因。但更本質的邏輯是,一方面,中國在過去10年間深入參與了移動浪潮,在電商、游戲、直播等場景中打磨了IT能力;另一方面,自1999年第一批國產數據庫企業陸續成立開始,各廠商已開啟長達20年的實踐之路,相對減少了與國際對手的能力差距。

    所以,市場需求的迭代,和廠商們持續積累的產品能力,才是改變這場游戲規則的主因。在此基礎上,國產化替代和全球化開放的機會,又讓國產玩家們走近舞臺中央。

    天時地利具備,這場發起源于2020年、綿延至2022年的國產數據庫投資熱,其實是技術演進和需求迭代下的必然結果。而投資趨勢更加硬核,成為這場必然的加速器。

    為更深入地觀察這場變革,本文將從數據庫的技術演進角度入手,探討國產數據庫的成長動因,同時基于新鮮一手信息和歷史資料,剖析當下國產數據庫面臨的機遇與挑戰。具體而言,我們將重點解釋以下問題:

    1.多種類型數據庫的演進邏輯和分類維度

    2.當下數據庫領域出現的技術規律

    3.國內外數據庫廠商成長環境的差異

    4.當下數據庫廠商的不同商業路徑,及分野原因

    5.選擇不同商業化路徑的數據庫廠商,分別會面臨怎樣的挑戰

    在文末,我們也將對相關廠商進行分類,為讀者展示更全面的國產數據庫圖譜,以期幫助讀者進一步了解行業,理解當下的行業全景。

    一. 產品:分類維度多種多樣,技術規律逐漸趨同

    數據庫形形色色:歷史演進下的必然

    作為一種歷史悠久的基礎軟件,數據庫的產生離不開飛速變化的數據生態。過去近60年間,隨著信息化、數字化、智能化浪潮一次次襲來,數據的規模和使用方式都發生了巨大變化。

    據國際數據公司(IDC)的監測,近幾年全球大數據儲量的增速每年保持在40%左右,2016年增長率甚至高達到87.21%。具體數據上,2016年-2019年四年間全球大數據儲量分別為16.1ZB、21.6ZB、33.0ZB、41ZB,儲量迅速上升。

    當數據量飛速上漲,各種基于大數據的應用層出不窮,承載這一切想象力的基礎軟件——數據庫,也從早期的關系型,演化出包括圖數據庫、時序數據庫、流式數據庫、內存數據庫、向量數據庫、數據湖等在內的多種功能形態。產品架構也從單機向分布式、云原生等形態擴展。一個證明,如今DB- Engines上覆蓋的數據庫已有約400個。

    看著紛繁復雜的產品形態,很難想象,最初數據庫想解決的問題,其實非常簡單。

    上世紀六十年代,IBM等先驅開發了最早用于管理數據的系統,“數據庫”這個名字就此出現。當時,數據庫主要用來管理如倉庫存貨清單、圖書館借閱記錄一類信息,要解決的兩大核心問題分別是信息的存儲與查詢。

    比如,當圖書館中一本書被借走,對應的借閱信息能被記錄并寫入數據庫,讀者可基于數據庫內的信息直接查詢這本書是否已歸還。人們發現把數據拆成不同的表單,并將其中的聯系對應,就能更高效管理信息。這種數據庫也被稱為關系型數據庫,是最傳統也最常見的數據庫種類。

    后來,隨著數據種類的變化,人們又逐漸開發了適應不同場景的新型數據庫,如專注于文檔存儲的文檔型數據庫,記錄傳感器每時每秒產生的數據的時序型數據庫等。

    而隨著數據量的增大,一臺機器已無法滿足數據的存儲與處理要求,因而出現了新的數據庫架構,如采用多臺機器的分布式數據庫、基于內存的內存型數據庫。

    到云計算時代,又出現了依托于云平臺的云原生數據庫,讓數據庫也能享受云計算的彈性與便捷。從管理小小的一間圖書館,到互聯網時代的大數據分析,隨著數據量的擴大與數據類型的增多,針對不同場景、采用不同架構的數據庫種類也越來越多。

    一個基本事實是,當前全世界的數據庫產品至少多達數百種。而作為一種對數據進行查詢、存儲、修改和分析的軟件,由于討論語境的側重點不同,數據庫也存在多種不同分類方式,每種分類各有側重。

    所以,綜合技術演進、用戶存儲查詢的數據特征、數據規模,以及行業認可度等維度,我們將從數據格式、擴展能力、分析能力以及使用場景四個角度對數據庫進行分類。

    數據庫分類維度

    根據數據格式分類:數據格式通常被分類為結構化(structured)數據和非結構化(unstructured)數據,其中非結構化數據又包括文檔型(document)數據以及鍵值對(key-value)等多種類型。

    在數據庫領域中,最常見的是結構化的數據,這些數據會有固定的格式,如網購的時候,一般會有訂單號、用戶 ID、商家 ID 等信息,對于不同的網購交易來說,每筆交易信息的格式都一樣,因此用戶可以事先定義好數據的格式(schema),此時通常會使用關系型(relational)數據庫來進行存儲。有些數據更側重文本信息,比如微博、博客,有大段文字信息,與之對應的就是文檔型(document)數據庫。有些數據則是簡單的鍵值對(key-value),例如用戶的 ID 與頭像,通常會有一一對應的關系,這時候可以在鍵值對型的數據庫中存儲這些信息。

    根據擴展能力分類:數據庫可分為單機型、分布式型以及云原生型。單機型數據庫通常只在一臺機器上運行,因而維護起來比較簡單,但擴展能力有限,比如最常被用作個人博客后端的數據庫 MySQL,足以勝任幾百篇博客的備份存儲,以及一天幾千次的訪問量;分布式數據庫一般被部署在多臺機器組成的集群中,可以在一臺或多臺機器損壞的時候,通過多臺機器之間的備份機制,保證業務不被干擾;云原生數據庫則被部署在云端,如阿里云或者 AWS 上,由數據庫廠家進行機器的維護管理,用戶只需要按讀取次數和存儲空間的大小進行付費。

    根據分析能力分類:數據庫有 OLTP、OLAP 和 HTAP 三大類。OLTP 類數據庫通常用來支持在線交易,如網購時,每筆新的訂單都對應一條新的數據記錄,OLTP 類數據庫需要在極短的時間內,將這條新的記錄存儲下來;OLAP 類數據庫則更多的對應離線數據分析,如分析某個商家當月的銷售總額時,需要掃描當月所有訂單并把它們的金融累加起來,這時候需要讀取多條記錄,但用戶通常可以等待幾分鐘到幾小時;HTAP 型數據庫則同時支持 OLTP 和 OLAP 兩種類型的操作,來進行實時的數據監控,比如說當檢測到某一瞬間訂單量突然下降時,HTAP 型數據庫可以提醒用戶對系統進行檢查并及時排除故障。

    根據使用場景分類:除了以上提到的幾種常見的數據格式,一些特殊的使用場景下用戶會使用專門的數據庫。對于物聯網設備每時每刻都在產生的信息,時序數據庫會特意根據數據產生的時間來組織底層存儲結構,因而更加高效;圖數據庫更適用于可以抽象為點和線的信息,比如銀行的交易流水,每個賬戶可以看作一個點,兩個賬戶之間的轉賬可以當作一條邊,使用圖數據庫能更快地追溯錢款的走向;此外,常見的場景還有文本檢索、流式數據分析、MapReduce 分析等,這些相應的大數據工具,也可以看作是廣義的數據庫擴展。

    市面上的數據庫公司都有自己的側重,不同公司之間的業務重點不同,也會存在重疊,因此在多個維度下,一個特定的數據庫通常會被分入多個不同的類別,比如 MySQL,既是結構化數據庫,又是單機型數據庫以及 OLTP 型數據庫。

    開源、分布式、分析能力被看重,技術規律逐步趨同

    數據庫種類繁多已經是不爭事實。不過從更宏觀的產業迭代角度,數據庫領域的技術演進,已經隨著需求變遷而產生一定共識。在這一層面,通過查閱資料并盤點新興的數十家數據庫公司,我們發現在全球范圍內,數據庫領域已經產生如下技術趨勢:

    代碼開源成為主流

    當前,開源已是全球議題。多家公司都選擇將核心代碼開源來獲取用戶,擴展功能閉源來產生利潤。選擇開源并與社區共同開發數據庫內核的有國外的PostgreSQL、MongoDB與CockroachDB,國內的TiDB等。這樣做的好處是降低用戶嘗試的成本,畢竟對于開源代碼,用戶可以自己免費編譯、部署與試用。同時,用戶也可以根據自己的需要去直接調整源代碼,使數據庫更切近自身需求。此外,來自開源社區的愛好者們也可以貢獻自己的代碼,討論相關功能,并可以從源代碼的層面去解決用戶遇到的疑難雜癥。再者,開源也被不少中小公司視作獲得客戶信任的一種方式。

    不過,關于開源和商業化之間的爭論也從未停止。于是,對于一些進階功能,商業公司可能會選擇閉源,比如MongoDB的企業級數據保護功能是閉源并收費的。而部分云數據庫則選擇始終閉源,如Snowflake,畢竟大部分用戶并沒有能力在云端部署云原生的數據庫,而只能直接使用云數據庫的相關服務。

    分布式可以讓數據庫更強大

    在互聯網時代之前,單機型數據庫,如MySQL,可以滿足大多中小網站的數據需要,而銀行則使用中大型機,單價不菲。在如今的大數據時代,單機已經沒辦法滿足人們對數據庫的性能要求,而分布式技術,通過增加機器的數量,可以更經濟實惠的解決用戶的數據需求,近些年新興的數據庫公司也多采用分布式的架構,如TiDB、MongoDB等。開源與分布式同時也為用戶提供了更多選擇,用戶不再被局限在某兩三種數據庫的選擇題里,而運行這些數據庫的機器也可以是性能較好的家用機,不再是以前成本令人生畏的中大型機,更多的中小公司有能力選擇性能更為強大的分布式集群作為數據解決方案。

    但在某些實操場景中,分布式是否真的可以降本增效還存在爭議。有國內從業者指出,分布式和單機型數據庫適用的場景不一。具體而言,他認為由于分布式相較于單機會存在性能瓶頸,所以跨節點的大數據量查詢場景可能會存在瓶頸。另外,數據庫的投入需要衡量不同架構的硬件成本、運維成本等多個維度,采用何種架構才能降本增效是一個綜合性命題,不能一概而論。客戶應該依照自身業務需求綜合評判。

    對數據庫廠商而言,分布式帶來了新的架構變化

    大公司的數據庫通常會采取多層架構,像積木一樣,將數據庫分為分析層,事務層,存儲層等層次,不同的數據庫可能會使用同樣的底層代碼。如螞蟻集團的時序數據庫CeresDB就基于OceanBase 分布式存儲引擎底座。這樣做的好處是提高了代碼的使用率,減少了重復勞動,同時,數據庫的各個層次都可以交由專門的團隊負責,提高工程師的專注度。此外,新的架構也帶來了新的挑戰,如在單機型數據庫中,數據的存儲與計算天然就在同一臺機器中進行,而對于分布式和云原生數據庫來說,則需要想辦法進行存算分離,以便于存儲層和計算層可以獨自擴展,有些用戶可能需要更多的存儲空間,其它用戶則可能需要更強的計算能力,這樣大家可以各取所需。

    數據庫即服務讓產品使用越來越簡單

    在最近的三十年里,對用戶來言,數據庫從最初需要付費購買使用許可的軟件,變成了可以自己編譯運行的開源代碼,再變成需要自己采購多臺機器組成機群來調度使用的分布式系統,最后又成為只需要按數據的讀取次數付費的云數據庫服務(即Database-as-a-service)。

    云原生數據庫讓用戶省去了數據庫集群維護、性能擴展的煩惱,也帶來了新的按讀取次數收費的模式:比如在微軟CosmosDB的serverless收費模式下,用戶并不知道微軟到底維護了多少臺機器,只需要關心自己對CosmosDB的讀取次數并以此付費,數據庫集群的擴展管理工作則由用戶交給微軟來統一調度負責,用戶則可以減少工程師團隊規模并降低宕機風險。

    費用與安全性方面,對大部分中小公司來說,使用大廠的服務也比自行維護數據庫集群更經濟可靠,畢竟大廠可以招聘成百上千的數據庫領域專家來專注提升數據庫服務。此外,云廠商的數據庫通常會與云廠商的主機有更密切的結合,用戶會更傾向于在某家云廠商進行一站式的采購,使用同一家云廠商的主機與數據庫。只是這樣用戶也加大了對云廠商的依賴,當云服務中斷的時候,用戶的業務通常也會受影響。

    云平臺使多地區的數據服務成為可能

    依托于云平臺,用戶可以在美國的東西海岸,或者中國的北京、深圳等地輕松建立多個數據中心,使用本地的數據中心來服務本地用戶,以此減少消息延遲并滿足數據本地化的合規要求,并且,用戶也可以在異地進行數據備份。而在云時代之前,這些多地操作需要很高的成本,因為這意味著要在不同地區部署多個機房,當時只有少數大廠才能做到。

    數據庫的分析能力越來越被看重

    傳統數據庫分為OLTP(在線交易型)與OLAP(在線分析型)兩大類型,而近些年HTAP(混合型)數據庫也更受歡迎,成為新的業界發展方向。這是因為在大數據時代,數據的分析價值越來越大,比如抖音等軟件,需要根據統計結果來提升自身推送服務的精準度,這就需要數據庫與機器學習等工具有更緊密的融合,也需要數據庫能更高效得存儲并查詢海量數據。此外,新興的數據使用場景也帶來了新興的數據庫細分市場,如文檔型數據庫多使用MongoDB存儲,物聯網數據則需要流式數據庫或者時序數據庫來實時存儲查詢,也帶來了新的創業機會。

    二.商業化:漫漫蟄伏期過后,國產數據庫打開新世界

    追隨者的前行

    產品力是科技公司的立身之本,商業化是公司綜合能力的"試金石"。但早前,由于技術源自國外、市場多被外企壟斷等因素,國內數據庫廠商一直帶著"追隨者"的標簽踽踽前行,商業想象力并不充足。

    不過近5~10年,情況發生了顯著變化。在墨天輪的盤點中,我們可以看到有超過200個國產數據庫已浮出水面,這其中不僅包括歷史較久的關系型數據庫,還包括圖數據庫、時序數據庫等新型數據庫。

    抽絲剝繭地去看,這種現象的出現,和國內數據庫行業的持續積累息息相關。

    其實在早前,中國數據庫學術研究的開展并不算晚。1977年,數據庫學組成立于安徽黃山會議,當時即定位于進行該領域的教學、科研等。但不可否認,國外產品在應用落地上的持續搶先,讓國內客戶首先采用了國外產品,也讓國產廠商在實踐中也多依賴于開源產品,從而錯失了自主產品的產業化機會。

    但在近20年里,由于新場景的出現和移動浪潮的興起,國產數據庫的實踐也多了起來。最典型的例子就是,互聯網廠商出于自身的業務訴求,而自行開展數據庫產品的打磨。

    也正在這些實踐中,國產數據庫的產品應用逐步和國際接軌,縮減了差距。

    前文提到,全球數據庫領域已經產生代碼開源、分布式架構、分析能力更被看重等技術趨勢。這些技術幾乎已形成全球共識,中國也不例外。

    比如,分布式系統的理念主要來自于Google于2003~2006年發布的三篇論文。在這段時間里,國內第一批數據庫公司,人大金倉、武漢達夢、南大通用相繼成立。曾有老牌國產數據庫高管告訴36氪,公司在10年前支持某大型央企的數據倉庫建設時,就被明確要求采用分布式技術。

    開源在國內的興起也值得一提。過去許久,開源在國內一直是“小眾運動”。但2021年,隨著PingCAP等公司更為人所知,再加上國內扶持基礎軟件生態的決心,開源也邁上新臺階。2021年,開源被寫入《“十四五”軟件和信息技術服務業發展規劃》,這被視作開源在國內取得的一項里程碑。順此趨勢,36氪也觀察到長期處于強監管要求下的金融領域,也在2021年開展了一系列開源軟件使用方式的探討。不過另一方面,年底Log4J 2安全漏洞的爆發,又讓開源軟件的安全性備受質疑。企業如何在開放中平衡安全,成為新的話題。

    不論是早期就被順利實踐的分布式趨勢,還是突如其來的開源熱潮,都意味著在過去20年間,國產數據庫廠商一直在關注國際趨勢,并積累了一定技術能力。再加上國產化、云生態帶來的新市場機會,時至當下,眾多國產數據庫迎來萬象更新的時代。

    以占據市場主流關系型數據庫為例,過去在中國乃至全球OLTP市場中亮相的常是外企,直到2015年左右才零星出現了幾家新興的國產廠商。但近期36氪觀察到,至少在不少廠商對外發布的信息里,OLTP產品的數量已經超出了預期(當然,其中不少是基于國外開源產品的迭代)。其中除卻新興廠商的面孔,也有老牌數據庫公司發布相關產品。

    另一方面,圖和時序等方向的國產廠商也不斷涌現。比如在圖數據庫中,當前我們觀察到的國產產品就有十余個。而且由于這些領域整體較新,國產數據庫廠商暫時還不需要挑戰完全具備壟斷優勢的巨頭。曾有國產圖數據庫廠商對外表示,當前全球范圍內的圖數據庫公司,不少都還走在完善產品的過程中。

    總的來說,國產數據庫百花齊放的表象背后,其實隱藏著更巨大的商機——當國內產業不再和國際脫軌,數據庫廠商們面前呈現出國際化和國產替代兩種商業路徑。

    國際化,還是國產替代?

    不可否認,當前國產數據庫的產品力還有提升空間。比如不久前曾有一些調研顯示,國內OLTP類數據庫在部分場景中(如數據量大、高并發、變化速度快)和Oracle等公司的產品依然存在差距。

    但值得肯定的是,如今這種商業路徑選擇權的出現,在過去漫長的蟄伏期里是難以想象的——畢竟只有滿足了技術基本不脫鉤的基本條件,全球化或者國產替代的機會才能擺在眼前。而在這個迄今為止,國內數據庫行業最好的時代中,當前國產廠商們面臨的“幸福煩惱”是,選哪條路更合適?

    在很大程度上,國際化和國產替代,是涇渭分明的兩條路。選擇不同路線的公司,往往也會具備一些顯性特點。

    在主營國際化的路徑中,一些新興的國產數據庫公司多強調云原生、數據庫即服務等標簽,希望讓產品區別于上一代數據庫。產品之外,這類新興廠商的集中特點大致包括,創立時間不久(多成立于2017年—2021年之間)、擁抱開源、受雙幣基金追捧等。

    而在國產替代的世界里,在滿足資質的條件下,不少成立許久的國產數據庫廠商主要基于關系型產品延伸,希望幫助客戶完成降低成本和自主可控的目標。在這一目標的指引下,這些廠商多具備成立時間較久、投資方多為人民幣基金,以及主打國內大中B客戶等特點。

    這是兩種完全不一樣的公司。而這分岔路背后所隱藏的,是國內外商業環境的整體性差異。

    在歐美市場,公有云與數據庫結合的路徑已被證明可行。Gartner近期的一份報告顯示,全球數據庫廠商的市場份額正借助云的能力獲得增長。報告中提出,過去10年間,堅定公有云戰略的廠商,在數據庫市場份額中的排名大多獲得了提升,這其中不僅包括亞馬遜、谷歌等自有數據庫產品的公有云廠商,也包括獨立數據庫公司Snowflake等。這樣做的好處很明顯,首先,數據庫公司可以和云廠商一起服務同一個客戶。另外,數據庫公司還可以復用云廠商的生態,減少不必要的資源消耗。而數據庫即服務的模式,也建立于云基礎之上。

    這也是不少關注出海的國產數據庫廠商,和看好它們的投資人所認可的方向。但回到國內,由于國內外在商業環境上的差異,這一模式難以完全復制。

    原因不難理解。將公有云與數據庫的結合落地,需要云廠商、數據庫公司和客戶的多方協作。以被國內對標多次的Snowflake為例,其目前支持Amazon AWS、Google Cloud與微軟Azure三家云平臺。在不少解讀中,它也因為在公有云上具備中立第三方的身份而崛起。時至今日,Snowflake依然不支持私有云環境。

    回到國內,Gartner在今年三月發布的指南中提出,國內甲方業務向公有云遷徙的趨勢,是中國數據庫市場增長的一大動因。不過,這一趨勢至少在當前并未大規模落定,不少大B客戶依然會出于安全、信任等方面的考慮,提出私有云或專有云的建設、更新需求。而且,目前國內私有云的市場格局也相對分散,這導致的一個現象是,底層架構不統一,國產數據庫公司單純依賴公有云廠商合作的必要性沒有海外充足。

    具體在產品落地層面,36氪了解到,早前由不同云廠商搭建的私有云和現在公有云的平臺架構有所差異,針對公有云環境的數據庫并不能被無縫部署到不同的私有云上。對比國外,美國的私有云與公有云的標準會更統一一些,如微軟為美國國防部以及一些美國公司(如可口可樂)搭建的私有Azure云平臺雖然在物理上與公有云獨立,但在底層架構上會更兼容現有的公有云軟件,也為云數據庫公司向這些私有云的客戶銷售自家產品提供了可能。

    產品架構不統一、格局分散只是一部分難點。下一個問題是,目前還有不少私有云廠商也會主打信創云路線。而能做進國產替代市場的企業,往往需要具備背景合格、產品適用于黨政和金融等業務場景、服務細致等能力。面對這些要求,獨立數據庫廠商應該找準自身定位。

    另一方面,當前國內云生態競爭愈發激烈,云廠商的自有產品如何與獨立數據庫廠商合作,也是下一個值得討論的問題(當然,這一問題海外也存在)。這種情況下,獨立數據庫公司能否依靠產品力等其他特點獲得合作伙伴和客戶的肯定,更成為重中之重。

    總體而言,國內廠商短期內或許無法將海外優解復刻到國內。這也在很大程度上造成了數據庫公司商業路線的分化——對大多數人而言,是出海尋找真正的公有云+數據庫模式,還是抓緊國產化浪潮,此時更像是單選題。

    三. 國際化VS國產化:不同的機會,不同的挑戰

    曾有長期深耕數據庫領域的投資人告知36氪,數據庫公司的商業化路線,幾乎從創業第一天起就板上釘釘。在全球化和國產化的兩個不同世界里,廠商亦要具備不同的通關能力。

    出海:最好的Global,是成為真正的Local

    在出海路線中,國產數據庫廠商首先會遇到產品上的競爭,同時也要適應不同國家客戶的使用習慣和銷售方式。

    這三大關卡的任何一環出了差錯,都可能導致全球化戰略的失敗。在這其中,技術和產品力是首要前提——如果技術底蘊不深,產品做不到全球范圍內的相對領先,那么征戰海外大概率是場竹籃打水。而在這一前提之下,銷售、市場方面的門門道道,也在持續影響著企業出海的成功率。

    這樣的例子不是沒有發生過。36氪了解到,五六年前曾有一家細分領域的頭部軟件公司決定征戰北美市場,但最終卻由于產品無法適應當地而敗北,"其實它的產品能力很強,但美國和國內的數據傳輸格式不同,給國外的產品基本要重做。"一位接近這家公司的行業人士回顧。這導致的結果是,這家公司重新打磨產品花費成本過高,難以在不同市場中平衡,最終中美兩邊的業務都受到一定影響。

    但經過一段時間的持續摸索,在一些頭部公司眼中,如今這三重挑戰似乎都能指向同一個解法——“開源+云”,這是既受國外同行的啟發,也是國內企業在出海需求下的自主摸索。在這一思路中,開源是依靠全球開發者的力量收集反饋、打磨產品的方式。同時,這也能讓產品更契合當地客戶使用習慣,并產生對品牌的認知。而云戰略的好處上文也已提及,不僅能讓數據庫等基礎軟件廠商復用其生態能力,還能讓公司的整體運營更標準化。

    在理想狀況下,這是一條將產品打磨和商業化緊密結合的路。但回到現實,不論是建設開源生態還是堅持云戰略,都需要付出不少努力。

    尋求與公有云的契合之道,是一家公司管理層需要持續思考、堅定投入的戰略問題。做到這件事的基本前提包括,挑選可以協作的云廠商,并基于此將產品打磨標準、適合云交付,以及培養公司的服務能力。

    首先,選擇合作伙伴可能牽涉到廠商的技術投入。實操方面,數據庫廠商自身的技術架構通常也會依托并受限于底層云平臺。如Snowflake早期選擇依賴AWS的S3作為存儲層,數年后才支持了Google與微軟的云平臺。

    另外,踐行云戰略的過程中還會存在一些另類的考驗。"現在要思考的是,我們要從一家產品、技術導向的公司,轉而更強調自己的服務、運營能力。"有正處于轉型期的公司高管坦言。這是公司整體定位的轉變,其中必然伴隨著不少企業文化、組織,乃至心理上的沖擊。“但這可能也是優勢,畢竟我們是真的勤勞,服務體驗可能更好。”有員工這樣鼓勵自己。

    相較之下,開源的考驗更滲透進細枝末節。

    在很多人的共識中,一家公司是否能做好開源,可能是“氣質”決定的。一般來說,理想的創始團隊需要具備國際化視野,比如擁有在國外技術領域長期求學、工作的經歷就是一個加分項。另外,團隊還要對當地銷售習慣有所認知,做好商業化和開源之間的平衡。

    這些基礎要求聽起來似乎不難,但具體的落地節奏卻仍值得細致推敲。

    36氪在過去一段時間內發現,國內有不少數據庫團隊正在規劃出海細節。但就算是一些在國內已經搭建起開源生態,受到使用者肯定的廠商,在面臨出海時依然會產生擔憂。

    “主要是擔心文化問題。開源生態的建設在不同國家也存在文化差異,讓融入當地更加困難。”有建設開源生態近五年的數據庫廠商負責人表示,其公司在建立海外分部時,會計劃將國外辦事處和國內分開獨立運營,希望降低雙方互相干擾的可能性。類似的細節還能數出不少,比如有創業者要求公司所有的文檔都是英文;還有社區的運營人員認為自家產品使用門檻較高,需要琢磨海外頭部公司程序員的喜好,進行針對性推廣等等。

    無數的細節證明,最好的Global,是成為真正的Local。這是不少新興國產數據庫廠商孜孜以求的出海效果。

    國內市場:國產替代正當時,金融信創或是下一個機會

    在第二條路線中,主打國產替代的數據庫廠商們需要滿足背景“正規”、服務意識強,以及產品自主可控、可用的要求。出于當前國產替代的進度,我們認為在黨政、金融等領域,尤其是金融信創的進展將給這類廠商提供更廣闊的空間。

    原因不難推斷。

    首先,黨政領域是國產替代的排頭兵。這些行業中,客戶的國產替代已經進行了一段時間,存量相較之前略微下降。相較而言,黨政中的“下沉市場”會是接下來國產替代的重點。而2020年金融信創一期試點推行,2021、2022年的相關工作也在按計劃推進,市場空間更為廣闊。

    第二,金融客戶向來重視IT投入。在疫情未散的前提下,它們是為數不多IT預算充裕的客戶。從數據看,2020年啟動的金融信創一期試點,要求信創基礎軟硬件采購額占到其IT外采的5%-8%;2021年金融信創二期新增100余家試點單位,信創基礎軟硬件在IT外采中占比要求提高至10-15%。當然,這些預算既囊括基礎硬件,也包含操作系統、中間件等其他基礎軟件,數據庫所占比例暫不得而知。但根據一些券商調研,信創的出現在過去兩年內整體提升了一些客戶的IT投入。當金融信創進一步放開,相信包括數據庫在內的基礎軟硬件廠商都會因此受惠。

    第三,出于業務特點和由此帶來的強監管要求,金融客戶對用作核心業務產品的可靠、可用性考量超過了其他種種。這雖然帶來了不少挑戰,但同時也讓不少技術能力較強,且具備完整知識產權的廠商更有機會參與其中。

    過去一段時間內,36氪觀察到不少數據庫廠商正在持續布局金融信創。但談及真正落地,其中的難度也不可忽視。

    首先從產品層面,不同數據庫架構不同,國產數據庫廠商需要重視自身的產品兼容性,減少遷移過程可能給客戶帶來的問題。另外,現在不少客戶是從非核心業務做起,再逐步開展對核心業務的數據庫替代工作。36氪了解到,從過去的一些替代實踐經驗看,廠商需要從業務提出之初就和客戶一起共創,不斷根據其需求打磨產品,最終完成上線。這一過程可能耗費三年以上的時間。

    再者,信創是一個系統工程,從下層的基礎軟硬件到上游的應用系統均屬其中。數據庫廠商作為其中的一個角色,也需要和各類廠商合作,為客戶提供解決方案式的體驗。這其中,產品間的兼容是一個重頭戲。我們了解到,有廠商每年花費在不同廠商、不同產品適配工作上的資金達到千萬元級別。

    當然還需要明確的一點是,目前狹義的國產替代主要指關系型數據庫層面。但在其他類型中,如圖數據庫領域,國內產品也有一定替代國外產品的空間。而且,出于各種考慮,不少外企也有退出國內市場的動作。這部分空余的市場空間也是國產廠商的新機會。

    總而言之,國產替代對國內不少企業而言意味著新空間,但這勢必也是一場攻堅戰。主攻于此的數據庫廠商需要具備戰略定力,在產品、服務等方面針對性地進行長期投入。

    四. 多種多樣的參與者(按公司和其主要產品劃分)

    不論是技術規律還是商業規律,都要落地到具體公司的實踐中。在這一章節,36氪將按照不同分類,細致展示我們觀察到的數據庫領域參與者。

    需要提前聲明的是,以下公司及產品主要按照首字母排序,沒有引申意義上的先后之分;另外,下文展示也不代表行業全貌,歡迎讀者持續補充行業玩家;再者,由于數據庫分類維度眾多,一個數據庫可能具備多種特點,本文展示僅提供參考價值。

    數據庫分類維度

    按分析能力:OLTP 及 HTAP類型

    根據分析能力,數據庫可以分為 OLTP 與 OLAP 兩大類。一方面,數據庫要支持數據記錄的增加修改,如網絡商城的交易(transaction),這類操作被稱為 OLTP(在線事務處理, Online Transaction Processing),另一方面,數據庫也需要支持復雜的查詢操作,比如說某個地區一個月之內銷售額超過 10 萬元的商家所在的城市,這類操作被稱為 OLAP(在線分析處理,Online Analytical Processing)。此外,近些年有些新的數據庫可以同時支持 OLTP 與 OLAP 操作,因此被稱為 HTAP 型(混合事務分析處理,Hybrid transactional/analytical processing),另外,由于HTAP是兩種功能交織的產品,在本文中將會與OLTP和OLAP一同介紹。具體某個HTAP產品放在OLTP板塊還是OLAP板塊,主要依據公開資料中的描述進行判斷。但整體而言,HTAP兼具兩種功能,這里的分類僅供讀者參考。

    OLTP 型數據庫:單機型、分布式和云原生

    單機型

    數據庫最初的應用場景之一是賬本。大家外出購物時,家門口的小賣部的老板可能會用紙和筆來通過寫寫畫畫的方式,記錄下每天的銷售額和對應的貨物清單,而大型超市則是通過掃碼槍來自動記錄生成售貨記錄,比如說在今天的下午三點,賣出一瓶礦泉水,價格是 1 塊錢。在這里,“下午三點、礦泉水、1 塊錢”這三條信息,便會作為一條記錄(record),被存儲到數據庫中,以備將來查詢。

    對于個體商家來說,一般來講一臺計算機就能存儲并處理所需數據,所需要的軟件也就是單機數據庫。現在比較常見的單機數據庫有 MySQL 與 PostgreSQL。前者最早發布于 1995 年,由一家瑞典公司研發,后者則是在 1996 年由美國加州大學伯克利分校立項。這兩者都秉承著開源,免費的原則,同時擁有成熟的社區與豐富的文檔,因此廣受中小企業的歡迎。

    分布式

    單機型數據庫可以解決小商戶的數據管理痛點。當生意越做越大時,客戶需要的數據量也許會超出現有機器的存儲能力。對于這種業務擴張的需求,業界一般有兩種手段,一種是縱向擴展(scale up),也就是通過購買更先進的硬件,在現有機器數量不變的情況下,對現有的機器進行升級。這種手段的好處是機器的數量比較小,管理起來更加方便,也不需要采取更復雜的軟件架構。銀行業更傾向于采用這樣的手段,銀行業使用的機器,比如工商銀行采用的 IBM 大型機,性能之強勁,價格之高昂,也不是中小公司能承受的,坊間相傳這樣的一臺大型機售價幾千萬人民幣甚至更高。

    另一種更親民的手段則是橫向擴展(scale out),通過增加更多機器的手段來提供更強的存儲與查詢能力。這時候我們就需要用到分布式數據庫了。分布式數據庫在設計之初,就面對的是多臺機器的場景,同一套數據庫軟件,被部署到多臺機器上,這些機器彼此通過網絡進行連接,從而形成一個數據庫集群(cluster)。在這個宏大的集群中,通過一定的分割(partition)算法,每臺機器都會分配到自己能夠處理的一小塊數據。同時,多臺機器之間可以互相的實時備份(replication),這樣就算是有一臺甚至多臺機器出現故障的時候,這個分布式數據庫集群依然可以正常工作。得益于親民的價格以及良好的擴展性,分布式數據庫被視為業界最近的發展方向。

    云原生

    以前的數據庫,需要軟件公司或者互聯網公司自己采購機器,并且在這幾臺或幾十臺機器上部署單機或者分布式的數據庫,這種方式也被稱為本地部署(on-premise)。時至今日,云計算使得大家可以通過在云上租機器,甚至租服務的方式,來使用數據庫,這被稱為云端部署(off-premise, cloud computing)。一方面,現有的分布式數據庫可以從本地移到云端,來更方便大家使用,并把數據庫的安裝,部署和維護工作都交給云平臺上的專業人士完成,另一方面,云原生(cloud-native)數據庫也帶來了一些新的思路:

    更易擴展(better scalability): 當需要更多機器的時候,在云端可以在幾分鐘的時間里完成租用新機器并添加進數據庫集群的操作,而如果數據庫是部署在本地的話,大家不太可能在短時間內購買新的物理機來增加集群中機器的數量。如今的一些云數據庫服務,會在后臺進行機器的增減,在用戶業務量突然增大的時候,自動進行性能的擴展,不需要用戶操心具體的機器數量。

    多租戶出租(multi-tenant): 傳統數據庫更多的是只服務一位客戶,在云端則沒有這個限制,一臺數據庫機器可以滿足多位客戶的不同的讀寫需求。在做好不同客戶之前的數據隔離的前提下,通過服務更多客戶,云數據庫可以進一步壓縮成本,降低收費標準。

    異地備份: 大型的互聯網公司會有數據異地備份的需求,一方面是應對某一地區的數據中心完全失效的情況,比如說發生火災或地震這種大規模的不可抗力,另一方面,也是為了減少不同地區之間的數據延遲(latency),像是美國的東西海岸,中國的北京和深圳,都隔著遙遠的距離,如果所需的數據在本地區的數據中心中有備份,那就不需要再從其它地區讀取數據。中小型公司一般不會有異地機房,因此借用云廠商的基礎設施,可以更好的保證自身數據安全。

    云原生數據庫有兩類重量級玩家,一種是云廠商本身,如 Amazon 的 AWS、微軟的 Azure,這種云廠商自身的數據庫可以很好地和自身的其它服務結合起來,比如 AWS 的機器(VM)可以更快的讀取 AWS 的數據庫,而讀取其它地方的數據庫就要慢一些。同時,云廠商為自家數據庫提供了同樣高質量的客服。另一類玩家則是獨立的第三方數據庫公司,如 MongoDB 的云數據庫,用戶可以選擇依托 AWS,Azure 或者 Google Cloud,不管用戶依托哪個云平臺,用戶都能享受 MongoDB 同樣的服務。這樣做的好處是,用戶不受限于某家特定的云廠商,因而在定價方面有了更多的自主權。另外,當某一家云廠商發生問題的時候,用戶可以快速遷移到同地區的另一家云廠商,使自己的客戶不受影響。

    在這一部分,我們重點羅列的公司和產品有:

    阿里巴巴:AliSQL

    簡介:AliSQL 是基于 MySQL 官方版本的一個分支,由阿里云數據庫團隊維護,目前也應用于阿里巴巴集團業務以及阿里云數據庫服務。該版本在社區版的基礎上做了大量的性能與功能的優化改進。尤其適合電商、云計算以及金融等行業環境。

    阿里巴巴:PolarDB

    簡介:PolarDB 是阿里巴巴自主研發的下一代關系型分布式云原生數據庫,目前兼容三種數據庫引擎:MySQL、PostgreSQL、高度兼容 Oracle 語法。計算能力最高可擴展至 1000 核以上,存儲容量最高可達 100T。經過阿里巴巴雙十一活動的最佳實踐,讓用戶既享受到開源的靈活性與價格,又享受到商業數據庫的高性能和安全性。

    百度:BaikalDB

    簡介:BaikalDB 是百度推出的一個分布式增強型結構化數據庫系統。它支持 PB 級結構數據的順序和隨機實時讀/寫。BaikalDB 兼容 MySQL 協議,支持 MySQL 風格的 SQL 方言,用戶可以通過它無縫將數據存儲從 MySQL 遷移到 BaikalDB。

    柏睿:Rapids TXDB

    簡介:Rapids TXDB 是一款企業級交易型數據庫系統,是柏睿數據基于 OpenGauss 開發推出并提供技術支持服務的商業發行版本,可為各行業客戶的交易型(OLTP)應用場景提供安全、穩定、快速的聯機事務處理支持。

    達夢數據庫:DM8

    簡介:DM8是達夢公司在總結DM系列產品研發與應用經驗的基礎上,推出的新一代自研數據庫。DM8融合了分布式、彈性計算與云計算的優勢,對靈活性、易用性、可靠性、高安全性等方面進行了改進,支持超大規模并發事務處理和事務-分析混合型業務處理。

    國網信通和創意信息聯合發布:思極有容

    簡介:“思極有容”數據庫是一款國產自主可控的分布式關系型數據庫,支持國產 CPU、操作系統生態,支持云平臺和容器。在安全方面,設定多種權限訪問、審計、流量控制機制,實現真正資源隔離。產品采用當前分布式技術,提供多種隔離級別,保障完整分布式事務。

    瀚高數據庫:HighGo DB

    簡介:HighGo DB是一款企業級OLTP數據庫。其專注于企業級市場,在承擔海量數據、高并發的復雜業務應用方面表現較為突出,能夠滿足企業級應用對數據管理的需求。

    航天紫光:CASICloud DBCP

    簡介:航天天域數據庫管理系統 CASICloud DBCP 是由北京航天紫光科技自主研發的基于無共享架構的企業級分布式關系型數據庫,具備高性能、高可用、跨平臺、線性擴展等特性,并且具備強事務處理能力,同時支持分析。

    恒生電子:LightDB

    簡介:LightDB 是恒生電子股份有限公司研發并將長期支持的一款同時支持在線事務處理與在線分析處理的融合型分布式數據庫產品。它是一款基于 PostgreSQL 的關系型數據庫,99%兼容 PostgreSQL,主要針對金融業務場景優化。

    華東師范大學數據科學與工程學院:Cedar

    簡介:Cedar是由華東師范大學數據科學與工程學院基于OceanBase 0.4.2研發的高通量、可伸縮、高可用的分布式關系數據庫。

    華為:openGauss

    簡介:openGauss是一款開源關系型數據庫管理系統,采用木蘭寬松許可證v2發行。openGauss內核深度融合華為在數據庫領域多年的經驗,內核源自PostgreSQL,并著重在架構、事務、存儲引擎、優化器等方向持續構建競爭力特性,在ARM架構的芯片上深度優化,并兼容X86架構。

    京東:StarDB

    簡介:StarDB 是京東自主設計研發的一款金融級國產分布式數據庫,支持海量數據高并發在線事務處理,具備無感分布式、金融級高可用、高度兼容 MySQL、彈性伸縮、安全合規、智能運維管控等重要功能特性。

    巨杉數據庫:SequoiaDB

    簡介:SequoiaDB 巨杉數據庫是一款金融級分布式數據庫,目前在超過 50 家大型銀行核心生產業務規模應用,主要面對高并發聯機交易型場景提供高性能、可靠穩定以及無限水平擴展的數據庫服務。

    科藍:Goldilocks DBMS

    簡介:Goldilocks DBMS 是由科藍軟件研發的擁有獨立知識產權的 RDBMS,適合需要 24 小時穩定運行和高性能的交易型單機版及分布式系統使用。

    螞蟻集團:OceanBase

    簡介:OceanBase 是由螞蟻集團完全自主研發的企業級分布式關系數據庫,基于分布式架構和通用服務器、實現了金融級可靠性及數據一致性,擁有 100%的知識產權,始創于 2010 年。OceanBase 具有數據強一致、高可用、高性能、在線擴展、高度兼容 SQL 標準和主流關系數據庫、低成本等特點。

    南大通用:GBase 8s

    簡介:GBase 8s是天津南大通用數據技術股份有限公司自主研發的企業級分布式事務型數據庫。支持分布式部署、集中式部署、共享存儲高可用部署、支持兩地三中心高可用部署。GBase 8s適用于OLTP 應用場景。

    GBase 8c

    簡介:分布式交易型數據庫GBase 8c是一款shared nothing架構的分布式交易型數據庫,具備高性能、高可用、低成本、資源調度精細化、集群運維智能化等特性,可以為金融核心系統、互聯網業務系統和政企業務系統提供安全、穩定、可靠的數據存儲和管理服務。

    PingCAP:TiDB

    簡介:TiDB 是 PingCAP 公司自主設計、研發的開源分布式關系型數據庫,是一款同時支持在線事務處理與在線分析處理的融合型分布式數據庫產品。目標是為用戶提供一站式 OLTP、OLAP 、HTAP 解決方案。TiDB 適合高可用、強一致要求較高、數據規模較大等各種應用場景。

    熱璞數據庫:HotDB Server

    簡介:HotDB Server 是一款實現數據容量和性能橫向擴展的交易關系型分布式事務數據庫產品。它兼容主流數據庫協議和 SQL92/SQL99/SQL2003 標準語法,支持自動水平拆分和垂直拆分,能在數據存儲分布式化環境下為應用提供集中式數據庫的操作體驗。

    人大金倉:KingbaseES

    簡介:KingbaseES是一款面向事務處理應用,兼顧簡單分析應用的企業級關系型數據庫,產品融合了金倉在數據庫領域多年的產品研發經驗和企業級應用經驗,可滿足各行業用戶多種場景的數據處理需求。

    神舟通用:神通數據庫管理系統

    簡介:神通數據庫管理系統是天津神舟通用數據技術有限公司自主研發的大型通用數據庫產品,擁有全文檢索、層次查詢、結果集緩存、并行數據遷移、雙機熱備、水平分區、并行查詢和數據庫集群等增強型功能,并具有海量數據管理和大規模并發處理能力。

    騰訊:TDSQL MySQL版

    簡介:TDSQL MySQL版(TDSQL for MySQL)是部署在騰訊云上的一種支持自動水平拆分、Shared Nothing 架構的分布式數據庫。TDSQL MySQL版 默認部署主備架構,提供容災、備份、恢復、監控、遷移等全套解決方案,適用于 TB 或 PB 級的海量數據庫場景。

    騰訊:TDSQL PostgreSQL版 (原TBase)

    簡介:TDSQL PostgreSQL版(TDSQL for PostgreSQL, 原 TBase)是騰訊自主研發的分布式數據庫系統,具備高 SQL 兼容度、完整分布式事務、高安全、高擴展、多級容災等能力,成功應用在金融、政府、電信等行業核心業務中。

    萬里開源:GreatDB

    簡介:GreatDB 分布式是一款原生分布式關系型數據庫軟件,具有動態擴展、數據強一致、集群高可用等特性。采用 shared-nothing 架構,基于數據冗余與副本管理確保數據庫穩定可靠,基于數據 sharding 與 mpp 技術實現高性能,并具備動態擴展數據節點能力。目前已廣泛應用于金融、運營商、能源、政府、互聯網等行業核心系統,兼容國產操作系統、芯片等國產軟硬件生態。

    新華三:SeaSQL DRDS分布式事務數據庫

    簡介:H3C SeaSQL DRDS是一款實現數據容量和性能橫向擴展的交易關系型分布式事務數據庫產品。它兼容主流數據庫協議和 SQL92/SQL99標準語法,支持自動水平拆分和垂直拆分,能在數據存儲分布式化環境下為應用提供集中式數據庫的操作體驗。

    星環科技:KunDB

    簡介:KunDB 是星環分布式交易型數據庫。公司介紹,其實高度兼容 MySQL、Oracle的國產分布式交易型數據庫,為企業核心業務數據庫建設提供完備的能力支撐和可靠的國產化遷移方案。

    亞信科技:AISWare AntDB

    簡介:AntDB是一款通用企業級,高可用、高性能的原生分布式關系型數據庫,憑多年技術累積面向電信、政務、能源、金融、交通等行業精心打造。該產品采用了原生分布式架構,實現了在線彈性伸縮和分布式強一致,全面兼容MySQL、PostgreSQL 并支持SQL 2016標準。

    易鯨捷:QianBase xTP

    簡介:面向大中型銀行的新一代云原生分布式核心交易數據庫。

    云和恩墨:MogDB

    簡介:MogDB 是云和恩墨基于 openGauss 開源數據庫進行定制、推出的企業發行版。

    澤拓科技:昆侖數據庫

    簡介:昆侖數據庫是澤拓科技研發的NewSQL分布式關系數據庫,面向TB和PB級別海量數據處理,以高吞吐量和低延時處理海量高并發讀寫請求。它提供事務ACID保障,高可擴展性,高可用性和透明的分庫分表數據處理功能。

    中興通訊:GoldenDB

    簡介:針對銀行 OLTP 業務,中興通訊分布式數據庫 GoldenDB 為業務帶來傳統單機數據庫無法提供的計算及擴展能力,提供高可用、高可靠、資源調度靈活的數據庫服務,支持金融行業已有業務升級及創新業務快速部署的需求。

    Amazon:Aurora

    簡介: Amazon Aurora 是一種與 MySQL 和 PostgreSQL 兼容的關系數據庫,專為云而打造,既具有傳統企業數據庫的性能和可用性,又具有開源數據庫的簡單性和成本效益。Amazon Aurora 的速度最高可以達到標準 MySQL 數據庫的五倍、標準 PostgreSQL 數據庫的三倍。它可以實現商用數據庫的安全性、可用性和可靠性,而成本只有商用數據庫的 1/10。Amazon Aurora 由 Amazon Relational Database Service (RDS) 完全托管,RDS 可以自動執行各種耗時的管理任務,例如硬件預置以及數據庫設置、修補和備份。Amazon Aurora 采用一種有容錯能力并且可以自我修復的分布式存儲系統,這一系統可以把每個數據庫實例擴展到最高 128TB。它具備高性能和高可用性,支持最多 15 個低延遲讀取副本、時間點恢復、持續備份到 Amazon S3,還支持跨三個可用區復制。

    Amazon:Keyspaces

    簡介:Amazon Keyspaces(for Apache Cassandra)是一種可擴展、高度可用、托管式 Apache Cassandra 兼容數據庫服務。借助 Amazon Keyspaces,用戶可以繼續使用當前的相同 Cassandra 應用程序代碼和開發人員工具在 AWS 上運行 Cassandra 工作負載,而無需預置、修補或管理服務器,并且不需要安裝、維護或操作軟件。Amazon Keyspaces 是無服務器服務,因此您只需為實際使用的資源付費,并且該服務會根據應用程序流量自動擴展和縮減表。

    Apache Cassandra

    簡介:Apache Cassandra(一般被簡稱為 C*)是由 Facebook 開發并開源的分布式數據庫系統,具有良好的擴展性,可以動態的在運行過程中進行機器數量的加減,但并不支持太過復雜的 SQL 操作。Cassandra 采用寬列存儲模型,每一行數據都由唯一的 key 標識,并可以有多列,類似于二維的鍵值存儲。Cassandra 本身開源,并由開源社區進行維護,因此眾多云廠商基于開源版本,都提供了各自的 Cassandra 云服務。

    Cockroach Labs:CockarochDB

    簡介: CockroachDB的目標是打造一個開源、可伸縮、跨地域復制且兼容事務的 ACID 特性的分布式數據庫。據介紹,它不僅能實現全局(多數據中心)的一致性,而且保證了數據庫的生存能力,就像 Cockroach(蟑螂)這個名字一樣,是打不死的小強。CockroachDB 的思路源自 Google 的全球性分布式數據庫 Spanner。其理念是將數據分布在多數據中心的多臺服務器上,實現一個可擴展,多版本,全球分布式并支持同步復制的數據庫。2021年12月,Cockroach Labs進行了F輪融資,共融資2.78億美元,估值50億美元。

    Couchbase

    簡介: Couchbase 是一個高性能、分布式、面向文檔的NoSQL數據庫。Couchbase 提供了一些和其他一些領先的NoSQL數據庫相似的功能或者增強功能。Couchbase是MemBase與couchDB這兩個NoSQL數據庫的合并的產物,擁有CouchDB的簡單和可靠以及Memcached的高性能。Couchbase于2021年7月在美國納斯達克交易所進行IPO,目前市值8億美元左右。

    FaunaDB

    簡介:FaunaDB是一個靈活,用戶友好的,支持事務的數據庫。Fauna支持原生GraphSQL,同時,Fauna的數據庫服務是以安全可擴展的云API的形式來提供,以此來讓用戶無需操心數據庫的機器數量,擴展,分片,備份等諸多問題。2020年7月Fauna進行了A輪融資,共計2700萬美元。

    Google:Google Cloud Spanner

    簡介: Cloud Spanner是一項完全托管式用于關鍵任務的關系型數據庫服務,可提供全球范圍的事務一致性、自動同步復制功能以實現高可用性,以及對兩種 SQL 方言的支持:Google 標準 SQL(ANSI 2011 及擴展程序)和PostgreSQL。

    Google:Google Bigtable

    簡介:Bigtable是Google研發并商用的全代管式可擴縮的 NoSQL 數據庫服務,用于處理大規模分析和運營工作負載,可用性達 99.999%。其具有以下的特點:延遲時間始終在 10 毫秒以內,每秒可處理數百萬個請求; 非常適合個性化、廣告技術、金融技術、數字媒體和 IoT 等使用場景; 可根據用戶的存儲需求無縫擴縮;重新配置時無需停機; 采用適合機器學習應用的存儲引擎設計,可提升預測效果; 可輕松連接到 Google Cloud 服務(例如 BigQuery)或 Apache 生態系統。

    IBM : DB2

    介紹:IBM DB2 是美國 IBM 公司開發的一套關系型數據庫管理系統,它主要的運行環境為 UNIX(包括 IBM 自家的 AIX)、Linux、IBM i(舊稱 OS/400)、z/OS,以及 Windows 服務器版本。DB2 主要應用于大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用于所有常見的服務器操作系統平臺下。DB2 采用了數據分級技術,能夠使大型機數據很方便地下載到 LAN 數據庫服務器,使得客戶機/服務器用戶和基于 LAN 的應用程序可以訪問大型機數據,并使數據庫本地化及遠程連接透明化。DB2 以擁有一個非常完備的查詢優化器而著稱,其外部連接改善了查詢性能,并支持多任務并行查詢。DB2 具有很好的網絡支持能力,每個子系統可以連接十幾萬個分布式用戶,可同時激活上千個活動線程,對大型分布式應用系統尤為適用。

    MariaDB:MariaDB Enterprise、SkySQL

    簡介:MariaDB 是 MySQL 數據庫在 Oracle 公司之外的獨立分枝,由原 MySQL 團隊的部分創始成員開發,并高度兼容 MySQL。這些 MySQL 團隊成員擔心 MySQL 被 Oracle 公司收購之后,會帶來一系列的法律和產權問題,因此創立了一條新的開源分支。如今MariaDB也在進行迭代,比如SkySQL是MariaDB Enterprise數據庫的云服務版本,提供database-as-a-service (DBaaS)功能。其整合了豐富而強大的數據庫功能,簡單易用,并且高度自動化。

    Microsoft:Azure Cosmos DB

    簡介: Azure Cosmos DB 是一種用于現代應用開發的完全托管式NoSQL數據庫服務。具有有保證的個位數毫秒級響應時間和由SLA支持的99.999%可用性、自動、即時的可伸縮性,以及用于MongoDB和Cassandra的開放源代碼API。借助統包數據復制和多區域寫入,在世界任何地方都能進行快速讀寫操作。

    Microsoft:SQL Server

    簡介:SQL Server 是 Microsoft 公司推出的關系型數據庫管理系統。具有使用方便可伸縮性好與相關軟件集成程度高等優點,可跨越從運行 Microsoft Windows 98 到運行 Microsoft Windows 2012 的大型多處理器的服務器等多種平臺使用。

    MongoDB Inc.:MongoDB

    簡介:MongoDB 是一種面向文檔的數據庫系統,主要管理類似于 JSON 格式的文檔型數據。由總部位于美國紐約的MongoDB Inc.公司研發,并于 2009 年首次發布開源版本。MongoDB 采用主從式架構,以此來保證數據的高可用性與可靠性。用戶可以自行部署 MongoDB 集群,也可以付費使用 MongoDB 的云數據庫服務。

    MySQL

    簡介:MySQL 是一個關系型數據庫管理系統,現屬于 Oracle 旗下產品,是最流行的關系型數據庫管理系統之一。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL作為網站數據庫。

    Oracle:Oracle Database

    簡介::Oracle Database,又名 Oracle RDBMS,或簡稱 Oracle。是 甲骨文公司的一款關系數據庫管理系統 。它在數據庫領域一直處于領先地位的產品,可以說是世界上流行的關系數據庫管理系統。

    PostgreSQL

    簡介:PostgreSQL 是一種特性非常齊全的自由軟件的對象-關系型數據庫管理系統(ORDBMS),是以加州大學計算機系開發的 POSTGRES4.2 版本為基礎的對象關系型數據庫管理系統。PostgreSQL 支持大部分的 SQL 標準并且提供了很多其他現代特性,如復雜查詢、外鍵 、觸發器、視圖、事務完整性、多版本并發控制等。同樣,PostgreSQL也可以用許多方法擴展,例如通過增加新的數據類型、函數、操作符、聚集函數 索引方法、過程語言等。另外,因為許可證的靈活,任何人都可以以任何目的免費使用、修改和分發PostgreSQL。

    YugabyteDB

    簡介:YugabyteDB是一款開源,高性能,云原生的分布式數據庫,致力于兼容PostgreSQL所有的特性。它適用于需要高實時性,高可靠性與高數據一致性的云原生應用,同時,它提供了高擴展性,高容錯性與全球部署的可能。

    按分析能力:OLAP 型與HTAP型數據庫

    前文講到的數據庫大多是 OLTP 類型,更關注于對交易與線上業務的支持,而分析型的 OLAP 數據庫則更有助于用戶了解自己的業務現狀,并對已有的數據進行分析處理。OLTP 和 OLAP 有很大的交集,但是側重點不一樣,比如說網絡商城的 OLTP 數據庫需要應對非常多的用戶,非常高的并發量,但每條交易可能只是短短的一條購買記錄,而 OLAP的用戶則多為企業內部人員,需要周期性的對數據進行分析,比如生成周報來分析產品銷量。OLAP 數據庫的并發量要低很多,畢竟一般只限內部人員使用,但是數據的讀取量會大很多,經常需要對這一周的所有用戶購買數據進行逐一掃描,相關的查詢也會更加復雜,因此需要更長的查詢時間,比如幾小時之后才能生成對應的周報。

    在OLAP型數據庫中,比較常見的概念之一是數據倉庫。進入云時代以來,為了更好的分析數據,數據倉庫(data warehouse)的概念應運而生。用戶在產生數據的同時,把相應的數據上傳到數據倉庫中,之后就可以在數據倉庫中進行相應的查詢。在數據倉庫這個領域最引人注目的玩家就是前面提到的 Snowflake。作為軟件史上最大的IPO之一,Snowflake上市當天股票就翻番,現在的市值在450億美元左右。

    這一章節我們將盤點業內的 OLAP 型數據庫,以及一些兼容OLTP與OLAP操作的HTAP型數據庫。同樣如前文提及,具體某個HTAP產品放在OLTP板塊還是OLAP板塊,主要依據一些公開資料中的描述判斷。但整體而言,HTAP兼具兩種功能,這里的分類僅供讀者參考。

    在這一部分,我們關注到的公司和產品有:

    Apache Doris

    簡介:Apache Doris是由百度開源并貢獻給Apache的MPP架構OLAP數據庫,以極速易用的特性被業內所熟知,支持標準SQL并兼容MySQL協議,僅需秒級響應時間可返回海量數據下的查詢結果,可有效支持實時分析、交互式分析等多種需求場景。

    Apache HAWQ

    簡介:Apache HAWQ是面向企業用戶的先進大規模分布式分析型數據庫,完整支持SQL規范并提供優秀的大數據分析性能表現。Apache HAWQ于2018年8月15日正式畢業。

    Apache Kylin

    簡介:Apache Kylin? (麒麟)是一個開源的分布式大數據分析數據倉庫;它旨在提供大數據時代的OLAP(在線分析處理)能力。通過在 Hadoop 和 Spark 上革新多維立方體和預計算技術,Kylin 能夠在數據量不斷增長的情況下實現接近恒定的查詢速度,將查詢延遲從幾分鐘減少到亞秒級。

    阿里巴巴:AnalyticDB

    簡介:AnalyticDB 是阿里云自主研發的云原生數據倉庫,采用存儲計算分離+多副本架構,支持最大 5000 節點規模的彈性擴容,對復雜 SQL 查詢速度比傳統的關系型數據庫快 10 倍以上。不同于復雜、高門檻的大數據體系,AnalyticDB 高度兼容 MySQL、PostgreSQL,Oracle 應用遷移成本低,可對萬億級別的數據進行實時的多維度分析透視,極大地提升了企業挖掘數據價值效率。

    柏睿:分布式分析型數據庫 Rapids UXDB

    介紹:Rapids UXDB 是一款具備大規模并行處理能力的企業級關系型數據庫,采用 MPP 架構,支持 1000+節點擴展。面向智能數據分析(OLAP)應用場景,提供 EB 級數據的復雜數據分析能力。

    達夢數據庫:達夢分析型大規模數據處理集群DMMPP

    簡介:達夢分析型大規模數據處理集群軟件(DMMPP)是基于達夢數據庫管理系統研發的完全對等無共享式的并行集群組件,支持將多個DM8節點組織為一個并行計算網絡,對外提供統一的數據庫服務,最多可支持1024個節點,支持TB到PB級的數據存儲與分析,并提供高可用性和動態擴展能力,是超大型數據應用的高性價比通用解決方案。

    鼎石縱橫:StarRocks

    簡介:StarRocks 是一款開源的新一代極速全場景 MPP 數據庫。它采用新一代的彈性 MPP 架構,可以高效支持海量數據的多維分析、實時分析、高并發分析等多種數據分析場景。它采用了全面向量化技術。StarRocks 的目標是成為新一代流批融合的極速湖倉(Lakehouse)。

    東方國信:CirroData-AP

    簡介:CirroData-AP 分布式云化數據庫面向海量數據分析型應用領域,便于用戶管理全量數據,進行快速的統計分析,進而獲得數據驅動的商業洞察。CirroData 采用了計算和存儲分離的技術架構,融合了分布式存儲和 MPP 并行計算的各自優勢,不但可以實現云平臺上的伸縮擴展能力,而且可以提供隨需部署的能力。

    東軟:思來得數據倉庫

    簡介:Neusoft Select Data Warehous(簡稱東軟思來得)是東軟專家團隊基于MPP架構,采用Pivotal Greenplum開源平臺打造的擁有自主知識產權的,適用于云原生環境的分布式數據庫。為企業提供海量數據的管控及并行處理的能力,為IT架構的靈活擴展提供數據底座。

    飛輪科技:SelectDB

    簡介:基于Doris內核的云原生發行版SelectDB,是運行在云上的實時數據倉庫,為用戶和客戶提供開箱即用的能力。據介紹,其主要的特色功能體現在:充分發揮彈性云計算、彈性云存儲的優勢,實現高性價比;提供可視化、易用的管控平臺和用戶交互開發平臺。

    跬智科技:Kyligence

    簡介:Kyligence全場景OLAP,通過有機融合 Apache Kylin 與 ClickHouse,全面覆蓋各類分析場景,用戶無需維護復雜的數據平臺,即可獲得統一的查詢分析體驗。

    瀚高數據庫:HGDW

    簡介:瀚高數據倉庫是一款基于大規模并行技術的數據倉庫軟件,具備無共享、高性能、高可用、擴展容易、海量數據處理等特性。可以為超大規模數據管理提供高性價比的通用計算平臺,廣泛用于支撐各類數據倉庫系統、BI系統和決策支持系統。

    火山引擎:ByteHouse

    簡介:ByteHouse 是火山引擎基于ClickHouse研發的一款分析型數據庫產品,能夠對 PB 級海量數據進行高效分析。目前,在字節跳動內部,ByteHouse已經支持了80%的分析應用,能夠高效賦能精準營銷、廣告效果評估、增長分析等多種場景。

    聚云位智:Linkoop DB/ZettaBase

    簡介:這是一款擁有內核專利的純國產自研企業級人工智能數據庫,吸收了 MPP 庫和 Hadoop 兩種技術路線的特長,以企業級分析型數據庫能力為基礎核心,增強了流式計算和人工智能計算能力,并且可以統一使用 SQL 驅動。當前公司產品已經覆蓋了電信、公安、軍工、金融等領域,場景包括智慧醫療、智能制造、精準營銷、輿情分析等場景。

    酷克數據科技:HashData

    簡介:HashData數據倉庫融合了MPP數據庫的高性能和豐富分析功能、大數據平臺的擴展性和靈活性,以及云計算的彈性和敏捷性,以創新性的元數據、計算和存儲三者分離的架構,提供了傳統解決方案做不到的高并發、彈性、易用性、高可用性、高性能和擴展性。

    浪潮:K-DB(m 版)分析型數據庫

    簡介:K-DB(m 版)是大規模并行處理(MPP)數據庫和并行計算框架,可以支撐 PB 級數據,結構化和半結構化分析型數據庫。其產品可作為數據倉庫、數據湖中的結構化數據存儲、庫內數據計算挖掘平臺,支撐決策支持、數據挖掘等高級分析場景,幫助用戶降低成本和提高效率,從數據中獲取對業務的洞察和預測。

    南大通用:GBase 8a

    簡介:GBase 8a分析型數據庫的主要市場是商業分析和商業智能市場。產品主要應用在政府、黨委、安全敏感部門、國防、統計、審計、銀監、證監等領域,以及電信、金融、電力等擁有海量業務數據的行業。

    偶數科技:OushuDB

    介紹:OushuDB 是由 Apache HAWQ 創始團隊打造的新一代云原生數據倉庫,該產品采用了存儲與計算分離技術架構,具有 MPP 的優點,還具有彈性,支持混合工作負載和高擴展性等優點。

    人大金倉:KingbaseAnalyticsDB

    介紹:KingbaseAnalyticsDB是一款采用shared-nothing分布式架構,具有高性能,高擴展性能力的MPP數據庫產品。適用于數據倉庫、決策支持、高級分析等分析類應用場景。

    睿帆科技:雪球 DB/Snowball

    介紹:分布式分析型數據庫雪球 DB 是睿帆科技自主研發的一款基于 PB 級數據在線高并發極速即席查詢的聯機分析處理(OLAP)MPP 列式數據庫管理系統。

    可提供 PB 級數據的在線多維查詢和分布式存儲,特別適用于海量結構化數據存儲、高并發查詢、高吞吐即席查詢(Ad-hoc)、多維分析和實時查詢場景,能夠實現 PB 級數據超高的壓縮比,節省硬件成本。

    數變科技:Databend

    簡介:Databend 是一個使用Rust研發、開源的、完全面向云架構的新式數倉,致力于提供極速的彈性擴展能力,打造按需、按量的Data Cloud 產品體驗。

    石原子:AtomData

    簡介:AtomData是石原子自研的高并發低延時下一代PB級云原生數據倉庫,可以對海量數據進行實時的多維分析透視和業務探索分析,將數據分析和價值化從傳統的離線數倉轉化為在線實時分析模式。

    騰訊:TDSQL-A ClickHouse 版

    簡介:TDSQL-A ClickHouse 版(TDSQL-A for ClickHouse,TDACH)是騰訊云數據庫團隊在 ClickHouse 社區版基礎上,適配騰訊定制化數據庫專用硬件,進行了功能增強和性能提升,并且完善了高可用能力而形成的一套分析型數據庫產品。

    天云數據:HUBBLE

    簡介:Hubble是一款自主研發的國產分布式HTAP數據庫。具備超高并發、多源異構、全量SQL支持等功能特性,能同時支持金融級的在線交易和大規模數據分析的場景,已在多家大型股份制銀行落地應用,同時服務支撐證券、保險、能源、政府等眾多領域。

    星環科技:ArgoDB

    簡介:Transwarp ArgoDB 是星環科技自主研發的分布式分析型閃存數據庫,可以替代 Hadoop+MPP 混合架構。支持標準 SQL 語法,提供多模分析、實時數據處理、存算解耦、混合負載、數據聯邦、異構服務器混合部署等先進技術能力。其介紹,通過一個 ArgoDB 數據庫,就可以滿足數據倉庫、實時數據倉庫、數據集市、OLAP、AETP、聯邦計算等各種需求。

    炎凰數據:炎凰數據平臺2.0

    簡介:炎凰數據?產品提供從采集、導入、存儲、分析、可視化和告警等一系列服務。提供客戶靈活地管理海量多源異構數據,快速分析數據特征,實現異常預測、智能應對的解決方案

    易鯨捷:QianBase MPP

    簡介:針對數據查詢分析、企業級數據倉庫、商業智能、物聯網和大數據等領域設計的一款大規模并行處理分析型數據庫產品。

    致大盡微科技:TensorBase

    簡介:TensorBase是用開源的文化和方式,構建的一個Rust下的實時數據倉庫,服務于海量數據時代的數據存儲和分析。

    DuckDB Labs:DuckDB

    簡介:DuckDB 是一款開源的嵌入式OLAP數據庫,被用作嵌入其他程序以進行快速SQL查詢分析,因而被稱為"OLAP數據庫中的 SQLite"。DuckDB具有簡單易用,快速,開源等特點,并支持包括事務在內的多種功能。DuckDB背后的商業化公司DuckDB Labs總部位于荷蘭阿姆斯特丹。

    Google:Google Big Query

    簡介: Big Query是伸縮能力極強且經濟實惠的無服務器多云數據倉庫,幫助用戶提升業務敏捷性。用戶可以批量上傳數據并進行分析。Big Query有以下的特點:利用內置機器學習技術的平臺,安全且可伸縮,使更多的用戶可以獲取數據洞見;通過靈活的多云分析解決方案,以存儲在多種云環境內的數據推動業務決策;大規模運行分析的三年期總擁有成本 (TCO) 比其他云數據倉庫低 26%–34%

    Pivotal:Greenplum

    簡介:Greenplum是一款基于PostgreSQL的開源數據倉庫軟件。Greenplum支持50PB(1PB=1024TB)級海量數據的存儲和處理,Greenplum將來自不同源系統的、不同部門、不同平臺的數據集成到數據庫中集中存放,并且存放詳盡歷史的數據軌跡,業務用戶不用再面對一個又一個信息孤島,也不再困惑于不同版本數據導致的偏差,同時對于IT人員也降低管理維護工作的復雜度。

    Snowflake Inc.:Snowflake

    簡介:Snowflake是一種云原生數據倉庫,提供基于云平臺的數據存儲與查詢服務。它支持Amazon AWS S3,微軟Azure和Google Cloud三種不同的云平臺。其背后的Snowflake Inc.公司成立于2012年7月,并于2020年9月在紐約證券交易所上市。

    Teradata

    簡介Teradata的數據倉庫使用“無共享(shared nothing)”架構,各個服務器之間擁有獨立內存和處理能力,增加服務器與節點即增加可儲存的資料量,并由數據庫軟件集中管理各服務器間的承載負荷量 。2010年,Teradata加入文字分析功能,借此追蹤非結構性資料(如文書檔案)或半結構性資料(如試算表),并可應用于商業分析,例如使用資料倉庫追蹤公司資料,如銷售、客戶偏好、產品位置等。Teradata于2007年在紐約證券交易所上市。

    Yandex:ClickHouse

    簡介:ClickHouse是一個用于OLAP的開源列式數據庫。ClickHouse最早由俄羅斯IT公司Yandex為Yandex.Metrica網絡分析服務開發。ClickHouse允許分析實時更新的數據,并以高性能為目標,此外ClickHouse還有以下的特點:真正的列式數據庫: 沒有任何內容與值一起存儲;線性可擴展性: 可以通過添加服務器來擴展集群;容錯性: 系統是一個分片集群,其中每個分片都是一組副本;能夠存儲和處理數PB的數據;SQL支持。其背后的ClickHouse Inc.公司位于美國舊金山灣區,同時在荷蘭阿姆斯特丹有分部。2021年10月,該公司進行了B輪融資,共計融資2.5億美元。

    按照使用場景

    3.1 圖數據庫

    傳統數據庫更像是一張張 Excel 表,數據一行行的寫入數據庫。而有些信息,比如說銀行轉賬,記錄更多的是點和邊的信息,轉賬時我們可以把每一個用戶看作是一個點,每一筆交易看作是一條邊,這樣在進行交易查詢的時候,用戶可以沿著邊,一步步的去查詢資金的流向。如果使用傳統的數據庫進行查詢,比較耗時耗力,需要在大量的交易信息里,查詢到某位特定用戶的交易信息,之后再返回大量的交易信息里,查詢下一筆交易信息以及相應的客戶,這就需要對數據進行很多輪查詢。圖數據庫則專門應對這樣的場景,采用以邊為主的存儲與查詢方式,可以更快的順著一條條邊進行信息的查詢。因為主要處理點和邊的信息,這些點和邊構成了一張張圖,對應的數據庫就叫作圖數據庫。

    在這一部分,我們關注到的公司和產品有:

    Apache HugeGraph

    簡介:HugeGraph是一款易用、高效、通用的圖數據庫,實現了Apache TinkerPop3框架及兼容Gremlin查詢語言。支持百億以上的頂點(Vertex)和邊(Edge)快速導入,并提供毫秒級的關聯查詢能力,并可與Hadoop、Spark等大數據平臺集成以進行離線分析。主要應用場景包括關聯分析、欺詐檢測和知識圖譜等。

    百度:BGraph

    簡介:百度自研的原生圖數據庫引擎,能支持超大規模的圖數據,具有極高的查詢性能,您可將它應用在知識圖譜、金融風控、推薦引擎和公共安全等場景。

    創鄰科技:Galaxybase

    簡介:Galaxybase 是中國自主知識產權的通用商業化分布式圖數據庫。Galaxybase 改變了傳統數據存儲的方式,以一種更為靈活的基于“對象”和其間“關系”的圖數據結構,將分散的不同種類的原始數據連接在一起形成一個關系網絡,打通數據孤島,通過自然語言處理、機器學習、圖挖掘等人工智能算法,提供用戶從關系角度分析問題的能力,幫助其完成實時決策。

    華為:GraphBase

    簡介:GraphBase是基于FusionInsight HD的分布式圖數據庫,基于HBase的分布式存儲機制,能夠支持百億節點,千億關系的海量數據,提供基于Spark的數據導入和基于Elasticsearch的索引機制,在推薦、關系分析和金融反欺詐等領域有廣泛應用。

    極致嬴圖:Ultipa

    簡介:據36氪2021年的報道,公司介紹,Ultipa的性能被客戶稱為“核動力”引擎,在計算速度上以三角形計算為例,其速度可達 3 億個三角形/秒——這樣的速度在某種程度上已經挑戰了現有計算機系統的物理極限;在計算深度上,可做 30 層的深度穿透及關聯發現,并能夠方便的構建復雜的模型并與數據相關聯。

    螞蟻集團:TuGraph

    簡介:TuGraph 是螞蟻集團聯合清華大學自主研發的大規模全棧圖計算系統,是高效存儲、計算和分析海量圖數據的一站式平臺,支持在線、近線和離線模式,能夠在萬億邊圖上進行實時查詢,其處理規模和性能均達到了國際領先水平,已獲得規模化應用,成為螞蟻集團各種業務風控能力的重要支撐,在數字支付、數字服務、數字金融等核心業務中,顯著提升了風險行為的實時識別能力和調查分析效率。

    另一家圖數據庫廠商費馬科技已被收購,產品和技術目前融合進了TuGraph。

    夢圖數據庫:GDM

    簡介:GDM 是四川蜀天夢圖數據科技有限公司自主研發的分布式圖數據庫管理系統。

    GDM 采用分布式架構,支持橫向擴展,能夠滿足大數據時代海量數據的存儲需求。基于圖理論,GDM 針對圖數據模型進行了優化存儲,在兼顧性能和存儲空間上做了平衡,采用多節點并行計算,能夠提高大圖、超大圖的圖計算能力。GDM 支持分布式事務,能同時滿足 OLTP 和 OLAP 需求。

    歐若數網:Nebula

    簡介:Nebula Graph 一款開源、分布式圖數據庫,擅長處理超大規模數據集。Nebula Graph 采用存儲計算分離架構,支持水平擴展,利用 RAFT 分布式 concensus 協議來實現金融級的高可用,類 SQL 查詢語言降低了 SQL 程序員遷移成本。

    騰訊:TGDB

    簡介:騰訊云數圖 TGDB(Tencent Graph Database)是騰訊云推出的原生分布式并行圖數據庫,以原生方式實現屬性圖,高效存儲關聯數據,支持千億級節點大圖的高效查詢和關聯分析。

    圖特摩斯科技:AbutionGraph

    簡介:其結合了圖數據庫(GDB)的簡潔拓撲關系、數據倉庫(ROLAP+MOLAP)、時序知識圖譜的新穎存儲思想,首創動態知識圖譜數據倉庫(Graph Hybrid OLAP),集多種先進存儲技術于一身,實現數據高效存儲與分析。幫助企業快速構建數據運營能力,滿足個性化定制需求,解決既往圖數據庫產品無法滿足的場景。

    維佳星科技:TigerGraph

    簡介:TigerGraph可以在幾小時內加載上TB的數據,并支持超過十跳的圖數據查詢。TigerGraph同時支持ACID事務操作,數據分片,數據庫的橫向與縱向擴展。TigerGraph適用于反欺詐,物聯網,AI與機器學習等場景,并被中國移動,Wish與Zillow等客戶采用。

    星環科技:Transwarp StellarDB

    簡介:Transwarp StellarDB 是一款為企業級圖應用而打造的分布式圖數據庫,用于快速查找數據間的關聯關系,并提供強大算法分析能力。StellarDB 克服了萬億級關聯圖數據存儲的難題,通過自定義圖存儲格式和集群化存儲,實現了傳統數據庫無法提供的低延時多層關系查詢,在社交網絡、金融領域都有較大應用潛力。

    中科知道:PandaDB

    簡介:為實現結構化、非結構化數據的融合管理和關聯查詢分析,“中科知道”采用智能屬性圖模型,基于 Neo4j 開源版本,設計并實現了異構數據智能融合管理系統 PandaDB。該系統實現了結構化/非結構化數據的高效存儲管理,并提供了靈活的 AI 算子擴展機制,具備對多元異構數據內在信息的即席查詢能力。

    字節跳動:ByteGraph

    簡介:ByteGraph是字節跳動自研的分布式圖數據庫。ByteGraph 支持有向屬性圖數據模型,支持 Gremlin 查詢語言,支持靈活豐富的寫入和查詢接口,讀寫吞吐可擴展到千萬 QPS,延遲毫秒級。據介紹,ByteGraph 支持頭條、抖音、 TikTok、西瓜、火山等幾乎字節跳動全部產品線。

    Amazon:Neptune

    簡介:Neptune是AWS上的圖數據庫,其底層依托于AWS S3存儲平臺,支持快速進行圖數據的查詢與處理,并支持多種開源API接口。

    ArangoDB Inc.:ArangoDB

    簡介:ArangoDB支持鍵值型,圖數據,與文檔數據三種不同的數據格式,并以統一的AQL語言進行數據查詢與處理。ArangoDB開源免費,采取分布式架構。ArangoDB Oasis是由其背后的ArangoDB Inc.公司提供的云數據庫服務。2021年10月ArangoDB Inc.進行了B輪融資,共計2780萬美元。

    JanusGraph

    簡介:JanusGraph是Linux基金會旗下的一款高擴展性的分布式開源圖數據庫,針對于數十億量級的點和邊的應用場景專門優化。JanusGraph支持事務特性以及幾千名用戶的并發交易,以及復雜的圖數據分析查詢。

    NEO Technology:Neo4j

    簡介:在Neo4j中,所有的數據都被存儲為點,線,或者點和線的標簽的形式,每個點或者每條邊都可以有多個標簽。Neo4j的核心組件開源,但諸如在線數據備份與高可用性的進階功能的代碼則是閉源的。2021年6月Neo4j公司進行了3.25億美元的F輪融資。

    3.2 時序數據庫

    現如今,隨著物聯網的普及,越來越多的設備開始產生實時數據,比如路邊的監控攝像頭,每天就會產生數據量巨大的信息。物聯網設備產生的信息量之大,如果以一行行的方式寫入傳統關系型數據庫,則很快會面臨存儲與查詢性能上的瓶頸。同時,對于這些信息,用戶可能更關注最近一周的數據,比如說一小時前的氣溫,而對去年甚至更久遠的信息,用戶只關心一個大概的統計學上的趨勢,比如說去年某個月的平均氣溫,而不需要非常具體的數據。此外,物聯網設備的數量可能十分龐大,如果我們把全國的監控攝像頭當成是同一套物聯網系統,那設備總數會達到上億甚至十幾億的規模。

    時序數據庫針對這樣的場景,采用不同的底層架構,可以幾十上百倍得加速存儲與查詢物聯網設備時時刻刻產生的海量信息。時序數據庫也可以看作是一種特殊的以時間為主線的流式數據庫。

    在這一部分,我們關注到的公司和產品有:

    阿里云:TSDB

    簡介:阿里云時間序列數據庫 ( Time Series Database , 簡稱 TSDB) 是一種集時序數據高效讀寫,壓縮存儲,實時計算能力為一體的數據庫服務,可廣泛應用于物聯網和互聯網領域,實現對設備及業務服務的實時監控,實時預測告警。

    百度云:TSDB

    簡介:時序時空數據庫 TSDB 是用于存儲和管理時間序列數據及地理空間數據的專業化數據庫,為時間序列數據及地理空間數據提供高性能讀寫和強計算能力的分布式云端數據庫服務。

    螞蟻集團:CeresDB

    簡介:CeresDB是螞蟻集團 OceanBase 推出的時序數據庫產品,該數據庫將為用戶提供安全可靠的數據查詢和存儲管理服務,解決監控運維、物聯網等場景中,時間序列數據的高吞吐、橫向擴展等難題。它是基于OceanBase分布式存儲引擎底座的時序數據庫產品,適用于物聯網 IoT、運維監控、金融分析等行業場景。

    諾司時空:CnosDB

    簡介: CnosDB是一個專注于時序數據場景的時序型數據庫,適用于各種時序場景,如服務器指標、應用程序指標、性能指標、函數接口調用指標、網絡流量數據、探測器數據、日志、市場交易記錄等。CnosDB有如下的特點:全面與InfluxDB 1.X 穩定版兼容;開源分布式集群,產品永久免費;支持海量時間序列線:在海量標簽、海量時間序列線的情況下,依然能夠高效實現分布式迭代器及查詢優化;低成本/碳中和:高效的存儲引擎可充分發揮硬件性能,并在高效壓縮存儲的同時保障查詢效率;強大完整的生態:可集成市面上主流的采集、存儲、分析、可視化等工具。CnosDB由北京諾司時空科技有限公司開發,2021年07月21日成立于北京市。

    四維縱橫:MatrixDB

    簡介:MatrixDB 是四維縱橫推出的超融合型分布式數據庫產品,是同時支持在線事務處理(OLTP)、在線分析處理(OLAP)和物聯網時序應用的超融合型分布式數據庫,具備嚴格分布式事務一致性、水平在線擴容、安全可靠、成熟穩定、兼容 PostgreSQL/Greenplum 協議和生態等重要特性。為萬物互聯的智能時代提供智能數據核心基礎設施,為物聯網應用、工業互聯網、智能運維、智慧城市、實時數倉、智能家居、車聯網等場景提供一站式高效解決方案。

    濤思數據:TDengine

    簡介:為物聯網而生的大數據平臺 TDengine 是濤思數據推出的一款開源的專為物聯網、車聯網、工業互聯網、IT 運維等設計和優化的大數據平臺。除核心的快 10 倍以上的時序數據庫功能外,還提供緩存、數據訂閱、流式計算等功能,最大程度減少研發和運維的復雜度。

    騰訊云:CTSDB

    簡介:騰訊云時序數據庫(TencentDB for CTSDB)是一種高效、安全、易用的云上時序數據存儲服務。特別適用于物聯網、大數據和互聯網監控等擁有海量時序數據的場景。

    智臾科技:DolphinDB

    簡介:DolphinDB 是由浙江智臾科技有限公司研發的一款高性能分布式時序數據庫,集成了功能強大的編程語言和高容量高速度的流數據分析系統,為海量結構化數據的快速存儲、檢索、分析及計算提供一站式解決方案,適用于量化金融及工業物聯網等領域。

    InfluxData, Inc.:InfluxDB

    簡介:InfluxDB是一套由InfluxData, Inc.公司開發的開源時序型數據庫。它由Go語言實現,致力于更高效得查詢與存儲時序型數據。InfluxDB被廣泛應用于物聯網的實時數據與計算機系統的后臺監控等場景。InfluxDB的核心部分開源,但InfluxData將用于支撐InfluxDB集群水平擴展的組件作為閉源產品單獨銷售。

    3.3流式數據處理

    傳統數據庫在載入數據的時候,為了提高效率,有時會采取批處理的方式,分批加載數據,比如說數據倉庫常用的ETL操作(Extract,Transform,Load的縮寫,指將數據從來源處經過抽取,轉換,加載進入數據倉庫以供查詢的過程),經常將數據打包成一個個批次,每一塊會有多條數據,分批次進行處理查詢。這樣雖然總體效率會有提高,但是查詢某條數據的時候,經常要等這條數據所在的一整個批次都被加載完才可以,導致查詢的實時性會有下降。

    流式數據庫則將數據看作是一條連續的,永不終止的河流,每收到一條數據,都會對這條數據進行加載和存儲,并提供更為實時(real-time)的查詢功能。

    在這一部分,我們關注到的公司和產品有:

    Apache Flink

    簡介:一個開源流處理框架,其核心是用Java和Scala編寫的分布式流數據流引擎。Flink以數據并行和流水線方式執行任意流數據程序,Flink的流水線運行時系統可以執行批處理和流處理程序。

    Apache Kafka

    簡介:它是歸屬于Apache基金會的一個開源流數據處理系統,致力于為實時數據處理提供一個統一、高吞吐、低延遲的平臺。Kafka采用“發布/訂閱消息隊列”的形式來在計算機的不同組件中傳遞消息,發布者將自己要發布的消息以話題的形式組織,不同的接收者可以選擇訂閱不同的話題,Kafka則負責將這些消息準確無誤的在發布者與接收者之間進行傳遞。Kafka背后的商業公司Confluent Inc.于2021年6月在納斯達克證券交易所上市。

    柏睿:全內存分布式流數據庫 Rapids StreamDB

    介紹:柏睿數據自主研發的兼顧批處理和流處理的分布式全內存流數據庫系統,由 SQL 編譯器和優化器、MPP 執行引擎、數據庫存儲引擎等核心組件構成。不僅如此,該系統還兼容多個主流操作系統如 windows 與 linux,以及各大編程語言接口如 C++,JAVA,Python,C#。

    EMQ:HStreamDB

    簡介:HStreamDB 是一款專為流式數據設計的, 針對大規模實時數據流的接入、存儲、處理、分發等環節進行全生命周期管理的流數據庫。它使用標準 SQL (及其流式拓展)作為主要接口語言,以實時性作為主要特征,旨在簡化數據流的運維管理以及實時應用的開發。

    奇點無限:RisingWave

    簡介:RisingWave是開源云原生的支持SQL的流式數據庫。其致力于幫助用戶建立基于云的低開發成本,低運營成本與低性能成本的實時應用。有了RisingWave,數據分析師、數據科學家與工程師可以輕易得使用SQL來查詢流式數據,并挖掘數據背后的價值。RisingWave背后的Singularity Data(奇點無限公司)成立于2021年,已經完成數千萬美元的融資。

    Timeplus

    簡介:Timeplus解決的核心問題是在滿足實時高效的基礎上,在統一的分析引擎上對實時流式分析和歷史分析能力的融合,從而縮短從復雜多樣的實時數據到實時業務價值的時間(Time-To-Value)。同時以SQL為統一分析語言,在保證超低延遲和超強性能 的前提上,依然提供了強大的數據分析能力。Timeplus設計了一個以時間為核心的統一實時分析引擎。支持多層計算模型,兼顧流式和歷史分析。

    Materialize

    簡介:Materialize 是一個用 Rust 編寫的流式數據庫。它在數據更改時在內存中維護 SQL 查詢的結果。傳統數據庫在發出 SELECT 語句時進行評估,而 Materialize 會預先要求查詢,并在新數據到達時逐步計算結果。Materialize 中的讀取速度快、可擴展且無需計算,支持將更新推送到客戶端。

    VoltDB, Inc.:VoltDB

    簡介:VoltDB是一個企業級數據平臺,VoltDB為各應用提供流式數據實時決策上的支持。VoltDB將洞察立即付諸實踐,幫助打造更靈活、更智能的數據驅動型企業。

    3.4 內存數據庫

    一般的數據庫都針對硬盤上的數據讀寫,值得一提的是有些公司偏偏劍走偏鋒,研發基于內存的數據庫。基于內存的數據庫一般會快很多,但面對的風險則是斷電后數據有可能丟失,因此多被用來緩存數據,加速數據查詢,而不是作為數據的主要存儲媒介。目前,業界也在期待新的存儲硬件的成熟,希望能帶來數據庫的變革。

    阿里巴巴:Tair

    簡介:云原生內存數據庫Tair(Redis企業版)是阿里云推出的支持高并發低延遲訪問的云原生內存數據庫,完全兼容Redis數據結構和API。支持主從與集群架構,采用多樣存儲介質應對不同數據溫度場景,并提供全球多活、數據閃回、大熱Key探測與優化、和豐富的數據模型等特性,賦能大規模高性能要求的在線數據業務。Tair從2009年開始正式承載集團緩存業務,歷經天貓雙十一、優酷春晚、菜鳥、高德等業務場景的磨練。

    柏睿:全內存分布式數據庫 RapidsDB

    簡介:柏睿數據自主研發的基于分布式架構的全內存數據庫,關鍵組件包括 SQL 編譯器及優化器、MPP 執行引擎、數據庫存儲引擎等,性能對標 Oracle TimesTen 和 SAP HANA。

    快立方:Qcubic

    簡介:Qcubic 內存數據庫是快立方自主研發的關系型內存數據庫,致力于解決海量高頻事務處理,具有高性能、高并發、高可用、低延時特性。公司介紹,其核心技術指標比傳統數據庫提升10倍以上。

    Pika

    簡介:Pika是一個可持久化的大容量redis存儲服務,最早由360奇虎公司研發并開源。

    Oracle:TimesTen

    簡介:TimesTen是Oracle旗下的基于內存的OLTP數據庫,其致力于高穩定性與彈性擴展。TimesTen屬于關系型數據庫,支持橫向的分布式擴展。

    Redis Labs :Redis

    簡介:Redis 是基于內存的分布式鍵值對存儲數據庫。與基于硬盤的傳統關系型數據庫不同,Redis 為了實現更高的性能,將數據存儲在多臺機器的內存中,以此來實現更快的讀寫速度,此外,Redis 也不支持關系型數據庫的表單存儲,而是只支持最簡單的鍵值對存儲。因為其基于內存的特性,Redis 多被用于計算機系統的緩存層(cache),一方面使系統更快速,并減輕底層數據庫的壓力,另一方面即使斷電,也只會丟失緩存中的數據,而底層的數據依然由其它的數據庫存儲在硬盤中,不會使底層的數據永久丟失。

    SAP:HANA

    簡介:SAP HANA是一款基于內存的列存儲的關系型多模數據庫,支持實時數據分析與多種ETL操作。SAP HANA Cloud是其對應的云服務版本。

    3.5 多模數據庫

    隨著數據種類的增加,數據庫經常要處理存儲不同格式不同來源的數據,因而多模數據庫應運而生。多模數據庫支持更多的數據類型,并提升更為靈活的查詢接口,以此來幫助用戶應對新的數據挑戰。

    在這一部分,我們關注到的公司和產品有:

    阿里云:Lindorm

    簡介:Lindorm 是阿里云推出的一款適用于任何規模、多種類型的云原生數據庫服務,支持海量數據的低成本存儲處理和彈性按需付費,提供寬表、時序、搜索、文件等多種數據模型,兼容 HBase、Cassandra、Phoenix、OpenTSDB、Solr、SQL 等多種開源標準接口,適合元數據、日志、賬單、標簽、消息、報表、維表、結果表、Feed 流、用戶畫像、設備數據、監控數據、傳感器數據、小文件、小圖片等數據的存儲和分析。

    矩陣起源:MatrixOne

    簡介:MatrixOne 是面向未來的超融合云和邊緣原生 DBMS,它通過簡化的分布式數據庫引擎支持跨多個數據中心、云、邊緣和其他異構基礎架構的事務、分析和流工作負載。

    另外,前文還介紹過MatrixDB、HANA也具備多模特點,在此不再贅述。

    3.6 數據湖與MapReduce相關

    為了更好的整合數據,數據倉庫一般要求用戶提前定義好數據庫中表單的結構(schema),比如說一張公司員工的表單,可能會有人員的姓名,部門,加入公司的時間等等,這些所需的信息一般來講是可以提前定義好的。不過,隨著互聯網的發展,數據的格式也越來越靈活多變,有時候事先并沒有辦法定義好數據格式。比如微博,用戶每發一條微博,除了微博本身的文字信息外,在新版本的微博中,用戶可以選擇上傳地理位置信息,而老版本的微博就沒有地理位置信息,在將來的新版本微博中,又可能會有其它的新的信息。如果我們每添加一種新的信息,就對數據庫的表單結構進行更改,這樣表單的結構會很復雜,畢竟需要兼容所有微博里可能有的信息,而有些信息可能只有極少數微博才有。

    數據湖,作為數據庫的一個新的分枝,提供了更靈活的數據格式。在傳統的關系型數據庫中,同一張表單里的每一行數據都有相同的字段,而在數據湖中,用戶在插入數據的時候,通過 JSON 等格式,每一條數據都有可以有不同的字段,比如說某位公司員工的信息里有(年齡:25, 入職時間:2022 年 1 月 1 日),而另一位退休員工的信息則是(年齡:65,退休時間:2020 年 1 月 1 日)。通過這樣不同的字段,數據湖可以提供更靈活的格式,方便用戶寫入擁有不同字段的數據。只是,這樣不規則的數據,雖然在寫入的時候更加便捷,但在讀取查詢時會有更多效率方面的挑戰。

    MapReduce則是一種新的大數據工具,由Google于2004年研發,之后業界依據Google的相關論文,開發出開源版本的Hadoop與Spark等工具。MapReduce通常會被用在數據湖的數據分析階段,因此在這里我們將MapReduce與數據湖放在一起介紹。MapReduce將大數據的處理分為Map(映射)和Reduce(歸約)兩個步驟,比如說用戶想統計紅樓夢的120回章節中,“林黛玉”的名字出現的次數,如果用戶有六臺服務器的話,用戶可以讓每臺服務器各自統計20章節中“林黛玉”出現的次數,把120回分為六個20回的這一步,就被稱為Map,這樣這20回可以被不同的機器單獨處理,之后,用戶再將六臺機器得到的名字次數加起來,就可以得到“林黛玉”名字出現的總的次數,這個相加的操作被稱為Reduce,因為是把6份數據,歸約成了一份數據。

    相比關系型數據庫,MapReduce的查詢功能更加靈活,并且不要求底層數據結構化,因而MapReduce經常被用來處理非結構化的數據,因而與NoSQL數據庫一起,被當作非結構化數據的大數據處理工具。

    在這一部分,我們關注到的公司和產品有:

    阿里云:E-MapReduce

    簡介:開源大數據開發平臺 E-MapReduce(簡稱 EMR),是運行在阿里云平臺上的一種大數據處理的系統解決方案。開源大數據開發平臺 EMR 構建于云服務器 ECS 上,基于開源的 Apache Hadoop 和 Apache Spark,讓用戶可以方便地使用 Hadoop 和 Spark 生態系統中的其他周邊系統分析和處理數據。EMR 還可以與阿里云其他的云數據存儲系統和數據庫系統(例如,阿里云 OSS 和 RDS 等)進行數據傳輸。開源大數據開發平臺 EMR 的 SmartData 組件是 EMR Jindo 引擎的主要存儲部分,為開源大數據開發平臺 EMR 各個計算引擎提供統一的存儲優化、緩存優化、計算緩存加速優化和多個存儲功能擴展。

    H3C:E-MapReduce

    簡介:E-MapReduce 數據平臺服務:提供豐富的大數據組件即服務,包括但不限于分布式文件系統、NoSQL 數據庫服務、內存數據庫服務、離線計算、流式計算、內存計算、SQL on Hadoop 等服務,同時還提供自研統一 SQL 服務,可兼容標準 SQL,對外提供統一的數據查詢/分析服務,提升平臺的整體易用性。

    大應科技:Aloudata

    簡介:Aloudata 是一站式的敏捷數據工作臺,基于 AI 增強的湖倉引擎,提供自助式的數據準備和閃電般的查詢能力。Aloudata致力于讓企業無需搭建復雜ETL鏈路,業務人員即可自助完成數據處理和分析,讓每一個業務需求和創意都能及時獲得數據支撐。

    Databricks

    簡介:Spark與Hadoop是業界最主要的開源MapReduce工具,而Databricks是由Spark的創立者成立的商業公司,致力于為用戶提供更好的大數據分析工具。公司的主要發力點為數據湖與云計算,其開發的Delta Lake項目將數據湖與機器學習結合起來,方便數據科學家在格式并不規整的數據湖中進行數據分析。此外,Databricks也在微軟的Azure與Google Cloud上提供Spark的云服務。2021年8月,Databricks完成了第八輪融資,共融資16億美元,估值38億美元。

    HBase與Hive

    簡介:HBase是一個開源的非關系型分布式數據庫(NoSQL),運行于HDFS文件系統之上,為 Hadoop 提供類似于BigTable 規模的服務。HBase的表能夠作為MapReduce任務的輸入和輸出。Hive是一種用類SQL語句來協助讀寫、管理那些存儲在分布式存儲系統上大數據集的數據倉庫軟件。Facebook為了解決海量日志數據的分析而開發了Hive,后來開源給了Apache軟件基金會。HBase與Hive都屬于Hadoop生態的一部分,其對應的商業化公司有Amazon AWS,Cloudera等。

    3.7 文本搜索

    文本搜索引擎和數據庫有很多相似的地方,因此我們在這里將它列為一種特殊的數據庫。與文檔型數據庫的相似點在于,文本搜索引擎需要加載大量的文檔,建立文本索引,并對這些文檔依據關鍵字進行查詢,同時,分布式的文本搜索引擎一樣要處理數據在多臺機器上的分片與備份。不同之處在于,文本搜索引擎更關注于關鍵字搜索,因此會提供更多的語法工具,比如說中文的分詞工具,英語單詞的單復數變換工具等等。此外,文本搜索引擎收錄的文檔可能字數很多,但是更新頻率較低,因而通常會禁止用戶對已經存錄的文檔進行修改,而鼓勵用戶將修改后的文檔當成是全新的文檔另行存儲加載。而數據庫通常會支持數據的更新修改。此外,文本搜索引擎也不支持數據庫的事務操作。

    ElasticSearch

    ElasticSearch 是開源的分布式文本搜索引擎,是當前最受歡迎的企業搜索引擎。ElasticSearch 本身更關注于搜索,與支持增刪改查的傳統數據庫不同,ElasticSearch 只支持文檔的增加與刪除,并不支持文檔內容的修改。ElasticSearch 本身有一定的存儲功能,多被用于只讀類型的文檔存儲,此外,ElasticSearch 也不支持分布式事務。ElasticSearch 背后的 Elastic 公司在 2018 年 10 月在紐約證券交易所上市。

    3.8向量檢索引擎

    在人工智能領域,用戶進行模型訓練時會將數據進行壓縮轉換,變成相應的向量(vector),比如說把一張張圖片變成相應的向量,之后根據這些向量之間的距離來判斷對應照片的相似度。隨著人工智能的發展,向量檢索的速度成為AI領域的瓶頸之一,而向量檢索引擎正是解決這一問題的手段之一。

    賾睿信息科技:Milvus

    簡介:Milvus是上海賾睿信息科技有限公司(Zilliz)研發的海量特性向量檢索系統。Milvus依托GPU加速,提供極速特征向量匹配以及多維度數據聯合查詢(特征、標簽、圖片、視頻、文本和語音等聯合查詢)功能,并且支持自動分表分庫和多副本,能完美對接TensorFlow、Pytorch和MxNet等AI模型,可實現百億特征向量的秒級查詢。

    Faceboook Faiss

    簡介:Faiss是由Facebook研究院(FAIR)研發并開源的進行高效向量查詢檢索的代碼庫(library),它支持對不同大小的向量集的檢索,同時也實現了多種參數調優的算法,可以用作人臉識別,基因對比等用途。

    Proxima

    簡介:Proxima 是阿里巴巴達摩院系統 AI 實驗室自研的向量檢索內核。Proxima BE是 Proxima 團隊開發的服務化引擎,實現了對大數據的高性能相似性搜索。目前,其核心能力廣泛應用于阿里巴巴和螞蟻集團內眾多業務,如淘寶搜索和推薦、螞蟻人臉支付、優酷視頻搜索、阿里媽媽廣告檢索等。

    Vearch

    簡介:Vearch 是對大規模深度學習向量進行高性能相似搜索的彈性分布式系統,支持多種數據模型,如空間、文檔、向量和標量。

    (注:36氪對基礎軟件保持持續關注,通過和數十位行業人士溝通,以及多方收集資料完成了本文。但由于資源、視角有限,本文難免出現錯誤、片面等問題,歡迎各位讀者指正交流。)

    參考文獻:

    《深氪|鏖戰!國產數據庫》,36氪

    《2022年的企服投資:基礎層,還是應用層?|2022展望》,36氪

    《解讀開源的2021:從“開發者亞文化”,變成主流軟件開發模式》,InfoQ

    《產業調研:混沌初開的國產數據庫市場》,計算機文藝復興

    《中國數據庫管理系統市場指南》,Gartner

    《2020年中國行業大數據市場現狀及發展前景分析,未來五年市場規模或將近2萬億元》,前瞻研究院

    產品介紹部分主要來源于企業官網和其他公開資料,部分參考自墨天輪、DB-Engines、維基百科、百度百科,另感謝36氪作者楊逍對本文的貢獻。

    摘要:知名安全機構 TrailofBits 近日開發了一種新的 Python 工具,用于檢查 Python 包是否存在 CPython 應用程序二進制接口(ABI)違規,名叫 abi3audit。abi3audit 已經發現了數百個不一致和錯誤標記的包分發,每一個都是因未檢測到 ABI 違規而導致崩潰和可利用內存損壞的潛在來源。它在開源許可證下公開可用,因此您可以立即使用它!

    鏈接:https://blog.trailofbits.com/2022/11/15/python-wheels-abi-abi3audit/

    聲明:本文為 CSDN 翻譯,未經授權,禁止轉載。


    | Trail of Bits
    編譯 | 楊紫艷
    出品 | CSDN(ID:CSDNnews)
    Python 是最受歡迎的編程語言之一,具有相應的大型程序包生態系統:超過 600,000 名程序員使用 PyPI 分發超 400,000 個獨特的包,為世界上的許多軟件提供動力。
    Python 打包生態系統的時代也使它與眾不同:在通用語言中,只有 Perl CPAN 模塊比它早與打包工具和大部分標準的獨立開發相結合,使 Python 的生態系統成為主要編語言生態系統中較為復雜的一個。些復雜性包括:
    ? 當前兩種主要的打包格式(源分布和輪子),以及少量的特定領域和遺留格式( zipapps , Python Eggs , conda 自帶格式等。);
    ? 一組不同的封裝工具和封裝規范文件:setuptools、flit、poetry 和 PDM,以及用于實際安裝封裝的 pip、pipx 和 Pipenv;
    ? …以及相應的封裝和依賴規范文件:pyproject.toml ( PEP 518-style )、pyproject.toml ( Poes-style )、setup.py、setup.cfg、Pipfile、requirements.txt、MANIFEST.in 等。
    本文只介紹 Python 封裝復雜性的一小部分:CPython 穩定的 ABI。將展示什么是穩定的 ABI,為什么存在,如何集成到 Python 封裝中的,以及為使 ABI 違規更易意外出現,每一個部分是如何嚴重報錯。


    CPython 穩定的 API 和 ABI

    與許多其他參考實現不同,Python 的參考實現(CPython)是用 C 編寫的,并提供了兩種本機交互機制:
    ? C 應用程序編程接口(API),允許 C 和 C++ 程序員利用CPython的公共標頭進行編譯,并使用任何公開的功能;
    ? 應用程序二進制接口(ABI),允許任何 C ABI 語言支持(如 Rust 或 Golang )鏈接到 CPython 運行,并使用相同的內部構件。
    開發人員可以使用 CPython API 和 ABI 來編寫 CPython 擴展。這些擴展與普通 Python 模塊完全相同,但與解釋器的實現細節直接交互,而不是 Python 本身中公開的“高級”對象和 APIs。
    CPython 擴展是 Python 生態系統的基石:它們為 Python 中的關鍵性能任務提供了一個“逃生通道”,并支持本地語言(如更廣泛的 C、C++和 Rust 打包生態系統)的代碼重用。
    然而,擴展帶來了一個問題:CPython APIs 在不同版本之間發生了變化(隨著 CPython 實現細節的變化),這意味著默認情況下,將 CPython 擴展加載到不同版本的解釋器中是無法預測的。換句話說:用戶可能會很幸運,完全沒有問題,但是可能會因為缺少函數而崩潰,甚至最糟糕的是,可能由于函數簽名和結構布局的變化而導致內存損壞。
    為了改善這種情況,CPython 的開發人員創建了 stable API 和 ABI:一組宏、類型、函數和數據對象,它們可保證在小版本之間保持可用和向前兼容。換句話說:為 CPython 3.7 stable API 構建的 CPython 擴展也可在 CPython 3.8 和更高版本上正確加載和運行,但不能保證在 CPython3.6 或更低版本上加載和運行。
    在 ABI 級別,這種兼容性被稱為“abi3”,并且可以在擴展的文件名 mymod.abi3.so 中進行標記,例如,指定一個名為 mymod 的可加載的 stable ABI 兼容 CPython 擴展模塊。重要的是,Python解釋器不使用此標記執行任何操作。
    這是第一次出現這種情, CPython 不知道擴展是否與 ABI 兼容。接下來,將展示這種狀況與 Python 打包狀態的組合產生的問題。

    CPython 擴展和打包


    CPython 擴展本身只是一個簡單的 Python 模塊。為了對其他模塊有用,它需要像所有其他模塊一樣打包和分發。

    對于源發行版,打包 CPython 擴展很簡單(對于一些簡單的定義):源發行版的構建系統(通常是 setup.py)描述了生成本機擴展所需的編譯步驟,并且包安裝程序會在安裝期間運行這些步驟。

    例如,以下是如何使用 setuptools 定義 microx 的本機擴展(microx_core):

    通過源代碼分發 CPython 擴展具有優點(?) 和缺點(?):
    ? API 和 ABI 的穩定性沒有問題:程序包可以在安裝過程中構建,也可以不構建,并且在構建時,它運行的解釋器與構建時使用的解釋器相同。
    ? 源代碼構建對用戶來說是一種負擔:它們需要 Python 軟件的最終用戶安裝 CPython 開發標頭文件,并維護與擴展目標語言或生態系統相對應的本地工具鏈。這意味著在每臺部署機器上都需要一個 C/C++(以及越來越多的 Rust)工具鏈,從而增加了規模和復雜性。
    ? 源代碼構建從根本上來說是脆弱的:編譯器和本機依賴關系不斷變化,最終用戶(充其量是 Python 專家,而不是編譯語言專家)只能調試編譯器和鏈接器錯誤。
    Python 打包生態系統解決這些問題的方法是輪子。輪子是一種二進制分發格式,這意味著它們可以(但不需要)提供預編譯的二進制擴展和其他共享對象,這些對象可以按原樣安裝,而無需自定義構建步驟。這就是 ABI 兼容性絕對重要的地方:CPython 解釋器盲目加載二進制輪,因此實際和預期的解釋器 ABIs 之間的任何不匹配都可能導致崩潰(甚至更糟的是,可利用的內存損壞)。
    因為輪子可以包含預編譯的擴展,所以需要為支持的 Python 版本標記輪子。此標記使用 PEP 425-style “兼容性”標記:microx-1.4.1-cp37-cp37m-macosx_10_15_x86_64.whl 指定了為 macO10.15 x86-64 系統的 CPython 3.7 構建的輪子,這意味著其他 Python 版本、主機 OS 和體系結構不應嘗試安裝它。
    就其本身而言,這種限制使 CPython 擴展的輪子包裝有點麻煩:
    ? 為了支持{Python 版本、主機操作系統、主機體系結構}所有有效組合,打包者必須為每個組合構建一個有效的輪子。這導致了額外的測試、構建和分發復雜性,以及隨著軟件包支持矩陣的擴展而呈指數級的 CI 增長。
    ? 因為輪子(默認情況下)會綁定到一個 Python 版本,所以打包人員需要在每個 Python 次要版本更改時生成一組新的輪子。換言之:新的 Python 版本一開始只能訪問打包生態系統的一小部分,直到打包者及時更新。
    這就是穩定的 ABI 至關重要的原因:版本打包者可以為最低支持的 Python 版本構建一個“abi3”輪子,而不是為每個 Python 構建一個輪子。這就保證了輪子將在所有未來(次要)版本上運行,解決了構建矩陣大小問題和上述生態系統自擴展問題。
    構建“abi3”輪子有兩步:輪子在本地構建(通常使用與源發行版相同的構建系統),然后使用 abi3 重新標記為 ABI 標記,而不是單個 Python 版本(如 CPython 3.7 的 cp37)。
    關鍵的是,這兩個步驟都沒有得到驗證,因為 Python 的構建工具沒有很好的方法來驗證它們。這出現了更大的難題:
    為了依靠穩定的API和ABI正確構建輪子,構建時需要將 Py_LIMITED_API 宏設置為預期的 CPython 支持版本(或者,對于 Rust with PyO3,使用正確的構建功能)。這可以防止 Python 的 C 標頭使用不穩定的功能或潛在地內聯不兼容的實現細節。
    例如,要將輪子構建為 cp37-abi3(CPython 3.7+的穩定 ABI),擴展需要在其自己的源代碼中#define Py_LIMITED_API 0x03070000,或者使用 setuptools.Extension 構造的 define_macros 參數來配置它。這些很容易遺忘,然而遺忘時不會產生任何警告!
    此外,在使用 setuptools 時,打包者可以選擇設置py_limited_api=True。但這并沒有實現任何實際的 API 限制;它只是將.abi3 標記添加到構建的擴展名的文件中。CPython 解釋器當前沒有檢查這一點,因此這實際上是一個禁忌。
    要為穩定的 ABI 標記輪子,官方輪子模塊和 bdist_wheel 子命令的用戶需要使用--py-limited api=cp37 標志,其中 37 是最低 CPython 目標版本(此處為 3.7)。
    此標志控制輪子的文件名組件,如下所示:
    關鍵的是,它不會影響實際的輪子構造。輪子是由底層設置工具構建的。擴展看起來很適宜:它可能完全正確,可能有點錯誤(穩定的 ABI,但適用于錯誤的 CPython 版本),也可能完全錯誤。
    這種崩潰是因為 Python 打包的下放性質:構建擴展的代碼在 pypa/setuptools 中,而構建輪子的代碼在 pypa/swheel 中——兩個完全獨立的代碼庫。擴展構建被設計為一個黑盒子,Rust 和其他語言生態系統利用了這一事實(在基于 PyO3 的擴展中,沒有 Py_LIMITED_API 宏可以明智地定義——所有這些都由構建特性單獨處理)。
    總的來說:
    ? 穩定的 ABI(“abi3”)輪子是打包本地擴展的唯一可靠方式,無需大量構建矩陣。
    ? 然而,所有控制 abi3 兼容車輪構建的控制盤都無法相互關聯:可能是構建一個 abi3 兼容的車輪,卻沒有如此標記。或者構建一個非 bi3 車輪并將其錯誤地標記為兼容;或者錯誤地將 abi3 兼容輪標記為與不合適的 CPython 版本兼容。
    ? 因此,當前 abi3 兼容輪子生態系統的正確性值得懷疑。ABI 違規可能會導致崩潰,甚至是可利用的內存損壞,因此我們需要量化當前的狀態。


    實際有多糟糕?

    這一切看起來都很糟糕,但這只是一個抽象的問題:也有可能每個 Python 打包者都正確地構建了輪子,并且沒有發布任何錯誤標記(或完全無效)的 abi3 樣式輪子。
    為了了解事情到底有多糟糕,開發了一個審計系統。Abi3audit 的存在的理由是發現這些類型的 ABI 違規錯誤:它掃描單個擴展、Python 輪子(可以包含多個擴展)和整個包歷史記錄,報告任何與所指定的穩定 ABI 版本不匹配或與穩定 ABI 完全不兼容的內容。
    為了獲得一個可審計包的列表,將其輸入到 abi3audit 中,使用 PyPI 的公共 BigQuery 數據集生成了過去 21 天內從 PyPI 下載的每個包含 abi3 輪子的包的列表:
    (此處選擇了 21,因為在測試時突破了 BigQuery 配額。盡管預計回報會逐漸減少,看到一年內的完整下載列表或 PyPI 的整個歷史會很有趣。)
    從這個查詢中,得到了 357 個包,這些包是作為 GitHub Gist 上傳的。保存了這些包后,只需一次調用即可獲得來自 abi3audit 的 JSON 報告:
    該審計的 JSON 也可以作為 GitHub Gist 提供。
    首先,一些高級統計數據:
    ? 在從 PyPI 查詢的 357 個初始包中,有339 個實際審計的輪子。有些是 404s(可能是一開始創建然后刪除的),而另一些是用 abi3 標記的,但實際上不包含任何 CPython 擴展模塊(從技術上講,這確實使它們與 abi3 兼容!)。其中有幾個是 ctypes 風格的模塊,要么有一個供應商提供的庫,要么有加載主機預期所包含庫的代碼。
    ? 剩下的 339 個包裹之間總共有 13650 個貼有標簽的輪子。最大的(以輪子計)是 eclipse-zenoh-nightly,有 1596 個輪子(占 PyPI 上所有 abi3 標記輪子的近 12%)。
    ? 13650 個 abi3 標記的輪子總共有 39544 個共享對象,每個共享對象之間都有一個潛在的 Python 擴展。換句話說:平均每個 abi3 標記的輪子中有 2.9 個共享對象,每個對象都由 abi3audit 審核。
    ? 如果試圖解析每個 abi3 標記的輪子中的每個共享對象會發現各種奇怪的結果:許多輪子包含無效的共享對象:以廢話開頭的ELF文件(但在文件后面包含一個有效的ELF)、未清理的臨時構建工件,以及少數輪子似乎包含手動修改二進制文件的編輯器樣式交換文件。不幸的是,與 Moyix 不同,我們沒有發現任何貓耳。
    現在,有趣的部分:
    在 357 個有效包中,有54 個(15%)包含違反 ABI 版本的輪子。換句話說:大約六分之一的包中有輪子聲稱支持特定的 Python 版本,但實際上使用的是較新 Python 版本的 ABI。
    更嚴重的是:在 357 個有效的程序包中,11 個(3.1%)包含了完全違反 ABI 的行為。換言之:大約三十分之一的包中有輪子聲稱與 ABI 兼容,但根本不兼容!
    總共有 1139 個(約 3%)Python 擴展存在版本沖突,90 個(約 0.02%)存在完全的 ABI 沖突。這說明了兩件事:同一個包在多個輪子和擴展中往往會違反 ABI,而同一輪子中的多個擴展往往會同時違反 ABI。
    PyQt6 和 sip

    PyQt6 和 sip 都是 Qt 項目的一部分,并且都存在 ABI 版本沖突:多個輪子被標記為 CPython 3.6(cp36-abi3),但 API 僅在 CPython 3.7 中穩定。

    此外,sip 還有一些完全違反 ABI 的輪子,全部來自內部 _Py_DECREF API:
    refl1d
    refl1d NIST 的反射軟件包。NIST 發布了幾個標記為 Python 3.2 的穩定 ABI(絕對最低)的版本,而實際上目標是發布 Python 3.11 的穩定 ABI (絕對最高-甚至還沒有發布!)
    hdbcli
    hdbcli 是 SAP HANA的專有客戶端,由 SAP 自己發布。它被標記為 abi,這很酷!然而不幸的是,它實際上并不兼容 abi3:
    gdp 與 pifacecam
    雖然這是兩個較小的包,但很有趣的是,它們都存在穩定的 ABI 違規,這種違規不僅僅是引用/計數助手 API:
    Dockerfile
    最令人滿意的是這個,因為它是用 Go 編寫的 Python 擴展,而不是、C++ 或 Rust!
    維護人員的思路是正確的,但沒有將 Py_LIMITED_API 定義為任何特定值。Python 的頭文件“非常有用”地解釋了這一點:


    前進之路


    唯一的希望是列表中大多數極受歡迎的軟件包都沒有=存在 ABI 違規或版本不匹配問題。例如,加密技術和 bcrypt 都沒有出現,這表明在這一方面有強大的開發控制。其他相對流行的軟件包也存在版本沖突,但它們一般都很小(例如:期望一個僅在 3.7 中穩定的函數,但從 3.3 開始就一直存在)。
    然而,總的來說,這些結果并不好。這些結果表明:(1)PyPI 上的“abi3”輪子的很大一部分根本不兼容 abi3(或者與聲稱的不同版本兼容);(2)維護人員不完全理解控制 abi3 標記的不同旋鈕(并且這些旋鈕實際上不會修改開發本身)。
    總之,實驗結果表明這需要更好的控件、更好的文檔以及 Python 不同打包組件之間更好的互操作。然而,盡管幾乎所有軟件包的維護人員都試圖改進,但并沒有找到實際構建 abi3 兼容的輪子所需的額外步驟。此外,除了改進這里的包端工具之外,審核也是自動化的。設計 abi3audit 的部分目的是為了證實 PyPI 可以在這些輪子錯誤成為公共索引的一部分之前捕獲它們。
網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有