📜  DynamoDB-概述(1)

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

DynamoDB 概述

什么是 DynamoDB?

DynamoDB 是一个全托管的 NoSQL 数据库服务,由亚马逊公司发布。它拥有自动扩展、高可用、低延迟等特点,并且简化了服务器端应用程序的开发过程。

DynamoDB 的数据存储模型采用了键值对(Key-Value Pair)的结构,数据是以表的形式组织,支持 ACID 事务、数据加密等功能。

DynamoDB 的特点
  • 全托管服务,无需自己管理硬件和软件环境。
  • 自动水平扩展,支持处理海量数据和高并发请求。
  • 高可用性,采用分布式系统架构,可以保证服务的可用性。
  • 低延迟,由于数据存储在 SSD 上,所以具有出色的读写性能。
DynamoDB 数据模型

在 DynamoDB 中,数据是以表的形式组织的。每个表由一个或多个项组成,每个项是包含一个或多个属性的数据单元。表和项之间是一对多的关系。

在 DynamoDB 中,一条数据记录称为项(Item)。它是一个键值对(Key-Value Pair),其中键(Primary Key)是一个唯一标识该项的属性,值(Value)是可选存储的其他数据属性。

属性

在 DynamoDB 中,项(Item)由一个或多个属性(Attribute)组成。属性是一个键值对(Key-Value Pair),其中键为属性名,值为属性的值。

DynamoDB API

DynamoDB 提供了多种 API,包括 Java、.NET、PHP、Python、Go 等多种语言的 SDK,可以方便地与应用程序进行集成。下面是一个 Python 示例:

import boto3

dynamodb = boto3.resource('dynamodb')

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)

以上代码示例创建了一个名为 users 的表,其中 usernamelast_name 分别作为哈希键和范围键,设置了预留读/写请求容量单位。

总结

DynamoDB 是一个强大的 NoSQL 数据库服务,具有自动扩展、高可用、低延迟等特点。数据存储模型以键值对(Key-Value Pair)结构组织,API 提供多种语言 SDK。使用 DynamoDB 可以帮助开发人员简化服务器端应用程序的开发过程,提高应用程序的可用性和性能。