Amazon DynamoDB 入門1: 配置(本地)及python示例

什麼是 Amazon DynamoDB

Amazon DynamoDB 是一種徹底託管的 NoSQL 數據庫服務,提供快速而可預測的性能,可以實現無縫擴展。使用 DynamoDB,您能夠免除操做和擴展分佈式數據庫的管理工做負擔,於是無需擔憂硬件預置、設置和配置、複製、軟件修補或集羣擴展等問題。html

使用 DynamoDB,您能夠建立數據庫表來存儲和檢索任意量級的數據,並提供任意級別的請求流量。您能夠擴展或縮減您的表的吞吐容量,而不會致使停機或性能降低,還可使用 AWS 管理控制檯來監控資源使用狀況和各類性能指標。java

Amazon DynamoDB 特色

DynamoDB 會自動將數據和流量分散到足夠數量的服務器上,以知足吞吐量和存儲需求,同時保持始終如一的高性能。全部數據均存儲在固態硬盤 (SSD) 中,並會自動複製到 AWS 區域中的多個可用區中,從而提供內置的高可用性和數據持久性。git

DynamoDB 是 NoSQL 數據庫而且無架構,這意味着,與主鍵屬性不一樣,無需在建立表時定義任何屬性或數據類型。與此相對,關係數據庫要求在建立表時定義每一個列的名稱和數據類型。github

Amazon DynamoDB 使用

AWS 配置

  1. 註冊 Amazon Web Services 並建立訪問密鑰docker

  2. 建立 AWS 憑證文件數據庫

  3. 開啓DynamoDB 服務json

在計算機上運行 DynamoDB

除了 Amazon DynamoDB Web 服務以外,AWS 還提供可本地運行的可下載版本的 DynamoDB。
使用本地版本,在開發應用程序時無需 Internet 鏈接。服務器

方法1 直接在計算機上安裝

須要安裝java環境架構

  1. 下載 DynamoDBapp

  2. 解壓,並將解壓後的目錄複製到某個位置

  3. 打開命令提示符窗口,打開 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 客戶端都將與同一組表交互,不管其區域和證書配置如何。

詳細配置可參考官方文檔

方法2 使用docker安裝

須要安裝docker

方法一須要咱們手動配置,操做也麻煩,若是喜歡docker,能夠直接使用docker快速搭建本地環境

1. 下載鏡像

docker pull ryanratcliff/dynamodb

2. 啓動

docker run -d -p 8000:8000 ryanratcliff/dynamodb

詳細配置可參考

Python 使用 DynamoDB

咱們可使用適用於 Python (Boto 3) 的 AWS 開發工具包進行開發。

  1. 安裝boto3

pip install boto3
  1. 使用 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

具體配置參考官方文檔

  1. 使用如下代碼測試 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安裝及配置

相關文章
相關標籤/搜索