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安装及配置