高效的NoSQL数据库服务Amozon DynamoDB体验分享

高效的NoSQL数据库服务Amozon DynamoDB体验分享AmazonDynamo 是一种全托管 NoSQL 数据库服务 相当于在 NoSQL 的基础上做了很多扩展 附加了很多降本增效的功能 让开发人员不需要额外去维护什么 开箱即用 它主要提供的服务有 无缝扩展 快速可预测的性能 减少繁琐的管理分布式数据库的工作负担 提供静态加密 按需备份 自动维护过期项目等 极大的减少开发人员的时间成本和提高建设效率

一、前言

亚马逊的活动力度一向都比较大,因此让我有机会体验了Amozon DynamoDB这款完全托管的分布式NoSQL 数据库服务。另外,亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon Dynamo DB 25GB存储容量 永久免费。活动地址

Amozon DynamoDB是什么?

Amazon DynamoDB 是一种全托管 NoSQL 数据库服务,相当于在NoSQL的基础上做了很多扩展,附加了很多降本增效的功能,让开发人员不需要额外去维护什么,开箱即用。它主要提供的服务有:无缝扩展,快速可预测的性能,减少繁琐的管理分布式数据库的工作负担,提供静态加密、按需备份、自动维护过期项目等。极大的减少开发人员的时间成本和提高建设效率。


可能有些小伙伴不清晰NoSQL与传统的关系型数据库的区别,这里简单的做一个介绍:

数据库 数据集 结构 优势
关系型数据库 表格/行列存储 关系型数据库的结构是预先定义好的,表与表之间可以建立关系、约束等。 能够保证数据的安全性和完整性
NoSQL 键值对(字典)结构 在非关系型数据库中,数据可以在任何时候任何地方添加。不需要预先定义。 扩展性高、体积更小、速度更快。

因此,如果业务关系不复制、依赖简单又需要经常修改字段,对性能要求很高但安全性要求不高的情况下,使用DynamoDB是非常不错的选择。反之还是建议使用诸如mysql这类的传统关系型数据库。



二、Amozon DynamoDB上手教程

1)帐号注册

没有AWS帐号的小伙伴需要先进行帐号注册:注册及上手试用地址 (在账单登记页可以使用国内的信用卡)

2)创建和查询NoSQL表

2.1 建表

建立帐号后,按照官方的DynamoDB使用教程即可快速的创建NoSQL表:

在这里插入图片描述

2.2 添加数据

这里与官方文档稍有出入,实际操作可以通过点击列表的表名称-浏览项目-创建项目进行创建,如下图所示:

在这里插入图片描述

2.3 查询数据

然后点击运行按钮(也可以设置筛选条件)就可以将我们刚添加的数据查询出来:

在这里插入图片描述

2.4 删除/修改数据

选中列表中任意数据,就可以在右上角的“操作”按钮中选择对应的操作对数据进行修改或删除:

在这里插入图片描述
需要删除表的话,在外层的表列表中选择对应的表数据,点击删除按钮即可:

在这里插入图片描述

3)使用Python管理DynamoDB

我们还可以使用Python来管理DynamoDB,官方文档有详细的教程,这里不再赘述。

4)踩坑记录

《使用 Amazon DynamoDB 和 Amazon SNS 构建回合制游戏》 教程中,按照走到应用部署这一步时,执行:bash scripts/create-lambda.sh命令出现了下图中的报错:

在这里插入图片描述


按照提示将执行create-lambda.sh文件执行命令改为nodejs14.x后,再将之前新建的资源删除后即运行成功:

在这里插入图片描述

后面也是一路绿灯,完成了回合制游戏的构建。


三、Amozon DynamoDB特点说明

1)DynamoDB分区键、排序键的理解

1.1 分区键

在我们建表时,会让我们指定分区建:


在这里插入图片描述


那分区键的作用是什么呢?这里给大家举一个例子说明:

1.2 排序键

排序键可以让将我们的数据按指定的排序存储,在后续获取数据的时候就能够通过二分查找的方式来降低查询的时间复杂度。

2)DynamoDB的二级索引

在诸如Mysql之类的关系型数据库中,通过建立索引能够让我们在查想要数据时,不对全表进行扫描而是通过索引查询指定行范围的数据,这样有更快的速度。创建索引后,我们再修改表的数据,数据库会自动更改索引来映射表的修改,无需我们手动操作。

