自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式SQL數(shù)據(jù)庫新的演變方向

譯文
數(shù)據(jù)庫 分布式
本文將和您具體討論分布式SQL的相關(guān)概念和基本特征,以方便進行選擇與試用。

[[335933]]

【51CTO.com快譯】隨著各個組織先后將其業(yè)務(wù)轉(zhuǎn)向云端環(huán)境時,他們很快地意識到:在一些最關(guān)鍵的應(yīng)用背后,那些舊式的關(guān)系型數(shù)據(jù)庫不但限制了遷移的速度,而且根本無法有效地實現(xiàn)靈活的業(yè)務(wù)擴展。許多企業(yè)既希望保持諸如Oracle、SQL Server、Postgres和MySQL之類關(guān)系型數(shù)據(jù)庫的可靠性,又能夠享受到云服務(wù)所帶來的規(guī)模效應(yīng)、以及全局穩(wěn)定性等“紅利”。

為了滿足此類需求,人們開始轉(zhuǎn)向使用NoSQL數(shù)據(jù)庫。但是由于NoSQL并非完全為提供真正的一致性而設(shè)計的,因此它無法作為事務(wù)型數(shù)據(jù)庫而使用。當(dāng)然,最近有一些NoSQL解決方案聲稱能夠提供“ACID事務(wù)”。不過,它們無法提供諸如:財務(wù)分帳、庫存控制、以及身份管理等關(guān)鍵任務(wù)所需的隔離級別。

分布式SQL--一種新的數(shù)據(jù)庫

2012年,Google發(fā)表了一篇有關(guān)Spanner的論文。文中介紹了一種全新的基于分布式系統(tǒng)的,且可以全球性擴展的分布數(shù)據(jù)庫??偟恼f來,Google Cloud Spanner是一種可擴展的、多版本的、同步復(fù)制(synchronously-replicated)型數(shù)據(jù)庫。它是第一個能夠在全球范圍內(nèi)分發(fā)數(shù)據(jù),并支持外部一致性(externally-consistent)的分布式事務(wù)的系統(tǒng)(具體請參見--https://ai.google/research/pubs/pub39966)。

下面我們此基礎(chǔ)上,一起來具體討論此類分布式SQL的基本相關(guān)概念,特別是如何實現(xiàn)可擴展性和一致性的。通常,為了能夠在分布式環(huán)境中真正具有可擴展性,分布式SQL數(shù)據(jù)庫具有如下七種核心特征:

1.可擴展

正如我們無需繁重的準(zhǔn)備就能夠?qū)崿F(xiàn)擴展式計算那樣,分布式SQL數(shù)據(jù)庫能夠在不增加操作復(fù)雜性的情況下,適應(yīng)云端環(huán)境的無縫擴展。也就是說,它具有在多個分布式參與者之間均勻分布數(shù)據(jù)的能力。

2.一致性

分布式SQL數(shù)據(jù)庫必須在分布式環(huán)境中提供高度的隔離性。云端環(huán)境往往是由各種分布式系統(tǒng)和微服務(wù)所組成,而不同的調(diào)用和操作可能會指向同一塊數(shù)據(jù),因此我們很難保證事務(wù)一致性。分布式SQL數(shù)據(jù)庫除了能夠調(diào)節(jié)資源的爭用,還能夠提供與單實例數(shù)據(jù)庫相同的事務(wù)隔離級別。

3.魯棒性

分布式SQL數(shù)據(jù)庫能夠在無需任何外部工具的條件下,提供最高級別的魯棒性。憑借著云服務(wù)為我們的業(yè)務(wù)所提供持續(xù)在線環(huán)境,分布式數(shù)據(jù)庫可以將故障恢復(fù)的用時減到最少,并且無需任何外部配置,即可自動化地復(fù)制數(shù)據(jù)。

4.地理復(fù)制(Geo-replication)性

由于云服務(wù)能夠以一種可接受的服務(wù)水平,將用戶的業(yè)務(wù)觸達全球的各個角落,因此分布式SQL數(shù)據(jù)庫也能夠據(jù)此突破地域的限制。在復(fù)雜、廣泛、分散的地理環(huán)境中,它能夠進行分布處理和數(shù)據(jù)存儲,以滿足各地用戶的業(yè)務(wù)需求。

5.支持SQL

眾所周知,SQL是數(shù)據(jù)庫所使用的結(jié)構(gòu)化語言,也是所有應(yīng)用邏輯的默認語言。憑借著其通用性,我們不必重新培訓(xùn)開發(fā)人員,即可熟練地對接和調(diào)用數(shù)據(jù)庫資源。除了上面提到的Spanner,諸如Amazon Aurora、Yugabyte、FaunaDB和CockroachDB等都能夠支持SQL。

6.數(shù)據(jù)本地化

在分布式系統(tǒng)中,由于數(shù)據(jù)被分散到了各個地區(qū)的數(shù)據(jù)中心,因此應(yīng)用架構(gòu)師往往需要了解每個站點的位置,在程序邏輯上找到最近的位置,以便將需要調(diào)用的存儲數(shù)據(jù)綁定為應(yīng)用的一部分。那么,分布式SQL可以在其數(shù)據(jù)表中,基于某些字段對數(shù)據(jù)進行地理分區(qū),進而讓數(shù)據(jù)更接近用戶側(cè)。這就是所謂的數(shù)據(jù)庫的數(shù)據(jù)主權(quán)(data sovereignty)問題。據(jù)此,開發(fā)人員可以確保用戶對其信息的低延遲訪問,從而最大程度地減少數(shù)據(jù)在云端傳輸?shù)馁M用和流量的開銷。

7.多云(Multi-cloud)模式

