admin管理员组

文章数量:1641845

福利:白嫖多种亚马逊云服务

亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon DynamoDB 25GB存储容量 永久免费。
点击直达

背景

此前公司想搭建一个在线的系统来方便产品在进行存储和销售的过程中实现可溯源的"一物一码"机制,经部门多次讨论之后敲定了技术方案,其中数据库选型使用的就是亚马逊云科技的云原生数据库产品:Amazon DynamoDB。
在介绍DynamoDB之前,先来了解一下云原生数据库的前身。

传统数据库

传统数据库是依照某种数据模型组织起来的数据集合。
这种数据集合具有如下特点:数据尽量不重复,以存储最优的数据结构来存放数据,通常都是计算和存储耦合在一起。

缺点

1、无法满足海量数据的管理需求
2、无法满足高并发的需求
3、无法满足高可扩展性和高可用性的需求

云原生数据库的概念

如果要问一个业务部署在公有云上的开发者数据库选型,收到的答案一定不限于MySQL、Redis和MongoDB等数据库,随着时代的发展与进步,云原生数据库也慢慢走进了大众的视野。

定义

简单来说,云原生数据库,是一种通过云平台进行构建、部署和维护的服务。这种云原生属性是它相比于传统数据库最大的特点。
作为一种云平台,云原生数据库以PaaS(平台即服务, Platform-as-a-Service)的形式提供使用,也经常被称作DBaaS(数据库即服务, DataBase-as-a-Service)。
用户可以将该平台用于多种目的,例如存储,管理和提取数据。
在云原生数据库出现之前,数据的存储都是放在本地硬盘或者公司搭建的服务器上的,并且还需要根据产品的用户量,访问量等等去对服务器做好配置,甚至淡季旺季也需要修改成不同的配置,这大大提高了一家公司对数据存储上所花费的时间与金钱,而随着云原生数据库的出现,这一个问题也迎刃而解。
云原生数据库,可以开箱即用,在预估好资源使用后,可以在十分短的时间上完成部署。而成本完全可以依据公司所需的资源申请,在不同的时间点可以升级到较高规格亦或者降级到较低规格,从而避免资源的浪费、实现成本的一定程度降低。

优点

云原生数据库的优点:

  • 易处置性简单来讲,易处置性是指数据库发生宕机等故障的情况下,即时处理崩溃或启动进程的能力。尽管现在有先进的技术,但是像磁盘故障、网络隔离故障,以及虚拟机异常等,仍然不可避免。
  • 对于传统数据库,这些故障尤其有害,因为用单个机器运行整个数据库,即便一个很小的问题都可能影响所有功能。而云原生数据库的设计具有显著的易处置性,即允许虚拟机在事件通知下立即重启或重新调度。实际上,易处置性已从单个虚拟机扩展到了整个数据中心。随着我们的环境持续朝着更加稳定的方向发展,云原生数据库将发展到对此类故障无感知的状态。
  • 增强的安全性,DBaaS运行在受高度监控和安全的环境里,受到反恶意软件、反病毒软件和防火墙的保护。除了全天候的监控和定期的软件升级以外,云环境还提供了额外的安全性。相反,传统数据库容易遭受攻击产生数据丢失或者不可访问的问题。基于服务提供商通过即时快照提供的数据备份能力,用户可以达成“RPO=0,RTO<60秒”的目标。
  • 可扩展性让应用获得按需扩展的能力,使开发运维工程师专注于业务而无需担心实例容量的限制。
  • 在本地建设一个可靠安全的数据中心是一项巨大的工程,你需要投入巨大资金来保证资源的冗余性,而且还需要维护一个专业的运维团队,持续的运维和运营的成本给公司财务带来巨大的压力。而使用云上的DBaaS平台,你只需以很低的成本就能获得安全,高可用和可扩展的数据库,让你实现更优的资源分配。

Amazon DynamoDB是什么?

Amazon DynamoDB 是亚马逊云提供的一种全托管 NoSQL 数据库服务,提供快速而可预测的性能,能够实现无缝扩展。DynamoDB 可以免除操作和扩展分布式数据库的管理工作负担,因而无需担心硬件预置、复制、软件修补或集群扩展等问题。
此外,DynamoDB提供了静态数据加密功能,其本身与云平台深度融合,无需复杂的配置和运维。

