Amazon DynamoDB 是一種徹底託管的 NoSQL 數據庫服務,提供快速而可預測的性能,可以實現無縫擴展。使用 DynamoDB,您能夠免除操做和擴展分佈式數據庫的管理工做負擔,於是無需擔憂硬件預置、設置和配置、複製、軟件修補或集羣擴展等問題。html
使用 DynamoDB,您能夠建立數據庫表來存儲和檢索任意量級的數據,並提供任意級別的請求流量。您能夠擴展或縮減您的表的吞吐容量,而不會致使停機或性能降低,還可使用 AWS 管理控制檯來監控資源使用狀況和各類性能指標。java
DynamoDB 會自動將數據和流量分散到足夠數量的服務器上,以知足吞吐量和存儲需求,同時保持始終如一的高性能。全部數據均存儲在固態硬盤 (SSD) 中,並會自動複製到 AWS 區域中的多個可用區中,從而提供內置的高可用性和數據持久性。git
DynamoDB 是 NoSQL 數據庫而且無架構,這意味着,與主鍵屬性不一樣,無需在建立表時定義任何屬性或數據類型。與此相對,關係數據庫要求在建立表時定義每一個列的名稱和數據類型。github
註冊 Amazon Web Services 並建立訪問密鑰docker
建立 AWS 憑證文件數據庫
開啓DynamoDB 服務json
除了 Amazon DynamoDB Web 服務以外,AWS 還提供可本地運行的可下載版本的 DynamoDB。
使用本地版本,在開發應用程序時無需 Internet 鏈接。服務器
須要安裝java環境架構
下載 DynamoDBapp
解壓,並將解壓後的目錄複製到某個位置
打開命令提示符窗口,打開 DynamoDBLocal.jar 的目錄,並輸入如下命令:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
如今就可使用了
命令行選項
DynamoDB 接受如下命令參數:
-cors value - 啓用適用於 JavaScript 的 CORS 支持(跨源資源共享)。您必須提供特定域的逗號分隔「容許」列表。-cors 的默認設置是星號 (*),這將容許公開訪問。
-dbPath value - DynamoDB 將用於寫入其數據庫文件的目錄。若是不指定此選項,則文件將寫入當前目錄。請注意,不能同時指定 -dbPath 和 -inMemory。
-delayTransientStatuses - 使 DynamoDB 爲某些操做引入延遲。DynamoDB 幾乎能夠即時執行某些任務,例如,對錶和索引執行建立/更新/刪除操做;可是,實際 DynamoDB 服務須要更多時間才能完成這些任務。設置此參數有助於 DynamoDB 更逼真地模擬 Amazon DynamoDB Web 服務的行爲。(目前,此參數僅爲處於 CREATING 或 DELETING 狀態的global secondary index引入延遲。)
-help – 打印使用摘要和選項。
-inMemory – DynamoDB 將在內存中運行,而不使用數據庫文件。中止 DynamoDB 時,不會保存任何數據。請注意,不能同時指定 -dbPath 和 -inMemory。
-optimizeDbBeforeStartup – 在計算機上啓動 DynamoDB 以前優化底層數據庫表。使用此參數時,必須還要指定 -dbPath。
-port value - DynamoDB 將用於與應用程序通訊的端口號。若是不指定此選項,則默認端口是 8000
-sharedDb - DynamoDB 將使用單個數據庫文件,而不是針對每一個證書和區域使用不一樣的文件。若是指定 -sharedDb,那麼全部 DynamoDB 客戶端都將與同一組表交互,不管其區域和證書配置如何。
須要安裝docker
方法一須要咱們手動配置,操做也麻煩,若是喜歡docker,能夠直接使用docker快速搭建本地環境
1. 下載鏡像 docker pull ryanratcliff/dynamodb 2. 啓動 docker run -d -p 8000:8000 ryanratcliff/dynamodb
咱們可使用適用於 Python (Boto 3) 的 AWS 開發工具包進行開發。
安裝boto3
pip install boto3
使用 AWS CLI 配置祕鑰
# 安裝awscli sudo pip install awscli # 測試awscli 安裝 aws help # 輸入命令 aws configure # 配置 Access Key ID 和 Secret Access Key AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: ENTER # 要更新任何設置,只需再次運行 aws configure 並根據須要輸入新值。
CLI 將使用 aws configure 指定的證書存儲在您主目錄中名爲 .aws 的文件夾中名爲 credentials 的本地文件中
可使用 如下命令列出 .aws 文件夾內容:
Linux, OS X, or Unix
$ ls ~/.aws
使用如下代碼測試 DynamoDB 是否可用
import boto3 db3 = boto3.resource('dynamodb', endpoint_url='http://localhost:8000', aws_secret_access_key='ticTacToeSampleApp', aws_access_key_id='ticTacToeSampleApp', region_name='us-west-2') db3.meta.client.list_tables() # output {'ResponseMetadata': {'HTTPHeaders': {'content-length': '32', 'content-type': 'application/x-amz-json-1.0', 'server': 'Jetty(8.1.12.v20130726)', 'x-amz-crc32': '2024476575', 'x-amzn-requestid': '5f0a974a-8900-470d-8b28-a4207247c65e'}, 'HTTPStatusCode': 200, 'RequestId': '5f0a974a-8900-470d-8b28-a4207247c65e', 'RetryAttempts': 0}, u'TableNames': []}
若是輸出以上內容,則說明DynamoDB 正常。
原文連接:DynamoDB安裝及配置