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

Cloud Spanner 完全托管式關(guān)系型數(shù)據(jù)庫服務(wù)

數(shù)據(jù)庫 其他數(shù)據(jù)庫
Cloud Spanner 是一項完全托管式用于關(guān)鍵任務(wù)的關(guān)系型數(shù)據(jù)庫服務(wù),可提供全球范圍的事務(wù)一致性、自動同步復(fù)制功能以實(shí)現(xiàn)高可用性。

前沿

2012~2013年Google 相繼發(fā)表了Spanner和F1兩套系統(tǒng)的論文,讓業(yè)界第一次看到了關(guān)系模型和NoSQL的擴(kuò)展性在一個大規(guī)模生產(chǎn)系統(tǒng)上融合的可能性。Spanner 通過使用硬件設(shè)備(GPS時鐘+原子鐘)巧妙地解決時鐘同步的問題,而在分布式系統(tǒng)里,時鐘正是最讓人頭痛的問題。Spanner的強(qiáng)大之處在于即使兩個數(shù)據(jù)中心隔得非常遠(yuǎn),也能保證通過TrueTime API獲取的時間誤差在一個很小的范圍內(nèi)(10ms),并且不需要通訊。Spanner的底層仍然基于分布式文件系統(tǒng),不過論文里也說是可以未來優(yōu)化的點(diǎn)。

Google的內(nèi)部的數(shù)據(jù)庫存儲業(yè)務(wù),大多是3~5副本,重要的數(shù)據(jù)需要7副本,且這些副本遍布全球各大洲的數(shù)據(jù)中心,由于普遍使用了Paxos,延遲是可以縮短到一個可以接受的范圍(寫入延遲100ms以上),另外由Paxos帶來的Auto-Failover能力,更是讓整個集群即使數(shù)據(jù)中心癱瘓,業(yè)務(wù)層都是透明無感知的。F1是構(gòu)建在Spanner之上,對外提供了SQL接口,F(xiàn)1是一個分布式MPP SQL層,其本身并不存儲數(shù)據(jù),而是將客戶端的SQL翻譯成對KV的操作,調(diào)用Spanner來完成請求。嚴(yán)格來說,是Spanner和F1一起開創(chuàng)了NewSQL風(fēng)格。

簡介

Cloud Spanner 是一項完全托管式用于關(guān)鍵任務(wù)的關(guān)系型數(shù)據(jù)庫服務(wù),可提供全球范圍的事務(wù)一致性、自動同步復(fù)制功能以實(shí)現(xiàn)高可用性。它是第一個把數(shù)據(jù)分布在全球范圍內(nèi)的系統(tǒng),并且支持外部一致性的分布式事務(wù)。Spanner的擴(kuò)展性達(dá)到了令人咋舌的全球級,可以擴(kuò)展到數(shù)百萬的機(jī)器,數(shù)已百計的數(shù)據(jù)中心,上萬億的行。除了夸張的擴(kuò)展性之外,他還能同時通過同步復(fù)制和多版本來滿足外部一致性,可用性也是很好的。沖破CAP的枷鎖,在三者之間完美平衡。它是BigTable的繼任者。谷歌稱Spanner不是一個純粹的關(guān)系型系統(tǒng),因為每個表必須有主鍵,以及對兩種 SQL 方言的支持:Google 標(biāo)準(zhǔn) SQL(ANSI 2011 及擴(kuò)展程序)和 PostgreSQL。

優(yōu)勢

  • 享受關(guān)系語義和 SQL 的所有優(yōu)勢,并且規(guī)模不受限制。
  • 以任何規(guī)模起步,可隨需求增長無限擴(kuò)容。
  • 享受零計劃停機(jī)時間和在線架構(gòu)變更帶來的高可用性。
  • 可跨區(qū)域和洲實(shí)現(xiàn)具有強(qiáng)一致性的高性能事務(wù)。
  • 專注于創(chuàng)新,通過自動分片等功能消除人工作業(yè)。

