📜  DynamoDB-环境(1)

📅  最后修改于: 2023-12-03 15:00:33.593000             🧑  作者: Mango

DynamoDB-环境

DynamoDB是由亚马逊提供的一种面向文档和键值存储的全托管、高可扩展性的NoSQL数据库服务。它支持丰富的数据模型和功能,包括基于文档的数据模型、一致性和原子性操作、局部和全局辅助索引、自动缩放等特性。在高度可扩展和高可用的环境下,DynamoDB可以处理数千万个请求,支持超过100万个并发连接,从而满足大多数应用程序的需求。

DynamoDB架构

DynamoDB由三个基本组件组成:存储集群、管理服务和客户端库。存储集群负责存储数据,管理服务负责监控和扩展集群,并提供便捷的管理工具和API;客户端库用于与DynamoDB进行通信。

以下是DynamoDB的典型架构图:

DynamoDB-架构图

如图所示,一个DynamoDB表由分片和项目组成。一个分片包含多个项目,每个项目包含主键和任意数量的非键属性。每个分片在集群中的不同节点上存储。

DynamoDB环境搭建

亚马逊提供了DynamoDB的云服务,可以在AWS上使用DynamoDB。此外,您还可以在本地环境中使用DynamoDB,以建立具有测试性能的开发环境。开发人员可以使用DynamoDB本地版本创建测试表,模拟分区和数据持久性等特性,并使用CLI或API进行访问。 这是一个方便的开发工具,可在本地开发环境中快速进行测试和本地开发。

以下是在本地Windows环境中使用DynamoDB的概述:

步骤1: 安装Java运行时环境

DynamoDB需要Java 6.x(或更高版本)运行时环境。您可以通过此链接下载和安装Java SE运行时环境。

步骤2: 安装DynamoDB本地版本

DynamoDB本地版本是在Windows上运行的,模拟了亚马逊云中的DynamoDB服务。你可以在此链接上下载DynamoDB本地版本。下载完成后,解压文件,并将文件夹重命名为“dynamodb”。

步骤3: 启动DynamoDB本地版本

启动本地版本时,您需要指定DynamoDB将使用的端口。在下载的文件夹中打开命令提示符,运行以下命令:

cd C:\path\to\dynamodb
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -port 8000

请确保替换路径"C:\path\to\dynamodb"为您的DynamoDB本地版本的文件夹路径。以上命令将启动DynamoDB,使用8000端口,并指定共享数据库的位置。

步骤4: 使用CLI或API访问DynamoDB

您可以使用CLI或API访问本地版本的DynamoDB,并执行以下任务:

  • 创建,更新和删除表
  • 插入,读取和删除数据
  • 查询和扫描表

使用CLI访问的示例命令如下:

aws dynamodb list-tables --endpoint-url http://localhost:8000 

使用API访问DynamoDB的示例代码如下:

import boto3

dynamodb = boto3.resource('dynamodb', endpoint_url='http://localhost:8000')

table = dynamodb.create_table(
        TableName='users',
        KeySchema=[
            {
                'AttributeName': 'username',
                'KeyType': 'HASH'
            },
            {
                'AttributeName': 'last_name',
                'KeyType': 'RANGE'
            }
        ],
        AttributeDefinitions=[
            {
                'AttributeName': 'username',
                'AttributeType': 'S'
            },
            {
                'AttributeName': 'last_name',
                'AttributeType': 'S'
            }
        ],
        ProvisionedThroughput={
            'ReadCapacityUnits': 5,
            'WriteCapacityUnits': 5
        }
    )

print("Table status:", table.table_status)

在上述示例中,我们使用Python Boto3库来创建一个名为"users"的表,该表有一个哈希键"username"、一个范围键"last_name",以及一个5个读、写容量单元的预留吞吐量。

结论

本文介绍了DynamoDB的架构和环境搭建。DynamoDB是一种强大的全托管NoSQL数据库服务,可支持高度可扩展和高可用的应用程序。您可以使用本地版本的DynamoDB来创建测试表,并使用CLI或API访问它。