Amazon云计算AWS之[4]非关系型数据库服务SimpleDB和DynamoDB

文章目录

简介

  • 非关系型数据库服务主要用于存储结构化的数据 ,并为这些数据提供查找、删除等基本的数据库功能。AWS中提供的非关系型数据库主要包括SimpleDB和DynamoDB

非关系型VS关系数据库

传统的关系数据库 非关系型数据库
数据模型 对数据有严格的约束 key和value可以使用任意的数据类型
数据处理 满足CAP原则的C和A,在P方面很弱 满足CAP原则的A和P,在C方面较弱
接口层 以SQL语言对数据进行访问的,提供强大的查询功能,并便于在各种关系数据库间移植 通过API操作数据,支持简单的查询功能,且由于不同数据库之间API的不同而造成移植性较差

SimpleDB

  • SimpleDB基本结构,包含域、条目、属性、值等概念

域

  • 域是用于存放具有一定关联关系的数据的容器 ,其中的数据以UTF-8编码的字符串形式存储。
  • 每个用户账户中的域名必须是唯一的,且域名长度为3~255个字符。
  • 每个域中数据的大小具有一定的限制。
  • 域的划分会为数据操作带来一些限制,是否划分域需要综合多种因素考虑。

条目

  • 条目对应着一条记录,通过一系列属性来描述,即条目是属性的集合。
  • 在每个域中,条目名 必须是唯一的。
  • SimpleDB中不需要事先定义条目的模式,即条目由哪些属性来描述。
  • 操作上具有极大的灵活性 ,用户可以随时创建、删除以及修改条目的内容。

属性

  • 属性是条目的特征 ,每个属性都用于对条目某方面特性进行概括性描述。
  • 每个条目可以有多个属性。
  • 属性的操作相对自由,不用考虑该属性是否与域中的其他条目相关。

值

  • 值用于描述某个条目在某个属性上的具体内容

  • 一个条目的一个属性中可以有多个值。举例:某类商品除颜色外其他参数完全一致,通过在颜色属性中存放多个值来使用一个条目表示该商品,而不需要像关系数据库中那样建立多条记录。

  • SimpleDB的树状组织方式,可以体现SimpleDB对多值属性的支持。

SimpleDB的使用

  • SimpleDB与其他AWS组件综合使用的方式
  • 限制:SimpleDB中每个属性值的大小不能超过1KB。
  • 导致:SimpleDB存储的数据范围极其有限。
  • 解决:将相对大的数据存储在S3中,在SimpleDB中只保存指向某个特定文件位置的指针。

DynamoDB

  • DynamoDB是Amazon在SimpleDB之后的非关系型数据库服务。它在设计上既延续了SimpleDB的优点,也解决了SimpleDB中存在的部分问题。

DynamoDB的特点

  1. DynamoDB以表为基本单位,表中的条目同样不需要预先定义的模式。
  2. DynamoDB中取消对表中数据大小的限制,用户设置任意大小,并由系统自动分配到多个服务器上。
  3. DynamoDB不再固定使用最终一致性数据模型,而是允许用户选择弱一致性或者强一致性。
  4. DynamoDB还在硬件上进行优化,采用固态硬盘 作为支撑,并根据用户设定的读/写流量限制预设来确定数据分布的硬盘数量。

SimpleDB VS DynamoDB

  • SimpleDB和DynamoDB都是Amazon提供的非关系型数据库服务。
  1. SimpleDB:限制每张表的大小,更适合于小规模复杂的工作。自动对所有属性进行索引,提供强大的查询功能。
  2. DynamoDB:支持自动将数据和负载分布到多个服务器上 ,不限制存储在单个表中数据量的大小 ,适用于较大规模负载的工作。
相关推荐
Geek-Chow11 小时前
01 · Why AWS Lambda: Idle Cost, Capacity Planning and Risky In-Place Deploys
云计算
workflower13 小时前
超算中心聚焦高性能计算场景(HPC)
大数据·网络·人工智能·机器人·云计算·汽车
workflower1 天前
Agentic AI 时代的企业ICT 基础设施运维
运维·人工智能·机器学习·重构·云计算·汽车
Geek-Chow1 天前
00 · AWS Lambda 心智模型学习指南:总览、思维导图与阅读路线(专栏目录)
云计算
Geek-Chow1 天前
07 · AWS Lambda 自测题与动手实验:用 AWS CLI 验证版本、别名、预置并发与冷启动
云计算
yyuuuzz2 天前
云服务器部署 web 项目的进程常驻记录
运维·服务器·前端·阿里云·云计算·aws
略懂而已2 天前
腾讯云COS 自动同步 for windows
windows·云计算·腾讯云
逐流人2 天前
Redis内存数据库:从数据类型到集群部署
linux·运维·数据库·redis·缓存·云计算
tianbin9112 天前
大模型流式输出异常排查,API 中转站层面的问题定位思路
后端·云计算