在dynamodb中如何实现类似的操作呢?

我们可以创建二级索引来实现类似的目的,DynamoDB的索引和oracle,mysql这些关系式数据库的索引有很大不同。DynamoDB的二级索引是由一个hash键和多个range键所组成的,它对支持应用程序需要的查询模式至关重要,关于DynamoDB索引的使用和介绍可以访问管理索引文档进行学习。

3)DynamoDB的备份和还原

数据备份和回滚恢复是至关重要的,DynamoDB具有完全自动化的按需备份、还原和时间点恢复的能力:


在这里插入图片描述



也可以按需创建一次性备份:

在这里插入图片描述


大家也可以访问 云原生数据库在线大会 了解数据库发展历史,及未来发展方向等。


四、总结


在这里插入图片描述


当然DynamoDB也有不适用的场景:在产品开发的初期,如果没有一个完善清晰的设计方案,特别是走一步看一步的敏捷开发模式下,并不建议使用DynamoDB,因为按照DynamoDB的文档的理解:只有你对产品本身很熟悉时,才能设计好它的分区、排序键之类的。换而言之,当产品处于较成熟,或自己对产品很熟悉时,使用DynamoDB绝对能达到事半功倍的效果。

亚马逊云科技专为开发者们打造了多种学习平台:

  1. 入门资源中心:从0到1 轻松上手云服务,内容涵盖:成本管理,上手训练,开发资源:点我访问
  2. 架构中心:亚马逊云科技架构中心提供了云平台参考架构图表、经过审查的架构解决方案、Well-Architected 最佳实践、模式、图标等:点我访问
  3. 构建者库:了解亚马逊云科技如何构建和运营软件:点我访问
  4. 用于在亚马逊云科技平台上开发和管理应用程序的工具包::点我访问
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204976.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午7:05
下一篇 2026年3月19日 下午7:06


相关推荐

  • java敏感词过滤

    java敏感词过滤敏感词验证

    2026年3月16日
    2
  • p2p流媒体技术(简述流媒体的特点)

    【前言】今天发现二哥在搞流媒体,顿时来了兴趣(之前在考试维护的时候经常听老师说P2P等),追问之下之前林哥搞成功过,而且写了一系列博客;于是乎便翻开博客,认真看了看,写的非常不错:从概念到安装实现(linux和windows)再到性能测试对比非常不错(详见:http://blog.csdn.net/u012407484/article/category/2732453);…

    2022年4月18日
    94
  • 解决[pycharm命令行导包成功,但代码中import报错]

    解决[pycharm命令行导包成功,但代码中import报错]在使用 fake useragent 库时发现这个问题 pipinstallfa useragent 成功 但是代码报错解决方法 1 在 pip 安装路径下找到 fake useragent 包选中复制 2 复制到项目环境目录把包复制进去重启 pycharm 解决报错问题

    2026年1月24日
    3
  • Android 游戏引擎汇总

    Android 游戏引擎汇总Android 游戏引擎汇总 1 AndEngine 简介 AndEngine 基于 libGDX 框架开发 使用 OpenGLES 进行图形绘制 同时继承了 BOX2D 物理引擎 因此能实现一些较为复杂的物理效果 在 Rokon 停止更新以后 AndEngine 成为 Android 最为流行的 2D 游戏引擎优点 1 高效 在大运算量好事情况下 使用 C C 本地代码进行开发 比如物理引擎或

    2026年3月17日
    2
  • Python 爬虫 校花网[通俗易懂]

    Python 爬虫 校花网[通俗易懂]爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。福利来了校花网 ,首先说为什么要爬这个网站呢,第一这个网站简单爬起来容易,不会受到打击,第二呢你懂得…。1.第一步

    2022年8月4日
    6
  • https加密原理(转)

    https加密原理(转)HTTP、HTTPS在我们日常开发中是经常会接触到的。我们也都知道,一般Android应用开发,在请求API网络接口的时候,很多使用的都是HTTP协议;使用浏览器打开网页,也是利用HTTP协议。看来HTTP真是使用广泛啊,但是,HTTP是不安全的。利用网络抓包工具就可以知道传输中的内容,一览无余。比如我经常会使用Fiddler来抓包,搜集一些有趣的API接口。那么…

    2022年5月20日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号