「技術乾貨」分布式 SQL:資料庫的未來發展方向

2020-12-23 海牛大數據

資料庫體系結構發展的下一步是分布式SQL,今天就讓我們來聊一聊它的一些顯著特徵。

隨著組織過渡到雲,他們最終發現,在一些最關鍵的應用程式背後的舊式關係資料庫根本無法利用雲的前景,並且難以擴展。是資料庫限制了這種轉換的速度和有效性。為了解決此問題,組織希望獲得經過測試的關係數據存儲(例如Oracle,SQL Server,Postgres和MySQL)的可靠性,但要具有雲帶來的規模和全球覆蓋範圍的好處。

一些人轉向NoSQL存儲庫來嘗試滿足這些要求。這些替代方案通常可以滿足規模要求,但由於不是完全為提供真正的一致性而設計的,因此不能作為事務資料庫使用。最近,一些NoSQL解決方案已經提供了「 ACID事務」,但它們充滿了警告,並且無法為財務分類帳、庫存控制和身份管理等任務關鍵型工作負載提供必要的隔離級別。

新型資料庫:分布式SQL

一些在全球範圍內運作的最成功的公司實際上已經解決了這個問題,並建立了專門的資料庫來解決這個問題。最公開的例子是Google Cloud Spanner。2012年,Google在Spanner上發表了一篇論文,展示了一種查看資料庫的新方法,該方法植根於分布式系統和全球範圍。

描述中有很多內容,還有長達14頁的論文,詳細介紹了他們如何構建一致且可擴展的資料庫。內容非常精彩,概述了資料庫下一步發展的基礎:分布式SQL。

是什麼構成了分布式SQL資料庫?

為了在分布式環境中交付真正可伸縮的SQL,已經進行了幾次嘗試。有些人試圖對現有資料庫進行改造以滿足他們的需求,但這最終無法實現真正的分布式SQL資料庫的承諾。那麼,什麼構成了分布式SQL資料庫呢?需求可以概括為五個核心條件:

1.規模

分布式SQL資料庫必須無縫擴展,以反映雲環境的功能,而不會引起操作複雜性。正如我們無需繁重的工作就可以擴展計算一樣,資料庫也應該能夠擴展。這包括在資料庫中的多個分布式參與者之間均勻分布數據的能力。

2.一致性

分布式SQL資料庫必須在分布式環境中提供高度的隔離。在基於雲的世界中,默認的體系結構是分布式系統和微服務,由於多個運營商可能試圖處理同一數據,因此事務一致性變得困難。資料庫應該調解爭用,並提供與單實例資料庫相同的事務隔離級別。

3.彈性

分布式SQL資料庫自然必須提供最高級別的彈性,而無需任何外部工具即可完成此任務。云為我們的工作負載提供了一個永遠在線的環境,並且資料庫應該具有相同的屬性。使用分布式資料庫,我們可以將故障恢復所需的時間減少到接近零,並且無需任何外部配置即可自然地複製數據。

4.地理複製

分布式SQL資料庫應允許在複雜,分散的地理環境中分布數據。雲提供了以可接受的服務質量到達全球每個角落的能力,並且資料庫不應限制你的應用程式這樣做。它應該可以滿足你的期望。

5. SQL

儘管這四個技術要求至關重要,但首先有一個關鍵的先決條件。資料庫必須使用SQL。它是數據的語言,也是所有應用程式邏輯的默認語言。我們不必重新培訓開發人員以使用資料庫。他們應該能夠使用他們已經熟悉的SQL方言。

有一些資料庫可以滿足這些要求。當然,該列表包括Spanner,但你也可以將Amazon Aurora,Yugabyte,FaunaDB和CockroachDB視為此新類別的成員。所有這些成員都以某種形式滿足要求,其中一些形式要比其他形式更好。顯然,該列表中缺少Oracle,Postgres,MySQL和所有NoSQL選項。儘管每個都可以滿足某些要求,但是它們都不滿足所有要求,因此不能視為替代方案。

6.數據局部性

一旦你生活在一個分散的世界中,很明顯資料庫本身實際上可以處理住所數據。參與者位於各個地區或數據中心,就可以了解每個位置,然後將其存儲的數據綁定到某個位置。一些應用程式架構師已將其實現為應用程式的一部分,但這種方法容易出錯且易碎。使用資料庫根據表中的某些欄位對數據進行地理分區是分布式SQL的新要求。這使你可以使用資料庫來解決數據主權問題。它也可以用於使數據跟隨用戶,因此你可以確保對他們的信息的低延遲訪問或將數據綁定到顯式的雲,從而可以最大程度地減少出口費用。