传统关系数据库与Amazon DynamoDB的部分对比

特征关系数据库管理系统 (RDBMS)Amazon DynamoDB
使用场景临时查询;数据仓库;OLAP (联机分析处理)。Web 规模级应用程序,包括社交网络、游戏、媒体共享和物联网 (IoT)。
数据模型需要定义明确的schema,数据被标准化为表、列和行。DynamoDB没有固定schema,主要用于存放结构化或者半结构化的数据,例如JSON文档。
数据访问SQL 是存储和检索数据的标准。关系数据库提供一组丰富的工具来简化数据库驱动型应用程序的开发,但所有这些工具都使用 SQL。您可以使用 AWS Management Console、AWS CLI 或 NoSQL WorkBench 来操作 DynamoDB 并执行临时任务。PartiQL 是一种与 SQL 兼容的查询语言,它使您能够在 DynamoDB 中选择、插入、更新和输出数据。应用程序可以使用 AWS 开发工具包 (SDK),通过基于对象的、以文档为中心的或低级别的接口来操作 DynamoDB。
性能关系数据库已针对存储进行优化,因此,性能通常取决于磁盘子系统。开发人员和数据库管理员必须优化查询、索引和表结构以实现最高性能。DynamoDB 已针对计算进行优化,因此,性能主要取决于基础硬件和网络延迟。作为一项托管服务,DynamoDB 可使您和您的应用程序免受这些实施详细信息的影响,以便您能够专注于设计和构建可靠的、高性能的应用程序。
拓展利用更快的硬件进行向上扩展是最轻松的。此外,数据库表可以跨越分布式系统中的多个主机,只不过这需要额外的投资。关系数据库设定了文件数和文件大小的最大值,这将对可扩展性施加上限。DynamoDB 设计为使用硬件的分布式集群来向外扩展。此设计可提高吞吐量而不会增加延迟。客户指定其吞吐量要求,DynamoDB 会分配足够的资源来满足这些要求。对于每个表的项目数和表的总大小都不施加上限。

仓储系统实战

需求

需要一个在线的管理系统,可供仓库工人手持扫码设备对仓库物料进行严格把控,运用“一物一码”的机制,保证物料可溯源,可查出入库时间。

功能分析

物料在进出入仓库的时候,都会由云端系统生成独特的一个条形码,这个码就是物料的编号信息,仓库人员可在电脑中通过手持设备扫描条形码在云端数据库中查询相应的物料信息来核对,或者是对物料进行出入库的登记管理,这一切都需要一个庞大且可拓展的云端数据库进行支持。

选择Amazon DynamoDB的理由

1.仓库需要一个数据空间大、方便拓展且响应及时的数据库。
2.Amazon DynamoDB 是NoSQL数据库,没有固定的schema,给业务带来很好的灵活性
3.Amazon DynamoDB是云端数据库,所以存储空间等性能可以根据需求进行实时改变。

仓储物料增加流程示意图

仓储物料减少流程示意图


这里也能看出,如果使用传统数据库会出现可用性、可靠性无法兼顾的问题,因为传统mysql数据库基于binlog的主从逻辑复制,复制延迟较大,存在数据丢失的风险。备机同步日志之后需串行回放,HA时间不可控,导致业务的可用性受损。
而Amazon DynamoDB数据在云中分片存储,分片相互独立,基于云盘的快照机制,实现快速的并行备份和回档,在速度方面有巨幅提升。

成果

使用Amazon DynamoDB作为系统数据库之后,仓储系统在日常运行中表现的十分出色,日均1000+的物料进出入库,信息登记方便快捷,在“一物一码”的机制下,平均物料进出入库不超过30s,整体性能十分出色。

总结

本次使用亚马逊云的Amazon DynamoDB数据库来搭建公司的仓储管理系统让我学到了很多的东西,我是一名前端开发人员,平时接触数据库会比较少,但是从入手Amazon DynamoDB到使用,我也仅仅花费了几天的时间,这一切也都得益于亚马逊云对于自家产品的严格要求,从文档到示例教程,字字珠玑,因为我也是受益匪浅,以后也会更多的使用亚马逊云相关的产品。

本文标签: AmazonDynamoDB