特性

  • 可靈活擴(kuò)縮的關(guān)系型數(shù)據(jù)庫:從架構(gòu)、SQL 查詢到 ACID 事務(wù),關(guān)系型數(shù)據(jù)庫應(yīng)有的一切功能都具備,久經(jīng)考驗,且隨時可以在全球范圍內(nèi)擴(kuò)容。
  • 99.999% 的可用性:Cloud Spanner 可為多區(qū)域?qū)嵗峁I(yè)界領(lǐng)先的 99.999% 可用性;與 99.99% 的可用性相比,停機(jī)時間是其十分之一。它還可跨單區(qū)域和多區(qū)域配置提供透明的同步復(fù)制功能。
  • 自動分片:Cloud Spanner 可根據(jù)請求負(fù)載和數(shù)據(jù)大小自動分片,從而提升性能。因此,您不必太擔(dān)心如何對數(shù)據(jù)庫進(jìn)行擴(kuò)容,從而可以專注于擴(kuò)展業(yè)務(wù)。
  • 全代管式:無論數(shù)據(jù)庫規(guī)模如何,每個階段均可實(shí)現(xiàn)輕松部署。內(nèi)置自動同步復(fù)制和維護(hù)功能。
  • 事務(wù)強(qiáng)一致性:專為實(shí)現(xiàn)行業(yè)領(lǐng)先的外部一致性而構(gòu)建,同時不會影響可擴(kuò)縮性或可用性。
  • 單區(qū)域和多區(qū)域配置:無論用戶位于哪里,由 Spanner 提供支持的應(yīng)用都可以在全球范圍內(nèi)讀取和寫入最新的強(qiáng)一致性數(shù)據(jù)。此外,運(yùn)行多區(qū)域?qū)嵗龝r,您的數(shù)據(jù)庫可以防范單區(qū)域故障,并提供業(yè)界領(lǐng)先的 99.999% 可用性。
  • 使用 BigQuery 執(zhí)行聯(lián)合查詢:在 BigQuery 中實(shí)時查詢 Spanner 數(shù)據(jù),而無需移動或復(fù)制數(shù)據(jù),消除運(yùn)營數(shù)據(jù)與分析之間的差異,打造統(tǒng)一的數(shù)據(jù)生命周期。
  • 基于 Google Cloud 網(wǎng)絡(luò)構(gòu)建:Cloud Spanner 基于 Google 的專用網(wǎng)絡(luò)構(gòu)建,該網(wǎng)絡(luò)提供低延遲、安全性和可靠性,可為全球用戶提供服務(wù)。

場景

Spanner 是一種分布式的、全球可擴(kuò)展的 SQL 數(shù)據(jù)庫服務(wù),該服務(wù)將計算與存儲分離,使其可在存儲之外單獨(dú)擴(kuò)縮處理資源。 Spanner 這種分布式擴(kuò)縮特性使其成為不可預(yù)測的工作負(fù)載(如在線游戲)的理想解決方案。

事務(wù)

Spanner 系統(tǒng)中的分布式事務(wù)通過兩階段提交協(xié)議2PC實(shí)現(xiàn)。2PC是一類特殊的一致性協(xié)議,假設(shè)一個分布式事務(wù)涉及了多個數(shù)據(jù)節(jié)點(diǎn),2PC可以保證在這些節(jié)點(diǎn)上的操作要么全部提交,要么全部失敗,從而保證了整個分布式事務(wù)的原子性ACID里的A。協(xié)議中包含兩個角色:協(xié)調(diào)者coordinator和參與者participant/cohort。協(xié)調(diào)者是分布式事務(wù)的發(fā)起者,而參與者是參與了事務(wù)的數(shù)據(jù)節(jié)點(diǎn)。在協(xié)議最基本的形式中,系統(tǒng)中有一個協(xié)調(diào)者和多個參與者。Cloud Spanner 中的事務(wù)是一組讀寫操作,它們跨數(shù)據(jù)庫中的列、行和表,在單個邏輯時間點(diǎn)以原子方式執(zhí)行。

Cloud Spanner 支持以下事務(wù)模式:

  • 鎖定讀寫:這種事務(wù)類型是唯一支持將數(shù)據(jù)寫入 Cloud Spanner 的事務(wù)類型。這些事務(wù)依賴于悲觀鎖定和(如有必要)兩階段提交。鎖定讀寫事務(wù)可能會中止,需要應(yīng)用重試。
  • 只讀:這種事務(wù)類型可保證多次讀取之間的一致性,但禁止寫入。只讀事務(wù)可以配置為在過去的時間戳處讀取。只讀事務(wù)不需要提交,也不會鎖定。
  • 分區(qū) DML:此事務(wù)類型將數(shù)據(jù)操縱語言 (DML) 語句作為分區(qū) DML 執(zhí)行。分區(qū) DML 專為批量更新和刪除(尤其是定期清理和回填)而設(shè)計。

模型

一個 Cloud Spanner 數(shù)據(jù)庫可以包含一個或多個表。這些表與關(guān)系型數(shù)據(jù)庫表類似,它們也是由行、列和值構(gòu)成的,并且包含主鍵。Cloud Spanner 中的數(shù)據(jù)是強(qiáng)類型的:必須為每個數(shù)據(jù)庫定義一個架構(gòu),并且該架構(gòu)必須指定每個表中每一列的數(shù)據(jù)類型。允許的數(shù)據(jù)類型包括標(biāo)量和數(shù)組類型,也可以在表上定義一個或多個二級索引。

父子表

可以通過兩種方式在 Cloud Spanner 中定義父子關(guān)系,表交錯和外鍵。Cloud Spanner 的表交錯是許多父子關(guān)系的理想選擇,其中子表的主鍵包含父表的主鍵列。子行及其父行共用位置可以顯著提高性能,外鍵是一種較通用的父子解決方案,并解決了其他用例。外鍵不限于主鍵列,而表可以具有多個外鍵關(guān)系,二者在某些關(guān)系中可以作為父鍵,而在其他關(guān)系中可以作為子鍵。但是,外鍵關(guān)系不隱含表在存儲層中的共用位置關(guān)系。

主鍵

