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

簡(jiǎn)析AWS DynamoDB的幾大基本功能

譯文
數(shù)據(jù)庫(kù)
AWS DynamoDB是一種完全托管的無(wú)服務(wù)器類(lèi)型的NoSQL數(shù)據(jù)庫(kù)。本文將和您探討其基本功能、使用場(chǎng)景、計(jì)費(fèi)、設(shè)置、查詢(xún)、以及掃描等方面,以便您更好地將其運(yùn)用在自己的應(yīng)用之中。

【51CTO.com快譯】AWS DynamoDB是一種完全托管的無(wú)服務(wù)器(Serverless)類(lèi)型的NoSQL數(shù)據(jù)庫(kù)。本文將和您探討DynamoDB的基本功能、使用場(chǎng)景、計(jì)費(fèi)、設(shè)置、查詢(xún)、以及掃描等方面,以便您更好地將其運(yùn)用在自己的應(yīng)用之中。

[[347034]]

什么是AWS DynamoDB?

總的說(shuō)來(lái),DynamoDB是一種鍵-值(key-value)和文檔型數(shù)據(jù)庫(kù),基本可以達(dá)到毫秒級(jí)的響應(yīng)時(shí)間。作為持久數(shù)據(jù)庫(kù),它具有內(nèi)置的安全性、備份與還原等功能。

