【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿我们奔赴在各自的热爱里…

一、文章序言

1.1 Dynamo的诞生

亚马逊网络服务(AWS)是全球流行的云服务提供者。它为企业提供完全管理的系统,以满足其数据库需求。DynamoDB是由AWS提供的一项服务,支持键值和文件结构。

亚马逊在业务发展期间面临一些问题,主要受限于关系型数据库的可扩展性和高可用性,希望研发一套新的、基于 KV 存储模型的数据库,将之命名为Dynamo。

相较于传统的关系型数据库 MySQL,Dynamo 的功能目标与之有一些细小的差别,例如 Amazon 的业务场景多数情况并不需要支持复杂查询,却要求必要的单节点故障容错性、数据最终一致性(即牺牲数据强一致优先保障可用性)、较强的可扩展性等。活动地址

1.2 Dynamo的简述

Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,可提供快速且可预测的性能以及无缝的可扩展性。DynamoDB 让您可以减轻操作和扩展分布式数据库的管理负担,这样您就不必担心硬件配置、设置和配置、复制、软件修补或集群扩展。DynamoDB 还提供静态加密,从而消除了保护敏感数据所涉及的操作负担和复杂性。

亚马逊DynamoDB是一个文档和键值数据库,为其用户提供个位数毫秒的性能。

它是一个完全管理的、多活动的、多区域的、持久的数据库,为互联网规模的应用提供了内置的安全、内存缓存、备份和恢复。它可以处理每秒2000万个请求,每天多达10万亿个请求。

1.3 Dynamo 和 MySQL

Dynamo 叙述的是一种 NoSQL 数据库的设计思想和实现方案,它是一个由多节点实例组成的集群,其中一个节点称之为 Instance(或者 Node 其实无所谓),这个节点由三个模块组成,分别是请求协调器、Gossip 协议检测、本地持久化引擎,其中最后一个持久化引擎被设计为可插拔的形式,可以支持不同的存储介质,例如 BDB、MySQL 等。

1.4 DynamoDB 组件

在 DynamoDB中,表、项目和属性是您使用的核心组件。表是项目的集合,而每个项目是属性的集合。

DynamoDB 使用主键来唯一标识表中的每个项目,并且使用二级索引来提供更大的查询灵活性。您可以使用 DynamoDB流捕获DynamoDB 表中的数据修改事件。

  • 表: 与其他数据库系统类似,DynamoDB 将数据存储在表中。表是数据的集合。
  • 项目:每个表包含零个或多个项目。项目是一组在所有其他项目中唯一可识别的属性。在 DynamoDB 中,您可以在表中存储的项目数量没有限制。
  • 属性:每个项目都由一个或多个属性组成。属性是基本数据元素,不需要进一步分解。DynamoDB 中的属性在许多方面与其他数据库系统中的字段或列相似。
    有关更多信息,请参阅使用 DynamoDB 中的表和数据。

二、入门案例

2.1 账号注册

亚马逊作为国际官方网站功能性和流程的引导都做的十分完善,注册成功即可登录。免费试用地址

我们根据指导注册后也会有对应的邮箱和手机收到验证消息,如果过程有疑问可以联系客服即可

2.2 创建数据表

要使用Amozon DynamoDB就去全局搜索,点击Dynamodb即出来对应的应用服务。当然如果基础比较薄弱的小伙伴可以参考DynamoDB使用教程

进入页面点击创建表即可,我们只需要定义表名称和主键即可,排序键可有可无

创建成功即可到首页 看到对应的表

2.3 创建数据

点击新建项目及创建我们对应的数据文件

如下我们在此表中创建了两个数据

2.4 两种查询

查询有两种方式,一种是scan ,一种是query;如果使用过非关系型数据库,就可以发现其查询逻辑都是相似的。非关系型数据库表与表之间是没关联的。每个表的数据可以根据属性,类型,条件等查询。

案例演示:执行扫描scan查询

执行查询query进行数据查询(此模式要带分区键-必填项)

2.5 数据导出

Amozon DynamoDB此服务做的非常人性化,考虑到很多时候数据量很多,所以支持导出功能可以直接导出查询数据文件

导出后左下侧即可看到对应导出文档

2.6 功能多样

点击具体的表可以看到有索引,监控,全局表,备份,导出和流,其他设置等等辅助功能