7.多-雲

分布式SQL資料庫的一個獨特特徵是它具有半自治單元,它們都參與較大的系統。每個單元都應該能夠自己部署,然後加入更大的系統CockroachDB集群。這是一個固有的特徵,助長了上面列出的前五個要求。但是,這也可以用於將資料庫擴展為真正的多雲。資料庫不應依賴單個網絡來完成分發。應該脫離這些限制,以便參與者可以位於任何地方,無論是任何公共雲,私有雲,甚至是單個本地實例。對於我們生活在分布式混合和多雲世界中的計算的未來,這一要求至關重要。

分布式SQL的基本要求

儘管上述七個需求是分布式SQL所獨有的(嗯,除SQL外,其他所有需求),但重要的是要注意,它仍然是一個資料庫,當然,要滿足作為資料庫的基線需求。以下是一些期望值:

1.管理:你應該能夠使用一組命令行和基於圖形的工具輕鬆地安裝和配置資料庫。這包括控制環境和控制數據生命周期以進行備份/還原的能力。以及創建表,定義和實現方案,設置索引/分區以及重新創建DDL的能力。

2.優化:資料庫應允許DBA深入了解查詢的性能以及優化查詢執行的能力。這包括諸如基於成本的優化器之類的高級功能,在分布式世界中,它成為一個棘手的新概念。

3.安全性:與任何企業軟體包一樣,安全性至關重要,資料庫應提供認證,授權和問責制等關鍵AAA功能。它不應該獨立存在,而應該與身份管理和治理的中央真理來源集成在一起,以便可以為其所包含的數據(在表,行和列級別)設置一致的策略。

4.集成:資料庫不能單獨運行,而應使用經過良好測試或已知的驅動程序與現有應用程式集成。它應該與現有的ORM很好地集成,並且還具有批量攝取或導出的能力。它還應提供關鍵功能,使其能夠與ETL工具配合使用並更改數據捕獲功能,以與流分析或雲存儲等更高級的服務集成。

這些「基礎」要求非常關鍵,它們預示著一個更加成熟的企業就緒資料庫。它們可能不是最令人興奮的功能,但對於任何項目中的採用和成功至關重要。

評估分布式SQL選項

CockroachDB是你的雲原生分布式SQL資料庫的絕佳選擇。它已幫助數百個組織將最平凡的工作負載和一些最關鍵的任務遷移到雲。它已成為更高級的協調環境中雲原生策略的基礎。我們為自己的建設感到自豪。

我們也是這種新興類別的擁護者,並相信分布式SQL是資料庫的正確演進,也是我們在雲中管理數據的方式的未來。為此,我們強烈認為,在涉及這些核心要求時,我們的解決方案和其他所有方法都應受到最高重視:

規模一致性彈性地理複製SQL地區性多-雲管理優化安全集成滿足所有這些要求的資料庫已經成熟,可以為雲中的關鍵任務(而不是關鍵任務)應用程式所信任。而且其中一些要求並不簡單。這些是高級主題,需要花費一些時間才能正確。當你與供應商討論這些項目時,我們鼓勵你深入研究一致性和本地性等概念。儘管每個人都閱讀相同的論文,但最終歸結為實施,更重要的是生產使用。與任何新類別一樣,這已經成為了最重要的問題,因為只有在生產中才能識別並解決複雜的極端情況和問題。因此,最後(也是第12個)要求是成熟度

總結

以上就是今天的內容了,如果對你有幫助,希望你能夠關注、點讚、轉發一鍵三連支持一下。

需要完整學習線路和配套課堂筆記,請回復111。

