什么是 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 连接。
使用本地版本,在开发应用程序时无需 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
可以使用 以下命令列出 .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 正常。
from : https://segmentfault.com/a/1190000008068801
No comments:
Post a Comment