在DynamoDB中,您經(jīng)常會(huì)聽(tīng)到的一個(gè)關(guān)鍵詞是:NoSQL數(shù)據(jù)庫(kù)。這表明它并不使用關(guān)系型數(shù)據(jù)庫(kù)(https://aws.amazon.com/relational-database/)的傳統(tǒng)SQL查詢(xún)語(yǔ)言,而是被設(shè)計(jì)為通過(guò)將對(duì)象合并到某個(gè)NoSQL數(shù)據(jù)庫(kù)中的公共集合、或schemaless表中,來(lái)減少?gòu)?fù)雜性。這些對(duì)象將會(huì)根據(jù)通用主題被分組到一起,以滿(mǎn)足應(yīng)用程序被預(yù)設(shè)的通用查詢(xún)條件。

關(guān)鍵術(shù)語(yǔ):

•表(Table):可以容納幾乎無(wú)限數(shù)量表項(xiàng)的集合,可帶有二級(jí)索引。

•二級(jí)索引(Secondary Index):使用不同的主鍵和排序鍵來(lái)復(fù)制表項(xiàng)。

•主鍵(Primary Key):是一種特殊形式的屬性,可用于參考表項(xiàng),類(lèi)似于表項(xiàng)的ID。

•排序鍵(Sort Key):是另一種特殊形式的屬性,可用于組織不同排序的表項(xiàng)。

•表項(xiàng)(Item):作為AWS DynamoDB中最基本的單元,它是JSON形式的結(jié)構(gòu)化數(shù)據(jù)屬性。

•屬性(Attribute):是一個(gè)鍵-值對(duì),其中包含著有關(guān)數(shù)據(jù)表中某個(gè)表項(xiàng)的信息性數(shù)據(jù)點(diǎn)(data-point)。

•流(Streams):是針對(duì)數(shù)據(jù)表執(zhí)行狀態(tài)改變(state-changing)操作的恒定流。

•查詢(xún)(Query):檢索特定表項(xiàng)(或表項(xiàng)集)的操作。

•掃描(Scan):用于掃描整張表或表的某部分的操作。

•過(guò)濾器(Filter):完成查詢(xún)或掃描后,將結(jié)果返回給請(qǐng)求者之前,所應(yīng)用的規(guī)則。

如何存儲(chǔ)數(shù)據(jù)?

鍵-值存儲(chǔ)是一張按比例擴(kuò)展(scaled-up)的分布式哈希表。該表中的表項(xiàng)可以通過(guò)鍵-值對(duì)的屬性來(lái)唯一標(biāo)識(shí)。該屬性對(duì)可用于GET、SET、UPDATE和DELETE等操作。該屬性通常有兩種類(lèi)型:主鍵(類(lèi)似表項(xiàng)的ID)和排序鍵(可用于對(duì)表項(xiàng)進(jìn)行排序)。

眾所周知,哈希表的優(yōu)點(diǎn)是:無(wú)論表的大小,它總是可靠、一致且快速的。而缺點(diǎn)是:一次只能檢索一條記錄。對(duì)此,DynamoDB可采取寬列(wide-column)存儲(chǔ)的形式,即:每一行在任何時(shí)候都會(huì)具有任意數(shù)量的列。這種B樹(shù)(B-tree)的數(shù)據(jù)結(jié)構(gòu)與二級(jí)索引不但提供了查找表項(xiàng)的選項(xiàng),而且允許用戶(hù)進(jìn)行范圍查詢(xún)。同時(shí),它們可用于通過(guò)不同的主鍵和排序鍵,來(lái)參考和排序表項(xiàng)。此外,由于DynamoDB是一個(gè)schemaless數(shù)據(jù)庫(kù),因此其中的表項(xiàng)可以具有不同的屬性集。

如何實(shí)現(xiàn)自動(dòng)擴(kuò)展?

無(wú)服務(wù)器計(jì)算的最大好處之一是:開(kāi)發(fā)人員可以在時(shí)間和預(yù)算上采用自動(dòng)化的方法,以確保容量不會(huì)受限。DynamoDB可以通過(guò)自動(dòng)擴(kuò)展,來(lái)應(yīng)對(duì)需求的激增,避免出現(xiàn)限流或響應(yīng)速度驟降,進(jìn)而合理地利用資源。

通過(guò)使用AWS應(yīng)用自動(dòng)擴(kuò)展(Application Auto Scaling),DynamoDB允許用戶(hù)對(duì)數(shù)據(jù)表采取自定義的擴(kuò)展策略,按需增加讀取和寫(xiě)入的容量。通常,此類(lèi)策略包括了:指定最小和最大預(yù)購(gòu)置的容量單位,以及目標(biāo)利用率(如:已消耗的預(yù)購(gòu)置吞吐量百分比)。目標(biāo)利用率通過(guò)與目標(biāo)跟蹤算法結(jié)合,確保無(wú)論工作負(fù)載如何變化,吞吐量都能夠與設(shè)定的目標(biāo)相匹配。

功能與使用場(chǎng)景

除了數(shù)據(jù)庫(kù)的基本功能,DynamoDB還擁有包括:備份和恢復(fù)、全局存儲(chǔ)、DynamoDB加速器(DAX)、DynamoDB流、以及數(shù)據(jù)傳輸在內(nèi)的其他功能。而作為AWS的頂級(jí)服務(wù)之一,DynamoDB每天都可以處理10tr以上的請(qǐng)求,并且可以支持每秒超過(guò)2000萬(wàn)個(gè)請(qǐng)求的峰值。因此,它適用于任何規(guī)模的要求提供低延遲數(shù)據(jù)訪(fǎng)問(wèn)的應(yīng)用。

由于非常適用于HTTP與AWS IAM的應(yīng)用場(chǎng)景,因此DynamoDB數(shù)據(jù)庫(kù)不但能夠始終受到保護(hù),并且無(wú)需復(fù)雜的網(wǎng)絡(luò)配置(如:網(wǎng)絡(luò)分區(qū)),便可快速地對(duì)請(qǐng)求進(jìn)行身份驗(yàn)證,并安全地完成各項(xiàng)初始化步驟。

由于使用場(chǎng)景十分廣泛,因此DynamoDB有著豐富的用戶(hù)案例。從Lyft和Airbnb之類(lèi)的成長(zhǎng)型公司,到Capital One和Nike等歷史悠久的企業(yè),都在其架構(gòu)中使用到了DynamoDB。

計(jì)費(fèi)

DynamoDB通過(guò)如下兩種容量模式,來(lái)對(duì)目標(biāo)數(shù)據(jù)表的讀取和寫(xiě)入操作進(jìn)行計(jì)費(fèi)。

•按需

此模式意味著無(wú)需預(yù)先指定讀、寫(xiě)吞吐量,按需進(jìn)行擴(kuò)展。因此,如果您的數(shù)據(jù)表或流量存在著不可預(yù)測(cè)性,那么這是一種不錯(cuò)的選擇。

•預(yù)購(gòu)置

通過(guò)預(yù)購(gòu)置容量,您可以指定每秒所需的讀寫(xiě)次數(shù)。自動(dòng)擴(kuò)展功能在此可以根據(jù)指定的利用率,通過(guò)自動(dòng)化調(diào)整,以保證高性能和對(duì)預(yù)算的管理。

當(dāng)然,這兩種模式的成本也會(huì)根據(jù)實(shí)際的使用量產(chǎn)生巨大的差異,因此我們需要事先做好相應(yīng)的估算。

具體而言,對(duì)于按需模式,DynamoDB會(huì)按照每百萬(wàn)個(gè)單位進(jìn)行收費(fèi);而對(duì)于預(yù)購(gòu)置模式,DynamoDB則按每小時(shí)的單位量來(lái)進(jìn)行收費(fèi)。

值得一提的是:作為預(yù)購(gòu)置模式下的附加項(xiàng),預(yù)存容量(Reserved Capacity)不但可以節(jié)省成本,而且能夠通過(guò)支付一次性前期費(fèi)用,來(lái)保障在預(yù)存容量期限內(nèi),按小時(shí)支付最低吞吐量級(jí)別的開(kāi)銷(xiāo)。不過(guò),任何未使用的容量都不會(huì)順延到次月。

讀寫(xiě)請(qǐng)求計(jì)費(fèi)

  • 在寫(xiě)入的方面,DynamoDB將每個(gè)寫(xiě)入請(qǐng)求計(jì)作一個(gè)單位(最多為1 KB),而將每個(gè)事務(wù)性寫(xiě)入算作兩個(gè)寫(xiě)入請(qǐng)求單位。
  • 在讀取方面,DynamoDB將每個(gè)高度一致的讀取請(qǐng)求計(jì)作一個(gè)單位(最多為4 KB),將每個(gè)事務(wù)性讀取算作兩個(gè)讀取請(qǐng)求單位,而將每個(gè)最終一致的讀取只算作一半的讀取請(qǐng)求單位。

AWS Free Tier

在A(yíng)WS Free Tier中,DynamoDB能夠提供如下“福利”。當(dāng)然,它們的每一項(xiàng)都是按月、按區(qū)域、按賬戶(hù)來(lái)計(jì)費(fèi)的。

•25個(gè)WCU和25個(gè)RCU的預(yù)購(gòu)置容量。

•25 GB的數(shù)據(jù)存儲(chǔ)空間,之后按每GB、每月收取費(fèi)用。

•25個(gè)rWCU可用于在兩個(gè)AWS區(qū)域中部署全局表。

•250萬(wàn)個(gè)源自DynamoDB流的流式讀取請(qǐng)求。

•1 GB的數(shù)據(jù)輸出(前12個(gè)月為15 GB),可橫跨AWS的各項(xiàng)服務(wù)進(jìn)行匯總。

如何在DynamoDB表上節(jié)省成本?

“按需”模式雖然靈活自主,但其成本卻高達(dá)“預(yù)購(gòu)置”模式的七倍。相反,使用預(yù)購(gòu)置模式勢(shì)必讓開(kāi)發(fā)人員承擔(dān)更多估算容量的任務(wù),并且可能會(huì)在可擴(kuò)展性上有所欠缺。下面是有關(guān)如何為應(yīng)用選擇正確的模式,以及優(yōu)化數(shù)據(jù)表的三點(diǎn)建議:

1.自動(dòng)化擴(kuò)展功能不但需要進(jìn)行基準(zhǔn)測(cè)試,而且很難適應(yīng)需求的快速變化。因此,用戶(hù)需要在盡可能接近系統(tǒng)的分布式情況下運(yùn)行測(cè)試,以確保自動(dòng)化擴(kuò)展能夠滿(mǎn)足真正的業(yè)務(wù)需求。

2.對(duì)于按需讀取密集型數(shù)據(jù)表的需求,DAX是一種基于使用率的經(jīng)濟(jì)型選擇。一個(gè)小型DAX實(shí)例(如:t2.medium)的成本,與“按需”模式下超過(guò)200M的讀取操作基本相同。也就是說(shuō),只有在高吞吐量的情況下,“按需”模式才會(huì)體現(xiàn)出節(jié)省的優(yōu)勢(shì)。

3.對(duì)于那些寫(xiě)入密集型的工作負(fù)載,SQS是管理高吞吐量、以及不可測(cè)流量峰值的理想選擇。各種消息會(huì)通過(guò)DynamoDB寫(xiě)入數(shù)據(jù)的Lambda函數(shù)進(jìn)行輪詢(xún)。數(shù)據(jù)庫(kù)通過(guò)限流來(lái)更好地分配容量,進(jìn)而充分地利用“預(yù)購(gòu)置”容量模式的優(yōu)勢(shì)。

如何設(shè)置AWS DynamoDB

總的說(shuō)來(lái),設(shè)置DynamoDB并不難。下面,我們將展示如何使用AWS Free Tier中的各種參數(shù)和功能。

創(chuàng)建NoSQL表

1.在DynamoDB控制臺(tái)上單擊“創(chuàng)建表”。

2.自定義表的名稱(chēng)。

3.將主鍵或分區(qū)鍵(Partition Key)作用于跨分區(qū)的分布數(shù)據(jù)上,以實(shí)現(xiàn)可擴(kuò)展性。據(jù)此,您可以將一系列數(shù)值均勻地分布到不同的訪(fǎng)問(wèn)模式中。

4.由于排序鍵只能對(duì)上述數(shù)據(jù)進(jìn)行排序,因此您需要對(duì)表進(jìn)行數(shù)據(jù)挖掘。

5.要啟用“自動(dòng)擴(kuò)展”功能,則需取消勾選“默認(rèn)設(shè)置”框,以便自動(dòng)創(chuàng)建一個(gè)名為DynamoDBAutoScaleRole的AWS IAM角色,來(lái)管理自動(dòng)化擴(kuò)展過(guò)程。

6.最后,請(qǐng)將界面滑到底部,并單擊“創(chuàng)建”。

新增數(shù)據(jù)

1.在“表項(xiàng)”選項(xiàng)卡中,單擊“創(chuàng)建表項(xiàng)”。

2.為每個(gè)數(shù)據(jù)表項(xiàng)添加主鍵和排序鍵的相關(guān)數(shù)據(jù),每次都需點(diǎn)擊“保存”。

DynamoDB 流

DynamoDB流可以在數(shù)據(jù)發(fā)生變更的時(shí)間點(diǎn),捕獲表的更改,進(jìn)而將這些更改存儲(chǔ)到日志中,并保存24小時(shí)。

我們可以將已更改表項(xiàng)的主鍵屬性,作為流式記錄實(shí)時(shí)寫(xiě)入,以確保更改的時(shí)序性。此外,我們也可以通過(guò)配置,讓它能夠捕獲諸如更改前、后的狀態(tài)等其他數(shù)據(jù)。這些流式記錄可以被其他應(yīng)用程序所使用,例如:

•匯總來(lái)自多個(gè)操作的指標(biāo),比如:在特定時(shí)間段內(nèi)一次性記錄某個(gè)社交平臺(tái)的“點(diǎn)贊”數(shù)量。

•在客戶(hù)將數(shù)據(jù)添加到DynamoDB表時(shí),會(huì)觸發(fā)一封電子郵件,以確認(rèn)輸入數(shù)據(jù)的正確性。

•在移動(dòng)應(yīng)用的數(shù)據(jù)表中,數(shù)據(jù)往往以每分鐘上千次的頻率變化著。這就需要另一個(gè)應(yīng)用來(lái)存儲(chǔ)變更的詳細(xì)信息,以便提供“參與度”之類(lèi)的實(shí)時(shí)指標(biāo)。

此外,值得注意的是,雖然AWS DynamoDB和DynamoDB Stream使用不同的端點(diǎn),但是兩者必須屬于同一個(gè)區(qū)域。

DynamoDB查詢(xún)

您可以根據(jù)主鍵去查詢(xún)表中的一個(gè)或一組表項(xiàng),并快速地檢索到它們。下面展示了查詢(xún)數(shù)據(jù)表的操作步驟:

1.在“表項(xiàng)”選項(xiàng)卡的下拉框中選擇“查詢(xún)”。

2.在主鍵或排序鍵的搜索框中輸入關(guān)鍵字,按需進(jìn)行查詢(xún)。

DynamoDB掃描

DynamoDB掃描可以通過(guò)讀取數(shù)據(jù)表、或二級(jí)索引中的每個(gè)表項(xiàng),以返回結(jié)果集。通過(guò)排序鍵,您也可以決定掃描的順序。同時(shí),過(guò)濾器表達(dá)式可以被用于確定從掃描中返回哪些表項(xiàng)。當(dāng)然,掃描可能會(huì)影響應(yīng)用的整體性能,因此,除非的確需要掃描每一個(gè)表項(xiàng),否則請(qǐng)改為使用DynamoDB查詢(xún)的方式。

原文標(biāo)題:The Ultimate Guide to AWS DynamoDB,作者: Taavi Rehemägi

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

 

責(zé)任編輯:火鳳凰 來(lái)源: 51CTO
相關(guān)推薦

2010-06-28 21:33:17

eMule協(xié)議

2012-10-22 16:47:45

IBMdw

2010-04-16 09:06:18

WPF 4

2019-04-16 08:21:46

2010-01-05 15:27:04

.NET Framew

2010-03-02 17:43:31

WCF框架處理流程

2019-09-16 08:22:12

特權(quán)訪(fǎng)問(wèn)管理PAM網(wǎng)絡(luò)安全

2021-06-03 09:20:33

微服務(wù)架構(gòu)代碼

2015-07-07 14:17:56

物聯(lián)網(wǎng)操作系統(tǒng)

2010-01-20 18:20:50

2023-05-11 08:59:43

Nginx配置服務(wù)器

2010-01-04 10:47:08

智能交換機(jī)

2009-12-03 09:08:21

路由器基本功能

2017-01-15 17:15:27

Java基本功能

2011-04-29 14:04:56

一體機(jī)

2009-12-03 14:10:22

路由器基本功能

2009-12-08 13:58:12

Linux操作系統(tǒng)垃圾郵件

2010-02-03 09:59:18

2015-11-09 10:34:54

iOS 9.1 iPhone

2009-11-24 17:35:59

路由器基本功能
點(diǎn)贊
收藏

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