多样的功能让此我们可以更好的了解此非关系型数据库对应的功能,如监控功能,我演示的时候数据量较少,真实案例场景数据量庞大,更好的可以查看此数据库的性能。

其余的功能大家在点击进入的时候会有对应的案例解释,感兴趣的可以点击官方文档尝试!


三、功能简述

3.1 结构讲解

DynamoDB是一个文档或NoSQL数据库。虽然它可以用于存储二进制对象,但它是为存储结构化文本/JSON数据而设计的。它可以存储大小为400KB的单个项目。这些项目被存储在表里,这些表可以位于一个特定的区域,也可以复制到全球。全局表支持多主机复制,允许客户从多个区域写进同一个项目或表。

3.2 操作方式

DynamoDB在结构化文档上工作,因此,它最小的操作原子是一个项目里面的属性。你也可以在DynamoDB中存储二进制非结构化信息,但这并不是它的核心用例。多个用户可以同时修改一个结构化文档的属性,或者追加到同一个数组。DynamoDB可以处理条件更新和批量操作,甚至是许多项目的原子交易。

3.3 优化方向

DynamoDB的一些限制包括。

  • 监控不力会导致高成本。
  • 它只适用于键值操作。它不能很好地用于关系型操作。
    当然每个数据库都有自己的局限性,不过更重要的是发挥其优点!

感兴趣的可以了解云原生数据库在线大会!

3.4 数据分片

Dynamo 设计之初就考虑到要支持增量扩展,因为节点的增减必须具备很好的可扩展性,尽可能降低期间的数据流动,从而减轻集群的性能抖动。Dynamo 选择采用一致性哈希算法来处理节点的增删,一致性哈希的算法原理细节这里不再赘述,只是提一下为什么一致性哈希能解决传统哈希的问题。

我们想象一下传统哈希算法的局限是什么,一旦我给定了节点总数 h,那数据划分到哪个节点就固定了(x mod h),此时我一旦增减 h 的大小,那么全部数据的映射关系都要发生改变,解决办法只能是进行数据迁移,但是一致性哈希可以在一个圆环上优先划分好每个节点负责的数据区域。这样每次增删节点,影响的范围就被局限在一小部分数据。

如图蓝色小圆 ABCD 的代表四个实际节点,橙色的小圆代表数据,他们顺时针落在第一个碰到的节点上


四、安利分享

4.1 优点小结

结尾总结一下Amazon DynamoDB 优点:

  • 完全托管:DynamoDB 是一项完全托管的非关联型资料库服务,只需创建资料库表并设置自动扩容 (Auto Scaling) 的目标使用率,其余事情都可交由该服务来代劳。
  • 精细的访问控制:DynamoDB 与 AWS Identity and Access Management (IAM) 集成,对组织内的用户实现精细的访问控制。
  • 性能快速稳定:服务端平均延迟通常不超过个位数毫秒 (ms)。
  • 灵活: DynamoDB 支持存储、查询和更新文档。使用 AWS 开发工具包 (SDK),可以编写将 JavaScript 对象表示法 (JSON) 文档直接储存到 Amazon DynamoDB 表中的应用程序。此功能减少了为插入、更新和检索 JSON 文档必须编写的新代码量。

4.2 学习分享

针对初学者而言,亚马逊官方有非常详细的视频/文档教学,感兴趣的程序员们,大家一起内卷起来

  1. 入门资源中心:从0到1 轻松上手云服务,内容涵盖:成本管理,上手训练,开发资源:点我访问
  2. 架构中心:亚马逊云科技架构中心提供了云平台参考架构图表、经过审查的架构解决方案、Well-Architected 最佳实践、模式、图标等:点我访问
  3. 构建者库:了解亚马逊云科技如何构建和运营软件:点我访问
  4. 用于在亚马逊云科技平台上开发和管理应用程序的工具包:点我访问

4.3 专属福利

最后博主给大家争取了一些【专属福利】大家一起点击领取!

  • 福利一:100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量。
  • 福利二:最新优惠大礼包,200数据与分析抵扣券,200数据与分析抵扣券,200数据与分析抵扣券,200机器学习抵扣券,200$微服务与应用开发抵扣券。
  • 福利三:解决方案CloudFormation一键部署模版库

