1月6日,由中國電子技術標準化研究院指導、CSDN主辦、OceanBase承辦,木蘭開源社區、開源中國、51CTO、思否、極客邦科技、稀土掘金、墨天輪、dbaplus協辦的DC2021分布式數據庫開發者大會于線上正式召開。 除了精彩紛呈的主論壇演講、圓桌論壇與極客夜宵等內容之外,在下午的分布式數據庫技術分論壇與分布式數據庫開源生態與應用分論壇上,來自國內外主流分布式數據庫的技術專家與各大開源社區、平臺負責人為開發者帶來了圍繞核心技術與開源生態打造的內容盛宴。 分布式數據庫技術分論壇 今年是數據庫發展的變革之年,亦是分布式數據庫嶄露頭角的重要時間節點。分布式數據庫技術在走向千行百業應用深海的大勢所趨下,越來越多的開發者關注于此,投身其中。下午14:00,DC2021分布式數據庫開發者大會分布式數據庫技術分論壇正式開幕,來自OceanBase、GaussDB、PolarDB、巨杉數據庫、StarRocks、Oushu科技數據庫以及MongoDB社區的8位產品技術專家,針對分布式數據庫領域最新的技術亮點與產品革新進行了深度分享。 一、OceanBase的一體化設計 OceanBase首席架構師楊志豐分享了主題為《OceanBase的一體化設計解析》的演講。OceanBase從2010年立項以來,其架構的演進一直圍繞可擴展與高可用特性去建立與融合,這也是為什么OceanBase會采用一體化設計的直接原因。OceanBase的一體化設計主要有四大方面:第一,OceanBase能夠兼備集中式數據庫和分布式數據庫的特性;第二,通過借鑒OLAP型數據庫的特性,不斷增強OceanBase的AP能力,從而形成了HTAP的能力特性;第三,通過多租戶能力,OceanBase在整個集群內部已具備資源的管理調度和隔離能力;最后一方面,OceanBase具備多模特性,可以更好地支持客戶SQL與NoSQL使用場景。 在演講中楊志豐介紹了OceanBase基于存儲模型與事務模型基礎提供的Table API接口,這個接口是和SQL在平行的一個位置和層次。在Table API基礎之上,如果應用對延時特別敏感,用戶可以直接通過Table API訪問OceanBase Server提供的原生服務,極大地減少網絡的時延。同時針對某些需要使用HBase特定業務場景,基于Table API接口OceanBase研發團隊還擴展了一個HBase API接口,解決了用戶在容災演練過程中遇到的困難。 楊志豐還介紹了OceanBase最新的3.2版本,3.2版本提升主要體現在三個方面,優化器、SQL執行引擎以及向量化的執行。楊志豐表示:對于單機分布式一體化的OceanBase系統來說,我們認為時延不再是一個選擇傳統亦或是分布式數據庫的絕對標準,因為在OceanBase單機分布式一體化的設計之下,你可以選擇魚與熊掌兼而得之。 二、GaussDB分布式技術的架構實現 華為GaussDB技術專家王磊帶來了《GaussDB分布式技術大揭秘》主題演講。GaussDB分布式集群的架構主要由5類組成:運維管理模OM組件、集群管理模塊CM組件,全局事務管理器GTM組件、協調節點CN組件以及數據節點DN組件。GaussDB高性能的關鍵在于分布式執行框架,這個框架會根據業務SQL,生成最優執行計劃,該框架主要包含算子下推與并行執行兩大核心技術。 GaussDB有四大特性:第一是高擴展性,體現在Scale-out在線橫向擴展;第二是高安全,體現在分布式防篡改技術;第三是高自治性,主要體現在AI for DB基礎上;第四是高智能性,主要體現在AI4DB技術上。 GaussDB高可用架構的出發點是軟硬件全棧冗余和分布式全組件冗余。在硬件層通過磁盤red冗余、雙交換機冗余、多網卡冗余,UPS電源保護等技術提供單點或多點硬件故障下的高可用能力。在軟件層,針對分布式集群中的每一幀組件,均做了組件級冗余。 王磊表示:GaussDB在分布式數據庫領域的積累和創新,使其能夠從容應對企業級高性能、高可用、高安全的核心訴求。未來,GaussDB會繼續在分布式數據庫領域堅持創新,勇攀高峰。 三、云原生+分布式的現代化數據庫—PolarDB-X 阿里云智能數據庫PolarDB產品經理胡中泉發表了《PolarDB-X核心技術能力解讀》主題演講,在演講中他主要介紹了PolarDB-X的整體架構以及核心能力。 PolarDB是一款基于分布式技術架構,是面向云原生和分布式結合的方向進行技術演進的分布式數據庫產品。PolarDB-X整體架構主要分4個部分:第一部分CN計算節點,主要提供分布式SQL引擎,解決分布式事務協調、優化器、執行器等;第二部分DN存儲節點,主要提供數據庫存儲引擎,解決數據庫一致性和持久化問題,并提供計算下推能力;第三部分GMS,全局元數據服務,主要提供分布式下域元數據和全局授時的服務。第四部分CDC,提供全一致性的binlog,給下游更好的體驗。 CN可以分為協議層、優化器和執行器一共三層,第一層協議層實現了MySQL最后協議,提供與云原生MySQL最接近的語法解析服務,負責建立連接、接收用戶發送的數據包,組裝成SQL和參數化傳遞給優化器。第二層優化器,對于SQL的處理,包括語法解析、校驗,生成邏輯計劃,并通過優化產生物理執行計劃傳輸給執行器,優化器使用了Apache的RB和CB融合框架,可以實現自適應的TP和AP區分執行,并且可以提供執行計劃管理的功能。最后一層執行器,PolarDB-X的執行器接收到物理執行計劃后,會根據計劃類型確定執行模式。 透明分布式是PolarDB-X核心能力之一,它能讓應用在使用PolarDB-X的過程中,給予用戶猶如使用單機數據庫一樣的體驗。與傳統中間件的類型的分布式數據庫相比,具有透明分布式能力的PolarDB-X不需要應用考慮分區件的概念,應用可以完全將單機上的SQL復用到分布式數據庫上來。同時,PolarDB-X的透明分布式能力,能極大減少從單機數據庫到分布式數據庫的遷移成本。 四、OceanBase一站式企業級原生分布式數據庫管理解決方案 OceanBase產品部總經理王南帶來了《一站式企業級原生分布式數據庫管理解決方案》主題演講。王南將OceanBase的發展之路總結為三大階段,第一個階段為從無到有的構建,第二個階段是產品走向通用行業與場景的階段,而第三個階段OceanBase將在一體化架構以及混合負載和多云多模這兩個方向上發展。 在思考如何解決海量數據給數據庫帶來的擴展問題過程中,OceanBase通過兩種視角,不同思路解決這一問題。王南表示:第一個視角就是對于開源和商業的生態的雙生態的支持,也就是Oracle生態及MySQL生態,OceanBase通過雙引擎能夠更好地來同時兼容這兩個生態。另一個視角則是OceanBase想在數據庫層來去解決集中式向分布式演變過程中遇到各種各樣的問題,除了會在語法層面上來去做兼容之外,OceanBase也會在語義以及分布式的內核的層面來去做兼容。 王南介紹了今年OceanBase3.X版本對于開發工具家族的全面升級,在開發者的OTC工具,運維的OCP工具,以及數據遷移的OMS工具基礎之外新增了一個OMA工具。OMA工具幫助客戶從集中式到分布式的遷移過程中快速評估以及完成應用。在開發工具方面,OceanBase進行了兩大方向的核心能力提升:在整個開發工具層面構建安全管控能力與在應用性上進行了深度優化。同時王南在演講的最后還介紹了OceanBase全新的圖數據庫成員圖Graph,這個圖庫可以提供OceanBase在多模和大規模實時分析計算上很強大的能力支撐。 五、湖倉一體釋放全量數據價值 巨杉數據庫聯合創始人許建輝為線上開發者分享了主題為《湖倉一體Data Lakehouse釋放全量數據價值》的演講。在湖倉一體化的大趨勢下,產生了諸如數據在存儲中相對孤立,產生冗余的問題。同時在海量數據趨勢下,也對實時查詢、實物保障、靈活分析等能力提出更高的要求。 巨杉數據庫通過多模的存儲引擎,能夠同時支持結構化、半結構化和非結構化的數據的統一存儲,并能夠實現統一的事務和一致性能力。經過多模的計算引擎,能夠實現高并發的連接操作、實時計算和海量數據分析的能力,同時能夠支持橫向和縱向的海量數據的擴容,實現數據的存儲和處理。 巨杉數據庫是一個全量的數據平臺,通過多模存儲引擎等類型產品的數據能夠進行天然的存儲。通過高并發的SQL引擎,分區計算能力,只查詢并發計算,算子下推精準過濾和高性能的事務,能夠實現海量數據的并發查詢和實時分析。通過流式風險引擎、行列混合存儲、存算分離、高性能的緩存和彈性計算能力,能夠實現靈活的海量數據分析。通過統一的元數據管理和權限等,能夠實現在多引擎的一致性。 在數據容災方面,許建輝介紹到:基于巨杉引擎級的一個副本容災,可以實現RTO為零,還可以實現分區組級別的局部容災機制,盡最大可能保證系統的可能性。面對在整個系統中是部分機器故障,我們可以采用部分機器的容災切換,從而能夠最大幅度地利用了系統的可行性,而不用產生整個集群的災備切換。 六、StarRocks2.0的介紹與前瞻 StarRocks產品負責人趙恒帶來了《StarRocks2.0的特性介紹&版本前瞻》主題演講。StarRocks是一款主打急速統一的MPPE數據庫,在數據分析場景上會有非常廣泛的應用。全新的StarRocks2.0致力于將OLAP多維分析、實時分析、高并發查詢和Adhoc能夠在一個統一的引擎中進行實現。 趙恒表示:多表分析場景下,我們使用了一個TPCH的測試集,在這個測試集下,我們對比了StarRocks新版本和舊版本有3倍到5倍的性能提升。同時我們在計算層在RuntimeFilter上也做了一些優化。 在實時更新的場景下,StarRocks2.0實現了一個Primary key的模型,通過delete and insert的方式,去實現消除了merge on Reed。在簡單查詢上根據導入版本數量的不同可以有3至10余倍的性能提升。 在2.0的版本中,StarRocks重新構建了內存的管理框架,hook了所有的內存分配函數,然后并且基于線程,進行內存的統計。在生態對接方面,StarRocks2.0通過在最近的版本也在過Flick connector上進行了很多的優化,可以實現數據的精確一次或者至少一次的導入。在讀取方面,新版本實現了直聯BE的方式,來滿足大批量讀取數據的一個分析需求。在實施同步方向,通過Flick CDC和遷移工具,實現了從TP數據庫的秒級同步。 七、新一代云原生數倉OushuDB的架構哲學 歐數科技數據庫首席架構師陶征霖分享了《新一代云原生數倉OushuDB的架構哲學》的主題演講。OushuDB是一款基于云原生的數據倉庫,其計算和存儲是完全分離的,有著多虛擬計算集群的特性。其次OushuDB通過SIMD的指令級實現了一個向量化的加速,并能夠完全SQL兼容,支持混合型的負載。 OushuDB從上往下的體系架構有四層,分別為元數據集群、主節點集群、計算集群以及共享的數據層。在OushuDB中,不同的計算集群可以共享同一份的存儲以及同一份的元數據,同時在計算機接電測實現了數據的緩存。在這樣架構下OushuDB可以提供一種更高的并發度,以及集群間更好的一個資源的隔離。 在云原生的架構下,OushuDB有一個彈性的執行引擎,用戶可以根據查詢數據量的大小,以及根據當前集群資源的使用情況,動態地決定調度多少計算資源參與計算。同時OushuDB還有另一大特性是可插拔存儲,不同的存儲可支持不同的負載。 八、具有數據一致性保證的DaaS平臺 MongoDB中文社區主席 Tapdata Founder&CEO唐建法帶來了主題為《“DeltaLake”on MongoDB:具有數據一致性保證的DaaS平臺》。 現在的企業往往是有幾十套甚至上百套的業務系統,這些業務系統是互不相連的,當你需要用數據的時候,需要各種API或者是用ETL去抽數等等,這也就是數據孤島的由來。數據孤島目前有著非常多的解決方案,例如傳統的ETL、代碼抽數,消息中間件或者是中央化的數據平臺。 但現有的方案都存在著局限性,即都是面向AP系統而打造,對于數據的分析存在滯后性。而Delta Lake有一套全新的設計,即在處理過程中,保持著每一小批的數據的增量,把這個增量記錄下來,然后可以在這個基礎之上回滾,即可實現一個相對實時的數據平臺。 而在DeltaLake的啟發下,唐建法及其研究團隊提供了一個全新的increment data service數據平臺。唐建法表示:我們為TP型用戶提供一個數據平臺,不是基于批量的,而是基于實時的一個模式。它與目前絕大多數數據平臺常用的Hadoop最大的差別,就是我們能夠提供毫秒級、高于Hadoop百倍的查閱性能,然后寫入能夠支持這種及時更新、原地更新。目前我們的數據平臺在零售業、制造業都有很好的落地。 分布式數據庫開源生態與應用分論壇 在開源的大趨勢下,分布式數據庫與開源的結合如同水到渠成一般呈現在開發者眼前。在接下來的分布式數據庫開源生態與應用分論壇上,來自InfoQ、OceanBase、SphereEx、Apache Doris PPMC、CSDN、紅象云騰、Flink CDC Maintainer & Apache Flink Committer、Seata的媒體,企業與開源社區負責人圍繞開源議題開展了多維度分享。 一、開源分布式數據庫及行業趨勢解析 infoQ主編王一鵬分享了《開源分布式數據庫及行業趨勢解析》的主題演講。 2021年1月,開源許可證流行度首次超過了商業許可證的流行度,分布式數據庫的價值以及它的架構上的優勢越來越被大家所認可。在演講中王一鵬使用 Star、Fork和Commit數量來對比國內外分布式數據庫的典型產品。他發現在國內可能一般情況是Star數量高于Commit數量,而在國外一般是Commit數量高于Star數量。 王一鵬總結了四點關于國內開源分布式數據庫的觀察:
對于開源分布式數據庫的未來,王一鵬表示:分布式數據庫是業內共識的主要技術潮流之一,PGXC和NewSQL兩種風格都有成功的產品。分布式數據庫在快速進入金融業,革新各大銀行的底層基礎設施。開源以高效的研發組織形式,動搖了傳統商業數據庫的根本,同時在人才梯隊層面開源已經形成了技術創新的閉環。 二、OceanBase社區版核心能力解析 OceanBase研發總監&開源負責人封仲淹帶來了題為《OceanBase社區版核心能力解析》的演講。OceanBase歷經11年的發展,從最早的一個簡單的存儲系統不斷創新,自研成為今天的分布式系統。在演講中封仲淹表示:開源是一種很好的聯結上下游開發商、用戶和開發者不斷打磨產品的有效方式。 在社區發展上,OceanBase的社區用戶已經超過23000名,外部超過100名開發者,與超過100名的企業用戶進行了深度的探索,進行了POC。在社區建設上,OceanBase的GitHub點贊數已經超過4000次,Fork超過860多個,Commit數超過640次。在最為關鍵的社區活躍度上,OceanBase社區每日和用戶的溝通次數超過了300次,并且社區問答數迄今為止已經超過4600次,在技術上與超過3500名開發者進行了深度的交流。 同時在演講中,封仲淹分享了OceanBase在支付寶、中汽知投、TPCC測試、短視頻廠商以及銀行的“兩地三中心”中的實際案例,通過六大應用場景詳盡地體現了OceanBase的高可用、低成本、高擴展以及HTAP混合負載能力。 封仲淹介紹了OceanBase社區版3.1.2版本中最新推出的社區版工具體系中的五大特性: OMS社區版:OMS是OceanBase提供的一站式數據庫傳輸產品,支持多種關系數據庫以及消息隊列等數據終端與OceanBase之間的數據復制。 OCP社區版:OCP是OceanBase的管控平臺,可以大幅降低DBA和運維的壓力。 ODC支持社區版:ODC是客戶端開發套件,能夠使用戶更加方便地管理和使用OceanBase,管理表、視圖、庫等存儲對象,進行SQL的操作,以及導入導出等高級功能。 秒殺熱點行優化:秒殺熱點行優化核心是進行提前解行鎖,將過去事務中的占時最大的日志刷盤和同步進行解行鎖。在性能測試中,優化后性能提升了超過4倍。 開放Table API和HBase的API:簡化了運維流程的同時,可以保障開發人員不用擔心GC和抖動問題。同時提供了更快的性能,如scan性能提升2.42倍,insert性能提升1.7倍。 三、分布式數據庫下的Proxy與Proxyless架構 SphereEx創始人張亮發表了《分布式數據庫下的Proxy與Proxyless》的主題演講。分布式數據庫的現狀主要是從單一化向多樣化去發展,隨著應用場景越來越多,數據量越來越大,并發越來越高,吞吐量的要求越來越高,用一款數據庫去適用所有場景是不可能的。現有的異構數據庫存在著數據庫訪問協議、SQL方言、存儲接口和結構均不同、以及數據庫間無協作能力的痛點。同時異構數據服務也存在著單一數據庫周邊服務無法復制、難于處理多源數據庫的共性需求痛點。 ApacheShardingSphere提出了一個叫做Database Plus的概念,這個概念的目標就是希望構建數據庫上層生態和標準。開發者可以使用標準的SQL和原生的數據庫協議,通過ShardingSphere去訪問異構的多元化數據庫。同時在可插拔架構之上ShardingSphere提供了增量的能力,可以讓用戶、開發者通過ShardingSphere提供的頂級接口進行能力的開發。 張亮介紹了ShardingSphereProxy、JDBC、Proxyless三大架構模式。其中Proxy有著跨語言、零侵入、隔離業務和數據計算資源的優勢,但性能較低。而JDBC機構有著性能高、零侵入的優勢,但其缺點也較為明顯,僅支持Java且占用業務資源。而在演講中張亮也提出了ShardingSphere Mesh架構設想,這一架構能夠提供配置治理、流量治理以及部署治理的能力。 四、Apache Doris——極速易用的OLAP數據庫 ApacheDoris PMC&百度資深研發工程師楊政國分享了《Apache Doris——極速易用的OLAP數據庫》的主題演講。 Doris是由百度自主研發并貢獻給Apache社區的一個MPP架構分析型數據庫產品,目前是國內唯一的分析型數據庫孵化項目。Doris全面兼容MySQL的網絡協議,簡單易用,不依賴任何外部組件。Doris通過精心設計的MPP框架、向量化執行引擎、智能物化視圖等多種技術,能夠實現對于海量數據的毫秒/秒級響應,適用于高并發、高吞吐、低延時等等多場景的需求。 Doris基于高效的列存和現代化的MPP框架能夠實現非常極致的查詢性能。由于其完全兼容MySQL的網絡協議以及標準的SQL,開發者可以非常方便地將Doris與現有的系統進行融合。同時Doris能夠支持離在線一體,通過靈活的資源配置策略,能夠支持離線的大吞吐和高并發,適應非常豐富的場景。 楊政國在演講中表示:我們實現了三種非常精巧的數據模型。第一種是聚合模型,會根據相同的key對Value進行預先的聚合,通過提前聚合提升查詢的性能。另外我們也實現了Unique Key主鍵唯一模型,key相同的時候會對Value進行去重,從而我們也實現了精確去重和行級更新。另外我們也實現了明細模型,我們不需要提前聚合數據,實現快速排序,能夠存儲更多的明晰數據。 五、從CSDN社區來看開源數據庫的發展趨勢 CSDN開源平臺負責人謝志鋒帶來了《從CSDN社區看開源數據庫的發展趨勢》的主題演講。他談到,數據庫本身的演進歷史是一個從技術驅動到需求驅動、從單一到多樣的過程,其中也誕生了諸如CAP理論、事務ACID原則、BASE原理(NoSql、分布式)、一致性算法等重要理論原則。在數據庫全新的技術時代下,一定會有大量的新型數據庫出現,同時開源一定在其中占據很大的比重。 從CSDN網站中能夠看出數據庫這個話題在開發者當中非常重要,排名前20的數據庫在CSDN上都有超過20萬的資源、搜索量和下載量。目前CSDN已經做了一個開源的托管平臺GitCode,國內主流的傳統、新興數據庫廠商大部分都已經入駐。 從CSDN的BI大數據查詢訴求出發,CSDN的BI數據目前已經超過了70T,支持公司內部的業務分析以及CSDN用戶的智能推薦功能。謝志鋒表示:為了優化查詢,我們從租戶使用,數據表管理,數據輸出三個方面做了優化。在實踐過程中我們發現OceanBase能夠兼容MySQL所有的功能,遷移的門檻也很低,尤其是它的連接數很大,要求的數據量又很多。在需要分庫分表且NoSql查詢無法滿足的情況下,OceanBase就非常適用。 六、OceanBase及Hadoop在PB級大數據場景下的應用探索 紅象云端創始人&Hadoop技術講師童小軍分享了題為《OceanBase及Hadoop在PB級大數據場景下的應用探索》的演講。紅象云端旗下的Redoop Enterprise產品基于大數據場景需求的多樣性打造,整個Hadoop架構包含了幾十個不同的開發軟件,通過組合的方式完成各種各樣的需求,包含批處理需求、實時需求,云計算需求,以此服務整個企業。 童小軍表示:在選擇分布式數據庫時,我們列了一些必要的標準。首先是開源開放,同時分布式數據庫需要具備高可用與線性擴展能力,與Hadoop比較接近。第三要求這款產品具有強大而事務處理能力以彌補Hadoop在事務處理能力的不足,最后需要與MySQL、Oracle有很好的兼容性,最終我們選擇了OceanBase。 在演講中童小軍介紹了Hadoop與OceanBase組合服務的客戶案例。在新能源光伏電力大數據上線的案例中,OceanBase+Redoop Enterprise的平臺服務于數據接口、系統應用、報表展現、可視化等一系列功能,形成了一個敏捷的,統一的電力行業大數據平臺。在通信領域的大數據案例中,通過Redoop Enterprise平臺部署了一系列安裝、監控、運維等各種組件,OceanBase在中間承擔了關鍵的替換MySQL的任務。 七、基于 Flink CDC的全增量一體化數據集成方案 FlinkCDC Maintainer & Apache Flink Committer徐榜江發表了《基于Flink CDC的全增量一體化數據集成方案》的主題演講。通常來講CDC技術主要是面向數據庫的變更,用于捕獲數據庫中數據變更的技術。而Flink CDC將傳統的數據庫CDC技術跟Flink 底層的log機制進行深度結合,再利用Flink 優秀的管道能力和豐富的上下游生態,將CDC數據通過加工后同步到下游。 在入湖架構中,FlinkCDC提供了全增量實時同步能力,能夠做到不影響業務的穩定性,將數據的產出提高到分鐘級別。同時,FlinkCDC能夠做到全量和增量的一體化同步,一個組件、一條鏈路就解決需求,其鏈路更短,組件更少。 在演講中徐榜江介紹了基于Flink CDC做全增量一體化數據集成有四個核心特性,分別是增量快照讀取、存儲寫入友好、支持異構數據融合、支持分庫分表合并。在最后徐榜江分享了Flink CDC開源社區最新的動態,除了版本高速更新外,在GitHub的十大年度增長中,Flink CDC的增長超過330%,目前已經到了1500左右。 八、基于 Seata &OceanBase 在微服務架構下的數據一致性解決方案 Seata開源社區負責人季敏帶來了主題為《基于 Seata &OceanBase 在微服務架構下的數據一致性解決方案》的演講。根據Seata在2019年在微服務市場中做的調差顯示,分布式服務是微服務中最大的痛點。分布式事務的主要業務場景可以歸為三類,一種是跨庫,例如Oracle到MySQL的遷移,另一種是跨服務,最后一種是資源多樣性。 關于Seata社區的演進,Saeta最初的定位是開源的分布式事務解決方案。對市面上主流的數據庫,Seata都進行了廣泛地支持。Seata從概念上定義了分布式事務的角色,在原生的Oracle XA角色,又擴展了TCC角色扮演獨立的協調性,增強了事務邊界的可擴展性。同時Seata通過抽象出實物模型框架Framework,并將AT、TCC、Saga、XA模式融入其中進行了重塑。 季敏表示:Seata未來長期的發展路徑就是支持更多數據庫生態,這樣的話就可以做到我們在業務的應用中可以無縫地使用各種數據庫。當我們做到這一點,Seata跟數據庫生態的集成就是一個完全透明、非常緊密的結合,我們也期待著未來Seata能支持數據庫生態中有更好的應用架構。 |