分布式SQL數(shù)據(jù)庫的一個獨特特征是:半自治單元(semi-autonomous units),它們可以參與到較大的系統(tǒng)中。也就是說,每個單元都能夠自行部署,然后加入到CockroachDB集群之類更大的系統(tǒng)中。通過該特征,分布式SQL數(shù)據(jù)庫可以更好地擴展到真正的多云環(huán)境中,而不僅僅依賴于單個網(wǎng)絡(luò),來完成數(shù)據(jù)的分發(fā)。在此模式下,參與者(participant)的云服務(wù)類別將不再受到限制,它們可以位于任何地方,任何一種公共云、私有云、甚至是單個的本地(on-premise)實例。顯然,這對于我們在分布式混合與多云環(huán)境中的各類應(yīng)用來說,都是至關(guān)重要。

分布式SQL的基本要求

上述七項特征可謂分布式SQL在云端環(huán)境中所獨有的。但是,說到底它仍然是一種數(shù)據(jù)庫,因此也應(yīng)當(dāng)具備數(shù)據(jù)庫的如下基本功能:

  1. 可管理性:用戶可以使用一組命令行、或基于圖形化的工具,來輕松地安裝和配置目標(biāo)數(shù)據(jù)庫。用戶通過針對運行環(huán)境的控制、數(shù)據(jù)生命周期的管理、以及常規(guī)的備份與還原,以實現(xiàn)數(shù)據(jù)表的創(chuàng)建,schema的定義與實現(xiàn),索引與分區(qū)的設(shè)置,以及DDL的重建等。
  2. 可優(yōu)化:DBA可以深入了解數(shù)據(jù)庫在查詢響應(yīng)方面的性能,運用基于成本的優(yōu)化器(cost-based optimizer)等高級功能,進而實現(xiàn)查詢效率的優(yōu)化。
  3. 具有安全性:與企業(yè)的其他常用軟件類似,安全性是一個不容忽視的環(huán)節(jié)。數(shù)據(jù)庫應(yīng)提供認證、授權(quán)和可問責(zé)性,這樣的AAA機制。而且,此類功能不應(yīng)該只獨立數(shù)據(jù)庫內(nèi)部,而應(yīng)當(dāng)與具有身份管理和治理功能的集中式管控系統(tǒng)集成一起,以便對流轉(zhuǎn)在整個系統(tǒng)中各個級別的數(shù)據(jù)(包括表、行和列等級別)設(shè)置一致性的策略。
  4. 可集成:顯然,數(shù)據(jù)庫需要能夠通過經(jīng)過測試的、或已知的驅(qū)動程序,與前端應(yīng)用相集成,以實現(xiàn)批量獲取或?qū)С鰯?shù)據(jù)等服務(wù)。與此同時,數(shù)據(jù)庫還應(yīng)通過與ETL(Extract-Transform-Load)工具的配合使用,將捕獲到的數(shù)據(jù),與數(shù)據(jù)流分析、或云端存儲等更高級的服務(wù)相集成。

當(dāng)然,上述所謂“基本”功能要求,其實并不簡單,它們旨在提供更加成熟的、針對企業(yè)級應(yīng)用的數(shù)據(jù)庫。

總結(jié)

作為一種新興的類別和演變的方向,分布式SQL數(shù)據(jù)庫還需要在數(shù)據(jù)一致性和本地化等方面,進一步配合云端環(huán)境來不斷改進。畢竟,在嚴(yán)苛的生產(chǎn)環(huán)境中,此類數(shù)據(jù)庫會碰到更多有關(guān)性能和效率等方面的實際問題。

前文提到的CockroachDB,是一種云原生的分布式SQL數(shù)據(jù)庫。它可以幫助各種企業(yè)級應(yīng)用,將最基本的工作負載和一些關(guān)鍵性的任務(wù)遷移到云端,并實現(xiàn)了對于各種高級云端原生環(huán)境的策略編排。您可以作為了解分布式SQL的一個切入口進行試用。

原標(biāo)題:Distributed SQL: An Evolution of the Database ,作者: Jim Walker

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2023-05-12 08:23:03

分布式系統(tǒng)網(wǎng)絡(luò)

2023-12-14 14:49:05

SQL數(shù)據(jù)庫分布式 SQL

2014-06-30 14:20:05

NoSQL數(shù)據(jù)庫

2021-11-08 10:52:02

數(shù)據(jù)庫分布式技術(shù)

2019-04-28 09:58:12

數(shù)據(jù)庫JavaSQL

2010-06-29 16:41:24

SQL Server分

2023-08-18 09:00:00

Kubernetes數(shù)據(jù)庫SQL

2023-07-28 07:56:45

分布式數(shù)據(jù)庫SQL

2015-06-16 10:39:43

NoSQL分布式算法

2023-07-31 08:27:55

分布式數(shù)據(jù)庫架構(gòu)

2023-11-14 08:24:59

性能Scylla系統(tǒng)架構(gòu)

2023-12-05 07:30:40

KlustronBa數(shù)據(jù)庫

2013-04-26 16:18:29

大數(shù)據(jù)全球技術(shù)峰會

2021-12-20 15:44:28

ShardingSph分布式數(shù)據(jù)庫開源

2023-03-26 12:43:31

數(shù)據(jù)庫KeyValue

2022-12-08 08:13:11

分布式數(shù)據(jù)庫CAP

2010-06-29 16:48:03

SQL Server數(shù)

2019-08-19 10:24:33

分布式事務(wù)數(shù)據(jù)庫

2011-05-19 09:18:48

分布式數(shù)據(jù)庫

2017-07-26 14:55:32

分布式技術(shù)架構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號