数据库服务Amozon DynamoDB(入门分享)相关推荐

  1. 编程小白入门分享三:Spring AOP统一异常处理

    编程小白入门分享三:Spring AOP统一异常处理 参考文章: (1)编程小白入门分享三:Spring AOP统一异常处理 (2)https://www.cnblogs.com/lxk12345/p ...

  2. python 经典ppt_python入门分享.ppt

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspPython python入门分享.ppt24页 本文档一共被下 ...

  3. [Unity3D入门]分享一个自制的入门级游戏项目坦克狙击手

    [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://ww ...

  4. web 开发入门分享

    分享一: 如今,各种互联网的Web应用程序层出不穷,那么如何快速入门,成长为一个优秀的Web开发工作者呢? 这个问题不容易回答,几乎所有的培训机构都不能清晰地解答. 所以对于Web开发刚刚入门的菜鸟们 ...

  5. 搞一下TDA4 | 02 TDA4VM的SDK使用入门分享

    前言 本系列请点击:<搞一下TDA4> 所有系列请点击:<汽车电子系列分享> 本文将会分享TDA4VM的SDK的安装和使用的一些入门经验,便于读者上手和开发这个SDK.主要内容 ...

  6. Amazon DynamoDB 入门2:工作原理、API和数据类型介绍

    本节主要介绍DynamoDB 基本概念.核心组件.数据结构.Api DynamoDB 基本概念 DynamoDB 是 AWS 独有的完全托管的 NoSQL Database.它的思想来源于 Amazo ...

  7. Python小白入门分享

    前话 从去年7月就开始学Python语言了,直至现在快有一年时间了,在这段艰苦的时间里非常感谢CSDN,每当我遇到问题的时候都可以为我给出答案,CSDN可以称得上我这个自学狗的全能老师.在这一年里的P ...

  8. 扫盲:单片机入门分享 晶振 复位电路与电源

    学单片机走过许多弯路,挖过许多坑,浪费了很多时间,做过实际产品后回顾过去的学习经历,发现很多坑其实是可以避免的,单片机的入门应该可以更轻松一点,借CSDN论坛一方宝地,写写我的一些学习经历,希望对刚入 ...

  9. 业余无线电入门分享 --- 考试执照

    前言 本篇博客主要是对Technician考试知识点的汇总. 目的是为了通过 美国业余无线电管理协会 FCC(Federal Communications Commision)组织的业余无线电爱好者 ...

  10. tk.mybatis 的入门分享

    我的入门tk.mybatis的项目已放在github上,欢迎下载:链接地址.... ---------------------------------------------------------- ...

最新文章

  1. EasyStack 与F5合作, OpenStack开源云平台携手软件定义的应用交付服务
  2. DEAP:使用生理信号进行情绪分析的数据库(一、背景介绍与刺激选择)
  3. 湖南计算机应用专业较好的学校,好的计算机应用专业排名
  4. 【华为云技术分享】Linux内核的分布式编译(2)
  5. 免费证书https://lamp.sh/ssl.html
  6. python2添加pip,无法在python2.6中使用PIP更新/添加任何包
  7. mysql基础之查询缓存、存储引擎
  8. igm焊接机器人基本操作_焊接机器人编程与操作
  9. Lingo线性规划教程
  10. 《电力系统建模理论与方法》(持续更新中)
  11. python qt designer
  12. Win10 LTSC 2021长期服务企业版
  13. 经典面试题 Ipv4 和 Ipv6 是什么
  14. bootstrap怎么强制不换行_Bootstrap方法的软件实现
  15. 双赞的一体机主板能应用到哪些行业?
  16. AFEPack 使用 Tutorial(二):解带系数二维泊松方程
  17. 史上最全的Nokia3250参数
  18. Kraljic采购定位模型
  19. 可由线性表示且表达式唯一_典型例题解析例1设向量问取何值时可由线性表示且表示.doc...
  20. Effective C++ 中文版(第三版)读书笔记 更新ing~

热门文章

  1. css动漫效果库,10 个最佳 CSS 动画库
  2. We never been grown up
  3. 试玩网站搭建讲解入门篇
  4. Vue和Element第一天
  5. ae缺少效果opticalflares_Optical Flares 镜头光晕AE插件
  6. coffeescript_在客户端上使用CoffeeScript
  7. 计算机基础知识新手学电脑输入法,新手学习电脑怎么使用键盘打字
  8. 使用Axure制作网页
  9. 融360第三季度营收4.44亿 营销费用占比大幅降低
  10. python除数为0报错_python——异常