什麼是 Amazon DynamoDB
Amazon DynamoDB 是一種完全託管的 NoSQL 資料庫服務,提供快速而可預測的效能,能夠實現無縫擴充套件。使用 DynamoDB,您可以免除操作和擴充套件分散式資料庫的管理工作負擔,因而無需擔心硬體預置、設定和配置、複製、軟體修補或叢集擴充套件等問題。
使用 DynamoDB,您可以建立資料庫表來儲存和檢索任意量級的資料,並提供任意級別的請求流量。您可以擴充套件或縮減您的表的吞吐容量,而不會導致停機或效能下降,還可以使用 AWS 管理控制檯來監控資源使用情況和各種效能指標。
Amazon DynamoDB 特點
DynamoDB 會自動將資料和流量分散到足夠數量的伺服器上,以滿足吞吐量和儲存需求,同時保持始終如一的高效能。所有資料均儲存在固態硬碟 (SSD) 中,並會自動複製到 AWS 區域中的多個可用區中,從而提供內建的高可用性和資料永續性。
DynamoDB 是 NoSQL 資料庫並且無架構,這意味著,與主鍵屬性不同,無需在建立表時定義任何屬性或資料型別。與此相對,關聯式資料庫要求在建立表時定義每個列的名稱和資料型別。
Amazon DynamoDB 使用
AWS 配置
-
註冊 Amazon Web Services 並建立訪問金鑰
-
建立 AWS 憑證檔案
-
開啟DynamoDB 服務
在計算機上執行 DynamoDB
除了 Amazon DynamoDB Web 服務之外,AWS 還提供可本地執行的可下載版本的 DynamoDB。
使用本地版本,在開發應用程式時無需 Internet 連線。
方法1 直接在計算機上安裝
需要安裝java環境
-
下載 DynamoDB
-
解壓,並將解壓後的目錄複製到某個位置
-
開啟命令提示符視窗,開啟 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 開發工具包進行開發。
-
安裝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安裝及配置