当前位置: 首页 > article >正文

【Amazon】亚马逊云科技Amazon DynamoDB 实践Amazon DynamoDB

Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,专为高性能和可扩展性设计,特别适合需要快速响应和高吞吐量的应用场景,如移动应用、游戏、物联网和实时分析等。

工作原理

Amazon DynamoDB 在任何规模下响应时间一律达毫秒级,使您能够开发并运行现代应用程序,同时只需为实际使用量付费。其核心工作原理包括以下几个方面:

1.  数据存储与管理:DynamoDB 支持 NoSQL Workbench,允许用户配置表和键值对。它具有静态加密、按需容量模式、多区域复制等特性,确保数据的安全和高可用性。

2.  全球表和恢复:通过全球表功能实现跨多个亚马逊云科技区域的同步,支持任意时刻恢复 (Point-in-time Recovery),确保数据完整性和恢复能力。

3.  PartiQL 支持:允许使用 SQL 类查询语法查询 DynamoDB 数据。

4.  集成与数据流导出:DynamoDB 支持与亚马逊云科技其他服务集成,如 Amazon S3、Amazon Glue、Kinesis 数据流等,实现数据导出、分析和监控,增强数据处理和安全性。

通过这些机制,DynamoDB 提供了一个高度可扩展、灵活的数据库解决方案,满足现代应用的需求,具体如下图所示:

免费额度

DynamoDB 的免费套餐提供 25GB 的存储空间,以及 25 个预置的写入容量单位和 25 个预置的读取容量单位 (WCU、RCU),足以处理每月 2 亿个请求。写入和读取容量单位可以通过表的其他设置选项卡中进行查看,注意不要超过免费额度,不然会产生费用。

注册账号

在使用 Amazon DynamoDB 之前,需要先注册亚马逊云科技官方账号。

重要说明:申请 AWS 必须持有一张信用,比如万事达、运通卡、VISA卡、银联信用卡

1、  登录亚马逊云科技官方网站,点击右上角的登录控制台。然后选择创建新 AWS账号

2、按照提示填写邮件地址与账户名称,然后点击验证电子邮件地址。

3、查看邮箱中的验证码

4、输入验证码,点击验证

5、验证通过后输入根用户密码两次后并点击继续。

6、按照提示输入联系人信息后并点击继续,所有信息不能用中文、拼音。

7、输入信用卡信息后点击继续,万事达、运通卡、VISA卡、银联信用卡都可以。

8、确认身份信息后点击继续,中国地区代码+86。

9、输入短信验证码后继续。

10、选择支持计划,选第一个基本支持 – 免费的即可。

登录控制台

账号注册完成之后,点击这里登录控制台,选择根用户,然后输入刚刚注册账号时用的邮箱。

点击下一步,输入密码,点击登录。

然后就到了亚马逊云科技的控制台主页,具体如下:

在搜索栏中输入 DynamoDB 并选择打开 DynamoDB 控制台。

创建NoSQL表

1、  创建表

在 DynamoDB 控制台上,点击 Create table(创建表)。

2、  添加表名

Table name(表名)文本框中,输入 Music

3、  设置Partition key

Partition key(分区键)文本框中,输入 Artist,其主要是用于跨分区分布数据以实现可扩展性

4、  设置 Sort key

Sort key(排序键)文本框中,输入 songTitle,用排序键轻松排序。

5、  启用 DynamoDB 自动扩缩。

选择 Customize settings(自定义设置),他会基于请求量改变表的读写能力自动扩缩

6、  点击Create table

点击 Create table(创建表)。当 Music 表可用时,它会出现在表列表中并带有一个复选框。

操作数据

对表中数据进行操作时,可以通过可视化页面进行操作,也可以通过下面的方式进行操作。

连接到DynamoDB

需要提供亚马逊云科技的访问秘钥凭证和地区,通过boto3.resource来创建一个DynamoDB客户端,注意需要安装boto3库。可以通过pip install boto3进行安装


# 指定亚马逊云科技访问密钥和凭证

ACCESS_KEY = 'your-access-key'

SECRET_KEY = 'your-secret-key'

REGION = 'ap-east-1'



# 创建DynamoDB客户端

dynamodb = boto3.resource('dynamodb',region_name=REGION,aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY)

新增

Music就是我们的一开始创建的表名,Item里面的id就是我们的主键

# 获取DynamoDB表

table = dynamodb.Table('Music')

# 将文本内容插入到DynamoDB表中

table.put_item(

Item={

   'id': '1',

    'text': "青花瓷"

  }

)

查询

这里我们查整个表

table = dynamodb.Table('Music')

response = table.scan()

items = response['Items']

print(items)

结果如下

[{'id': '1', 'text': '青花瓷'}]

修改

# 定义要更新的项的主键

key = {'id': '1'}



# 更新数组,追加一个新的整数

table.update_item(

Key=key,

UpdateExpression='SET #attrName = :attrValue',

ExpressionAttributeNames={'#attrName': 'text'},

ExpressionAttributeValues={':attrValue': '这就是爱'}

)

删除


# 定义需要删除的数据的主键

item_key = {'id': '1'}



# 删除数据

response = table.delete_item(Key=item_key)

总结

Amazon DynamoDB 提供了一个灵活、可靠且高扩展性的数据库解决方案,用户可以轻松创建表、管理数据,并与亚马逊云科技生态系统无缝集成,为开发现代应用程序提供了极大便利。


http://www.kler.cn/a/404590.html

相关文章:

  • 影视后期学习Ⅰ~
  • 初始ArkUI
  • 使用node-addon-api实现从c到nodejs模块全流程
  • 问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
  • Spring Boot + Vue 基于 RSA 的用户身份认证加密机制实现
  • 图的存储、遍历以及Dijkstra/Floyd/Kruskal/Prim/拓扑排序/关键路径(实验8--作业)
  • windows下编译ffmpeg4.4版本
  • Redis分布式锁的原理与Redisson实现
  • Python解析视频FPS(帧率)、分辨率信息
  • Qt桌面应用开发 第六天(鼠标事件 定时器事件 定时器类 事件分发器 事件过滤器)
  • p2p网络介绍
  • 编程语言的前后端分离:可用JavaScript运行时作为后端的语言及与传统编程语言的对比 -Typescript、Nim、Moonbit
  • HarmonyOS鸿蒙系统上File文件常用操作
  • 【vue】项目迭代部署后 自动清除浏览器缓存
  • NVR接入录像回放平台EasyCVR视频融合平台加油站监控应用场景与实际功能
  • 前端css 实现 背景渐变,边框渐变
  • 常用并发设计模式
  • 如何在 Microsoft Edge 中设置代理: 快速而简单的方法
  • 学习路之PHP--使用GROUP BY 发生错误 SELECT list is not in GROUP BY clause .......... 解决
  • 【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)
  • JS学习 - 函数与作用域
  • Redis作为分布式锁,得会避坑
  • SpringBoot与MongoDB深度整合及应用案例
  • Docker1:认识docker、在Linux中安装docker
  • linux之调度管理(8)-SMP cpu 的 psci启动
  • linux之调度管理(11)-cpu动态调频总体架构