每個表都必須有一個主鍵,并且該主鍵可以由該表的零列或多列組成,如果將某個表聲明為另一個表的子表,則父表的主鍵列必須是子表主鍵的前綴,Cloud Spanner 會按主鍵值得排序順序存儲行,并在父行之間插入共享相同主鍵前綴的子行,這意味著,如果父表的主鍵由 N 列組成,則其每個子表的主鍵也必須由相同的 N 列組成,順序相同,并且以相同的列開始。這種沿著主鍵維度在父行之間插入子行的行為稱為交錯,而子表也稱為交錯表。

分片

表之間定義最多七層的父子關(guān)系層次結(jié)構(gòu),意味著可以將七個邏輯上獨(dú)立的表的行存儲在一起。如果表中的數(shù)據(jù)量比較少,那么您的數(shù)據(jù)庫或許可以由單個 Cloud Spanner 服務(wù)器處理。然而,當(dāng)相關(guān)表不斷增長,開始達(dá)到單個服務(wù)器的資源限制時。Cloud Spanner 會將數(shù)據(jù)劃分為稱作“分片”的區(qū)塊,各個分片可以彼此獨(dú)立移動并被分配給不同物理位置的多個服務(wù)器。分片包含一系列連續(xù)的行。這一范圍的開始和結(jié)束鍵稱為“分片邊界”。Cloud Spanner 會根據(jù)大小和/或負(fù)載自動添加和移除分片邊界,這樣做會改變數(shù)據(jù)庫中的分片數(shù)量。

復(fù)制

Cloud Spanner 復(fù)制的優(yōu)勢包括以下幾點(diǎn):

  • 數(shù)據(jù)可用性:對于希望讀取數(shù)據(jù)的客戶端而言,擁有更多數(shù)據(jù)副本可以使數(shù)據(jù)更具可用性。另外,即使某些副本不可用,Cloud Spanner 仍然可以支持寫入操作,因為在提交寫入時僅需大部分投票副本即可。
  • 地理局部性:能夠使用 Cloud Spanner 將數(shù)據(jù)存放到不同的區(qū)域和大洲,這意味著數(shù)據(jù)可以在地理上更接近需要它的用戶和服務(wù),因此訪問速度也更快。
  • 單一數(shù)據(jù)庫體驗:得益于同步復(fù)制和全局高度一致性,無論規(guī)模如何,Cloud Spanner 均可提供一致的表現(xiàn)以及單一數(shù)據(jù)庫體驗。
  • 更輕松的應(yīng)用開發(fā):Cloud Spanner 的 ACID 事務(wù)具有全局高度一致性,這意味著開發(fā)者無需在應(yīng)用中添加額外的邏輯來處理最終一致性,因此應(yīng)用開發(fā)和后續(xù)維護(hù)變得更加輕松快捷。

總結(jié)

Spanner是第一個可以在全球范圍內(nèi)提供這種保證的系統(tǒng),符合 ACID 標(biāo)準(zhǔn)的數(shù)據(jù)庫,可自動進(jìn)行副本、分片和事務(wù)處理,因此可以快速擴(kuò)容以滿足任何使用模式的要求,Cloud Spanner 基于 Google 的專用網(wǎng)絡(luò)構(gòu)建,在數(shù)十億用戶都在使用的 Google 服務(wù)中已久經(jīng)考驗。它可實(shí)現(xiàn)高達(dá) 99.999% 的可用性,在計劃內(nèi)維護(hù)和架構(gòu)變更期間可以做到零停機(jī)。IT 管理員和數(shù)據(jù)庫管理員往往忙于執(zhí)行數(shù)據(jù)庫運(yùn)維工作?,F(xiàn)在,借助 Cloud Spanner,只需點(diǎn)擊幾下鼠標(biāo)即可創(chuàng)建或擴(kuò)縮可在全球范圍內(nèi)復(fù)制的數(shù)據(jù)庫,并降低數(shù)據(jù)庫維護(hù)費(fèi)用。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2022-05-12 09:55:53

PostgreSQL數(shù)據(jù)庫谷歌

2013-04-26 16:18:29

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

2021-04-25 17:36:07

OracleGoldenGate云原生

2021-12-28 05:52:34

安全托管服務(wù)供應(yīng)商客戶體驗

2022-05-31 07:58:49

TiDB數(shù)據(jù)庫開源

2018-06-07 08:31:33

Oracle分布式內(nèi)存

2018-07-18 09:16:39

關(guān)系型非關(guān)系型數(shù)據(jù)庫

2012-09-29 13:18:23

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

2021-09-06 10:24:12

鴻蒙HarmonyOS應(yīng)用

2017-03-17 14:44:04

關(guān)系型數(shù)據(jù)庫原理

2010-12-10 10:17:21

關(guān)系型數(shù)據(jù)庫

2022-06-13 08:30:01

數(shù)據(jù)庫管理系統(tǒng)

2017-07-07 14:41:43

阿里云分布式關(guān)系

2023-05-29 16:51:06

2021-12-28 20:40:31

微軟數(shù)據(jù)庫服務(wù)

2012-09-20 09:58:11

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

2011-10-13 09:39:59

MySQL

2023-06-01 07:30:42

分析數(shù)據(jù)源關(guān)系型數(shù)據(jù)庫
點(diǎn)贊
收藏

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