本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon DynamoDB 是無伺服器 NoSQL 全受管資料庫,具有任何規模的單一位數毫秒效能。
DynamoDB 解決了您克服關聯式資料庫擴展和操作複雜性的需求。DynamoDB 專為需要任何規模一致效能的操作工作負載而打造和最佳化。例如,DynamoDB 可為購物車使用案例提供一致的單一位數毫秒效能,無論您是 1000 萬或 1 億使用者。DynamoDB 於 2012 年推出
所有規模、產業和地理區域的客戶都使用 DynamoDB 來建置現代、無伺服器的應用程式,這些應用程式可以從小型規模開始並在全球進行擴展。DynamoDB 擴展到支援幾乎任何大小的資料表,同時提供一致的單一位數毫秒效能和高可用性。
對於 Amazon Prime Day
DynamoDB 的特性
無伺服器
使用 DynamoDB,您不需要佈建任何伺服器,或修補、管理、安裝、維護或操作任何軟體。DynamoDB 提供零停機時間維護。它沒有版本 (主要、次要或修補程式),也沒有維護時段。
DynamoDB 的隨需容量模式為讀取和寫入請求提供pay-as-you-go定價,因此您只需支付使用量的費用。透過隨需,DynamoDB 可立即擴展或縮減資料表,以調整容量,並在零管理的情況下維持效能。它也會縮減為零,因此當您的資料表沒有流量且沒有冷啟動時,您不需要支付輸送量的費用。
NoSQL
作為 NoSQL 資料庫,DynamoDB 專為提供比傳統關聯式資料庫更好的效能、可擴展性、可管理性和彈性而打造。為了支援各種使用案例,DynamoDB 支援鍵值和文件資料模型。
與關聯式資料庫不同,DynamoDB 不支援 JOIN 運算子。我們建議您將資料模型取消標準化,以減少資料庫往返次數,並處理回應查詢所需的電力。作為 NoSQL 資料庫,DynamoDB 提供強大的讀取一致性和 ACID 交易
完全受管
作為全受管資料庫服務,DynamoDB 會處理管理資料庫的無差異繁重工作,讓您可以專注於為客戶建立價值。它可處理設定、組態、維護、高可用性、硬體佈建、安全性、備份、監控等。這可確保當您建立 DynamoDB 資料表時,它可立即準備好用於生產工作負載。DynamoDB 會持續改善其可用性、可靠性、效能、安全性和功能,而不需要升級或停機時間。
任何規模的單一位數毫秒效能
DynamoDB 旨在改善關聯式資料庫的效能和可擴展性,以在任何規模下提供單位數毫秒效能。為了達到此規模和效能,DynamoDB 已針對高效能工作負載進行最佳化,並提供 APIs 來鼓勵有效率的資料庫使用。它省略了大規模效率不佳和效能不佳的功能,例如 JOIN 操作。無論您是 100 或 1 億使用者,DynamoDB 都會為您的應用程式提供一致的單一位數毫秒效能。
DynamoDB 使用案例
所有規模、產業和地理區域的客戶都使用 DynamoDB 來建置現代、無伺服器的應用程式,這些應用程式可以從小型規模開始並在全球進行擴展。DynamoDB 非常適合需要任何規模一致效能且操作額外負荷極少到零的使用案例。以下清單顯示一些您可以使用 DynamoDB 的使用案例:
-
金融服務應用程式 – 假設您是金融服務公司建置應用程式,例如即時交易和路由、貸款管理、權杖產生和交易分類帳。使用 DynamoDB 全域資料表,您的應用程式可以回應事件, AWS 區域 並以快速的本機讀取和寫入效能來提供所選流量。
DynamoDB 適用於具有最嚴格可用性要求的應用程式。它消除了手動擴展執行個體的操作負擔,以提高儲存或輸送量、版本控制和授權。
您可以使用 DynamoDB 交易,透過單一請求實現一或多個資料表的原子性、一致性、隔離性和耐久性 (ACID)。(ACID) 交易適合工作負載,包括處理金融交易或履行訂單。DynamoDB 會在工作負載上升或下降時立即滿足您的工作負載,讓您能夠根據交易時間等市場條件有效率地擴展資料庫。
-
遊戲應用程式 – 身為遊戲公司,您可以使用 DynamoDB 進行遊戲平台的所有部分,例如遊戲狀態、玩家資料、工作階段歷史記錄和排行榜。選擇 DynamoDB 以取得其規模、一致效能,以及無伺服器架構提供的操作簡易性。DynamoDB 非常適合支援成功遊戲所需的橫向擴展架構。它可快速擴展遊戲的傳入和傳出輸送量 (擴展到零,無需冷啟動)。無論您是針對尖峰流量進行擴展,還是在遊戲使用量低時縮減規模,此可擴展性都會最佳化架構的效率。
-
串流應用程式 – 媒體和娛樂公司使用 DynamoDB 做為內容、內容管理服務的中繼資料索引,或提供近乎即時的運動統計資料。他們也使用 DynamoDB 執行使用者觀察清單和將服務加入書籤,並處理數十億筆每日客戶事件來產生建議。這些客戶受益於 DynamoDB 的可擴展性、效能和彈性。DynamoDB 會隨著工作負載的增加或減少而擴展,讓串流媒體使用案例能夠支援任何層級的需求。
若要進一步了解不同產業的客戶如何使用 DynamoDB,請參閱 Amazon DynamoDB 客戶
DynamoDB 的功能
使用全域資料表進行多主動複寫
全域資料表提供跨所選 資料的多主動複寫 AWS 區域 ,可用性為 99.999%
您的全域分佈應用程式可以在本機存取所選區域中的資料,以達到單一位數毫秒的讀取和寫入效能。由於全域資料表是多作用中的,因此您不需要主資料表。這表示在 區域之間透過應用程式失敗時,不會發生複雜或延遲的容錯移轉或資料庫停機時間。
ACID 交易
DynamoDB 專為關鍵任務工作負載而建置。它包含 (ACID) 交易支援需要複雜商業邏輯的應用程式。DynamoDB 為交易提供原生的伺服器端支援,簡化開發人員對資料表內和跨資料表的多個項目進行協調all-or-nothing變更的體驗。
變更事件驅動架構的資料擷取
DynamoDB 支援近乎即時地串流項目層級變更資料擷取 (CDC) 記錄。它為 CDC 提供兩種串流模型:DynamoDB Streams 和 DynamoDB 的 Kinesis Data Streams。每當應用程式在資料表中建立、更新或刪除項目時,串流會記錄幾乎即時的每個項目層級變更的時間順序。這使得 DynamoDB Streams 非常適合具有事件驅動架構的應用程式,以取用和處理變更。
次要索引
DynamoDB 提供建立全域和本機次要索引的選項,可讓您使用備用索引鍵查詢資料表資料。透過這些次要索引,您可以使用主索引鍵以外的屬性來存取資料,從而在存取資料時獲得最大的靈活性。
服務整合
DynamoDB 廣泛地與數個 整合 AWS 服務 ,協助您從資料中獲得更多價值、消除未區分的繁重負載,以及大規模操作工作負載。一些範例包括: AWS CloudFormation、Amazon CloudWatch、Amazon S3、 AWS Identity and Access Management (IAM) 和 AWS Auto Scaling。下列各節說明您可以使用 DynamoDB 執行的一些服務整合:
無伺服器整合
為了建置end-to-end無伺服器應用程式,DynamoDB 原生整合了許多無伺服器 AWS 服務。例如,您可以將 DynamoDB 與 整合, AWS Lambda 以建立觸發程序,這些觸發程序是自動回應 DynamoDB Streams 中事件的程式碼片段。透過觸發,您可以建置事件驅動的應用程式,以回應 DynamoDB 資料表中的資料修改。若要成本最佳化,您可以篩選 Lambda 從 DynamoDB 串流處理的事件。 DynamoDB
下列清單提供與 DynamoDB 無伺服器整合的一些範例:
-
AWS AppSync 用於建立 GraphQL APIs
-
建立 REST API APIsAmazon API Gateway
-
適用於無伺服器運算的 Lambda
-
適用於變更資料擷取的 Amazon Kinesis Data Streams (CDC)
將資料匯入和匯出至 Amazon S3
將 DynamoDB 與 Amazon S3 整合可讓您輕鬆地將資料匯出至 Amazon S3 儲存貯體,以供分析和機器學習。DynamoDB 支援完整資料表匯出和增量匯出,以在指定時段之間匯出變更、更新或刪除的資料。您也可以將資料從 Amazon S3 匯入新的 DynamoDB 資料表。
零 ETL 整合
DynamoDB 支援與 Amazon Redshift 進行零 ETL 整合,並搭配 Amazon DynamoDB 使用 OpenSearch Ingestion 管道。這些整合可讓您執行複雜的分析,並在 DynamoDB 資料表資料上使用進階搜尋功能。例如,您可以對 DynamoDB 資料執行全文和向量搜尋,以及語意搜尋。零 ETL 整合不會影響在 DynamoDB 上執行的生產工作負載。
快取
DynamoDB Accelerator (DAX) 是一種專為 DynamoDB 建置的全受管、高可用性快取服務。DAX 提供高達 10 倍的效能改善,從毫秒到微秒,甚至每秒數百萬個請求。DAX 會執行將記憶體內加速新增至 DynamoDB 資料表所需的所有繁重作業,而不需要您管理快取失效、資料人口或叢集管理。
安全
DynamoDB 利用 IAM 協助您安全地控制對 DynamoDB 資源的存取。透過 IAM,您可以集中管理許可,以控制哪些 DynamoDB 使用者可以存取資源。您可以使用 IAM 來控制能通過身分驗證 (登入) 和授權使用資源的 (具有許可) 的人員。由於 DynamoDB 使用 IAM,因此沒有使用者名稱或密碼可存取 DynamoDB。由於您沒有任何複雜的密碼輪換政策可管理,因此可簡化您的安全狀態。透過 IAM,您也可以啟用精細存取控制,以在屬性層級提供授權。您也可以定義資源型政策,並支援 IAM Access Analyzer 和封鎖公開存取 (BPA),以簡化政策管理。
根據預設,DynamoDB 會加密所有靜態客戶資料。靜態加密使用 AWS Key Management Service() 中存放的加密金鑰來增強資料的安全性AWS KMS。您可以透過靜態加密,建立符合嚴格加密合規和法規要求,而且對安全性要求甚高的應用程式。當您存取加密的資料表,DynamoDB 會以透明方式解密資料表資料。您不必變更任何代碼或應用程式來使用或管理加密的資料表。DynamoDB 會持續提供與預期相同的單一位數毫秒延遲,且所有 DynamoDB 查詢都能順暢地處理加密的資料。
您可以指定 DynamoDB 是否應使用 AWS 擁有的金鑰 (預設加密類型) AWS 受管金鑰、 或客戶受管金鑰來加密使用者資料。使用 AWS擁有的 KMS 金鑰進行預設加密是免費的。對於用戶端加密,您可以使用AWS 資料庫加密 SDK
DynamoDB 也遵循多項合規標準
恢復能力
根據預設,DynamoDB 會自動跨三個可用區域
DynamoDB 包含下列功能,可協助支援您的資料彈性和備份需求:
全域資料表
DynamoDB 全域資料表可啟用 99.999% 的可用性 SLA
持續備份和point-in-time復原
持續備份可讓您每秒精細程度,並能夠啟動point-in-time復原。使用point-in-time復原,您可以將資料表還原到過去 35 天內任何時間點,最多到秒。您可以將復原期間設定為 1 到 35 天之間的任何值。
持續備份和啟動point-in-time還原不會使用佈建的容量。它們也不會影響您應用程式的效能或可用性。
隨需備份與還原
隨需備份和還原可讓您建立資料表的完整備份,以長期保留和封存以符合法規需求。備份不會影響資料表的效能,而且您可以備份任何大小的資料表。透過AWS Backup 整合,您可以使用 AWS Backup 自動排程、複製、標記和管理 DynamoDB 隨需備份的生命週期。使用 AWS Backup,您可以跨帳戶和區域複製隨需備份,並將較舊的備份轉換為冷儲存體,以實現成本最佳化。
存取 DynamoDB
您可以使用 AWS Management Console
如需詳細資訊,請參閱存取 DynamoDB。
DynamoDB 定價
DynamoDB 會在資料表中讀取、寫入和儲存資料,以及您選擇啟用的任何選用功能。DynamoDB 有兩種容量模式,其個別的計費選項可用於處理資料表上的讀取和寫入:隨需和佈建。
DynamoDB 也提供免費方案,提供 25 GB 的儲存空間。免費方案也包含 25 個佈建寫入和 25 個佈建讀取容量單位 (WCU、RCU),足以處理每月 2 億個請求。
如需詳細資訊,請參閱 Amazon DynamoDB
DynamoDB 入門
如果您是初次使用 DynamoDB,建議您先閱讀下列主題:
-
DynamoDB 入門 – 逐步解說設定 DynamoDB、建立範例資料表和上傳資料的程序。本主題也提供使用 AWS CLI AWS Management Console、NoSQL Workbench 和 DynamoDB APIs 執行一些基本資料庫操作的相關資訊。
-
DynamoDB 核心元件 – 說明基本的 DynamoDB 概念。
-
使用 DynamoDB 進行設計和架構的最佳實務 – 提供有關 NoSQL 設計、DynamoDB Well-Architected Lens、資料表設計和其他多種 DynamoDB 功能的建議。這些最佳實務可協助您在使用 DynamoDB 時,將效能最大化,並將輸送量成本降至最低。
我們也建議您檢閱下列教學課程,其中提供完整的end-to-end程序,讓您熟悉 DynamoDB。您可以使用 免費方案 完成這些教學課程 AWS。
如需遷移至 DynamoDB 的資源、工具和策略相關資訊,請參閱遷移至 DynamoDB。若要閱讀最新的部落格和白皮書,請參閱 Amazon DynamoDB 資源