AWS有哪6款數據庫呢?數據庫
確切地說,我認爲是7款數據庫:服務器
(RDS和RDS-Aurora有些人認爲是同款數據庫。)
這幾款數據庫真是各有神通,幾乎把全部數據庫相關的應用場景都捕捉到了。架構
接下來逐一介紹下:併發
RDS顧名思義就是「關係型數據庫」。這裏其實亞馬遜移植了市面上經常使用的幾款數據庫,作成了「雲」的版本給客戶,包括:Oracle,MySQL, MS SQL, MariaDB, PostgreSQL。
這麼作的好處,就是客戶教育成本低,遷移成本低,用本身熟悉的數據庫,又享受了雲端的高可用和高性能。高併發
這些好像沒啥,很「正常」,還不夠「喪心病狂」,可是接下來的幾款數據庫產品,AWS就要開掛了。性能
雖說,Aurora是掛在RDS下面的一個數據庫產品,可是我認爲它徹底是不同的。不能和其它RDS數據庫相提並論。
數據庫的一個核心問題就是解決「高併發」,其中包括:高併發的「讀」,和高併發的「寫」。(好比一個電商平臺的網站,對商品的查詢都是讀,下訂單則都是寫了。)區塊鏈
你可能會說,高併發的「讀」不難處理啊!可多幾個數據部分不就好了?好比,一份數據放在10個服務器上--對於讀,來講,是這樣的。
可是,若是系統裏面有不少數據副本的時候,高併發的「寫」就不能有效的同步到全部的副本上了--因此,高併發的讀寫其實是一對兒矛盾的綜合體。大數據
Aurora經過「日誌即數據」的概念,把「數據引擎」和「數據存儲」進行了有效的分割,從而達到了空前的高併發讀寫機能。網站
傳統的普通數據庫服務,或者普通的自建數據庫機構,「寫」只能發生在一個「主」數據上,而後「主」再把本身的數據同步給其它副本。Aurora則不一樣,「寫」能夠發生在任何一個可用區上。Aurora的架構使用了3個可用區,每一個可用區有2個副本,也就是一共6個副本,這6個副本均可以進行讀寫。極大的彌補了,傳統數據庫對高併發的瓶頸。這是否是很「喪心病狂」?這是如何作到的?!日誌
高併發的讀寫是典型的OLTP(On-Line Transaction Processing聯機事務處理過程)中發生的場景。那麼對於OLAP (On-Line Analytical Processing 在線分析過程),AWS提出了什麼產品呢?
和OLTP場景下,數據庫須要支持高併發讀寫不一樣,OLAP場景下數據庫讀寫頻率很低,數據庫須要進行大量的聚合計算:數據量大,計算量也大。(好比,一天結束以後,咱們須要對今天的用戶行爲進行分析,全部用戶行爲數據多是幾個TB。)
這時候,就須要Redshift出場了。Redshift提及來也是關係型數據庫,可是它和RDS們有個本質的不一樣,它不是按「行」來存儲數據的,而是按「列」來的。不只如此,它還按照「列」,對數據進行了排序!基本上這就是爲了作「聚合」而誕生的數據庫啊!並且按列聚合的數據庫很方便壓縮,Redshift能夠處理PB級數據哦!!!
你說這就能夠了吧:傳統的關係型數據庫,AWS有了;OLTP數據庫有了;OLAP數據庫也有了。AWS以爲還不夠!
上面的都是關係型數據庫。DynamoDB是AWS提供的一款「非關係型數據庫」,特別以「鍵值存儲」爲核心。能夠高效的進行大數據/大文件的快速讀取。
若是你是遊戲行業/醫療行業/影視娛樂行業有大文件須要讀取的話,那麼你有福了。:)
關係型數據庫有了,非關係型也有了!還不夠嗎?對於亞馬遜來講,固然不夠!
AWS又推出了「圖數據庫」。在如今這個社交應用(大數據相關性)橫行的年代,沒有圖數據庫,取一個簡單的人際關係,用「關係型數據庫」真是要累死的。舉2個簡單的例子:
在上面的場景裏面(也就是不斷的大量的Join出現的時候),圖數據庫就是一個利器了。
這都已經好幾款數據庫了,還不夠嗎?AWS以爲還不夠。2018年的時候,它竟然同時發佈了兩款新數據庫!!!
我真是要給這家公司跪了。
顧名思義,Timestream是和時間相關的數據庫。由於不少對數據的查新都是以時間段爲基礎的。Timestream就是針對這個場景的。
QLDB的全稱是Quantum Ledger Database。它的應用場景也很好理解,最適合的場景是「記帳本」。「帳本」是不能被更改的,每一筆記錄都不能被改動,被忠實的記錄下來,已被查詢。QLDB就應運而生了。是否是有點兒「區塊鏈」的意思?只不過QLDB是有中心的。
(原文標題:這家「喪心病狂」的IT公司,居然出了6款數據庫~)