相關焦點

  • 36氪首發 | 基於自研分布式內存及流資料庫技術,「柏睿數據」獲2...
    36氪獲悉,大數據與人工智慧公司「柏睿數據」本日正式宣布完成2億元C輪融資,由海通證券旗下南方融合基金與盛石資本旗下長三角產業創新基金聯合領投,同時B輪投資方東方嘉富亦追加了投資。而隨著Hadoop分布式架構的出現和發展,關係型資料庫發展到第三代,基於Hadoop之上的Hive、Impala、Spark SQL等分布式SQL查詢引擎則讓分析型資料庫進一步完善,朝著第四代發展。
  • 巨杉資料庫完成數億元D輪融資,引領金融級分布式資料庫發展
    對此,本輪領投方,中金資本董事總經理王雷表示:「分布式資料庫是數據時代新興企業IT架構的核心基礎軟體,是資料庫發展的大趨勢。如今,企業級服務能力已經成為資本市場最為關注的核心價值。分布式資料庫公司Snowflake剛剛以超過700億市值,成為美股最大的軟體IPO案例,其背後的價值體現絕不僅僅來自於雲原生技術。
  • 易用、穩定、高效,萬裡資料庫開啟新一代分布式資料庫新紀元
    萬裡資料庫聯合創始人林韶賓受邀於主會場發表《新一代分布式資料庫的產品理念和落地實踐》的演講,從整個資料庫行業的發展、國內分布式資料庫的技術演變出發,講述了萬裡資料庫「易用、穩定、高效」的產品理念和對用戶的重要意義,以及如何以技術驅動創新,全方位保證該理念的落地實踐,做出優秀的新一代分布式資料庫,引發現場觀眾熱議。大勢所趨,新一代分布式資料庫如何定義?
  • 產業分布式技術變革乘風破浪,資料庫國產化巨浪加速
    近日,在2020中國系統架構師大會上,騰訊雲資料庫技術負責人雷海林圍繞騰訊雲資料庫異構多源同步遷移技術方案進行了分享。」資料庫未來一定是向分布式方向發展,資料庫核動力升級的時代即將到來。」雷海林表示。
  • 企業級開源分布式資料庫廠商PingCAP完成2.7億美元D輪融資
    據了解,本輪融資將用於分布式資料庫關鍵核心技術的研發,聚焦解決方案和專業服務支持體系的不斷完善,持續加大開源社區生態體系建設,進一步推進雲資料庫服務在全球市場的覆蓋,持續領跑全球新一代分布式資料庫賽道。
  • 資料庫基礎研究新進展:騰訊雲TDSQL首度公開分布式多級一致性技術...
    騰訊雲TDSQL資料庫長期致力於基礎研究創新,並持續獲得關鍵技術突破。近日,在第11屆DTCC(中國資料庫技術大會)大會上,騰訊雲TDSQL資料庫宣布實現了分布式資料庫領域高性能的強一致性工程系統。該系統技術提供的多種級別強一致性,在實現分布式資料庫「雙一致性(事務一致性、分布式一致性)」的同時,極大地提高了分布式事務型集群的處理效率。這是國產資料庫團隊再一次攻堅突破全球分布式系統、資料庫領域核心難題的最佳實踐。
  • 民生銀行的資料庫轉型之路:「懂行人」華為助力打造分布式技術平臺
    2020年以來,新冠疫情突然爆發,同時衝擊著國內金融業的發展。如何從容應對各類未知風險,確保銀行整體業務的良性發展,成為擺在民生銀行(600016)面前的一道難題。  2019年9月,中國人民銀行發布了《金融科技發展規劃》,提出「要加快扭轉關鍵核心技術和產品受制於人的局面」。
  • 達夢分布式資料庫演進
    正文  我分享的主題是「達夢分布式資料庫演進」,主要分享達夢公司分布式資料庫演進、發展歷程,介紹達夢公司對分布式資料庫未來發展和應用前景的分析觀點。  在正式分享前,我想先從幾個不太相關的小故事講起,以歸納我的核心觀點。
  • 對話巨杉資料庫核心研發:分布式資料庫修煉之路
    分布式資料庫是當前資料庫發展的主要方向,但是一直以來資料庫的核心研發都是十分神秘的團隊,作為巨杉資料庫幕後的隱士高人,他們對資料庫發展以及資料庫研發團隊的看法是什麼呢?本文我們就由一位巨杉資料庫的技術「老江湖」向大家分享分布式資料庫自研之路。
  • OceanBase上線OBCA認證,推動分布式資料庫人才生態發展
    日前,螞蟻集團資料庫公司OceanBase在官網上線了OBCA 認證。OBCA是OceanBase推出的OceanBase 資料庫專員認證,是對學員掌握OceanBase技術技能水平的全面檢驗和能力認證。
  • 獨家首發|搭建資料庫智能軟體生態,「新數科技」獲數千萬元A輪融資
    創業邦獨家獲悉,近日,資料庫雲服務企業「新數科技」對外宣布已於近期獲得數千萬元人民幣A輪融資,由曦域資本領投,博彥科技跟投。
  • 分布式資料庫比集中式資料庫的優勢在哪裡?
    更強的可擴展性:分布式資料庫可以通過增添存儲節點來實現存儲容量的線性擴展,而集中式資料庫的可擴展性十分有限。更高的並發訪問量:分布式資料庫由於道採用多臺主機組成存儲集群,所以相對集中式資料庫,它可以提供更高的用戶並發訪問量。更適合分布式的管理與控制。
  • 金融企業選擇與應用分布式資料庫的7個核心問題
    以手機銀行、網上理財、網際網路保險等為代表的金融業務創新快速發展,推動新技術正以前所未有的速度與力度發生深層次變革。 這些技術發展,對金融服務模式帶來重大影響,使得金融行業向數位化、分布式轉型成為必然趨勢,金融業務創新與科技創新正在相互促進,重塑金融行業系統能力。
  • 架構革新 高效可控 2020中國資料庫技術大會盛大召開
    隨著網際網路、移動通信、物聯網等新技術趨勢的發展,傳統關係資料庫的技術架構和服務水平,逐漸無法滿足新業態的發展需求。在新的挑戰和機遇下,達夢公司對分布式技術進行了大量探索。武漢達夢資料庫股份有限公司副總經理 馮源  在會上,馮老師向大家分享了達夢公司的分布式資料庫演進、發展歷程,並介紹了達夢公司對分布式資料庫未來發展和應用前景的分析觀點。
  • 作為資料庫核心成員,如何讓淘寶不卡頓?
    本文以2007年TDDL初誕生時的視角,介紹TDDL是如何一步步設計成型的,希望能幫助同學們簡單收穫:常規資料庫效率問題解決思路、TDDL框架設計基本思路以及分布式資料庫設計思路等。文末福利:《MySQL實操》技術公開課。
  • 胡利明:金融機構分布式資料庫轉型的要點和路徑
    本文轉自【TechWeb】;近日,《金融科技時代》(2020年第5期)刊發了騰訊金融雲總經理胡利明的專題文章——《分布式資料庫在金融行業的應用和展望》,文章全面回顧了資料庫技術的形成過程、分布式資料庫的分類以及雲原生資料庫對分布式資料庫發展的影響,深入分析了金融機構分布式資料庫轉型需關注的要點和轉型的主要路徑,詳細闡述了分布式資料庫應用於金融行業的主要發展方向
  • 睿帆科技:千億級數據毫秒響應的分布式列存資料庫雪球DB
    近兩年,大數據作為重要資源被提上國家戰略,此外,國家發改委還在近期刊發了關於2020年發展數字經濟的八大舉措。  例如「實體經濟數位化融合;促進數據要素流通;發展新型基礎設施」等,以鼓勵傳統產業加快數位化轉型,推進前沿信息技術在各場景的融合應用。
  • NDN Protocol:為分布式存儲而生的資料庫
    資料庫,對於普通用戶來說會有一定迷惑。到底什麼是資料庫呢?我們可以從其名字來說,資料庫的意思是數據的集合,如果這樣來理解的話,在電腦上我們把照片放到同一個文件夾下,那麼這個文件夾就是一個照片資料庫;把文檔資料放到一個文件夾,那麼這個文件夾也是一個資料庫。
  • 帶你快速了解spark sql
    01spark sql架構spark sql是一種可以通過sql執行spark任務的分布式解析引擎。它能夠將用戶編寫的sql語言解析成RDD對應的分布式任務,由於spark是基於內存去處理、計算數據集,所以其執行速度非常快。spark sql對應的結構可以總結為下圖所示:DataSet,顧名思義,就是數據集的意思,它是 Spark 1.6 新引入的接口。
  • sql替換資料庫欄位中的字符
    某些時候我們要修改資料庫欄位中的部分字符串,如果內容少時一個一個替換,內容多時,就不能一個一個的替換了,因為這樣不僅耗時還容易出錯。下面就用sql批量進行替換。替換shopping_hw表中欄位hw_pic,內容「*common」替換為「+play」.