Python语言与信息数据获取和机器学习Python 运维

Amazon DynamoDB 入门1: 配置(本地)及pyth

2017-02-13  本文已影响1086人  了不起的顾斯比

这是一个系列文章,会用大约10篇介绍python 如何 使用DynamoDB。

什么是 Amazon DynamoDB

Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,提供快速而可预测的性能,能够实现无缝扩展。使用 DynamoDB,您可以免除操作和扩展分布式数据库的管理工作负担,因而无需担心硬件预置、设置和配置、复制、软件修补或集群扩展等问题。

使用 DynamoDB,您可以创建数据库表来存储和检索任意量级的数据,并提供任意级别的请求流量。您可以扩展或缩减您的表的吞吐容量,而不会导致停机或性能下降,还可以使用 AWS 管理控制台来监控资源使用情况和各种性能指标。

Amazon DynamoDB 特点

DynamoDB 会自动将数据和流量分散到足够数量的服务器上,以满足吞吐量和存储需求,同时保持始终如一的高性能。所有数据均存储在固态硬盘 (SSD) 中,并会自动复制到 AWS 区域中的多个可用区中,从而提供内置的高可用性和数据持久性。

DynamoDB 是 NoSQL 数据库并且无架构,这意味着,与主键属性不同,无需在创建表时定义任何属性或数据类型。与此相对,关系数据库要求在创建表时定义每个列的名称和数据类型。

Amazon DynamoDB 使用

AWS 配置

  1. 注册 Amazon Web Services 并创建访问密钥
  2. 创建 AWS 凭证文件
  3. 开启DynamoDB 服务

在计算机上运行 DynamoDB

除了 Amazon DynamoDB Web 服务之外,AWS 还提供可本地运行的可下载版本的 DynamoDB。
使用本地版本,在开发应用程序时无需 Internet 连接。

方法1 直接在计算机上安装

需要安装java环境

  1. 下载 DynamoDB
  2. 解压,并将解压后的目录复制到某个位置
  3. 打开命令提示符窗口,打开 DynamoDBLocal.jar 的目录,并输入以下命令:
    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -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 正常。

上一篇 下一篇

猜你喜欢

热点阅读