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

server/2024/9/25 10:28:16/

文章目录

  • 简介
  • 非关系型VS关系数据库
  • SimpleDB
    • 条目
    • 属性
    • SimpleDB的使用
  • DynamoDB
  • SimpleDB VS 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:支持自动将数据和负载分布到多个服务器上不限制存储在单个表中数据量的大小适用于较大规模负载的工作

http://www.ppmy.cn/server/20322.html

相关文章

【学习记录】autoware标定相机与激光雷达外参

一、autoware选择 这里踩了好几个坑,首先autoware作为一个无人驾驶知名框架,其内部实际上是有两套标定的东西的,这一点绝大多数博客没有提到。其中最常用的是一个叫标定工具箱的东西,这个ros包已经在1.10往后的版本中被删掉了&am…

微信小程序的常用API②

一、动画API (1)作用:用于在微信小程序中完成动画效果的制作 (2)使用:创建实例 wx.createAnimation() (3)常用属性: duration 【number型】 动画持续时间&…

Python爬虫--Ajax异步抓取腾讯视频评论

在某些网站 ,当我们滑下去的时候才会显示出后面的内容 就像淘宝一样,滑下去才逐渐显示其他商品 这个就是采用 Ajax 做的 然后我们现在就是要编写这样的爬虫。 规律分析: 这个时候就要用到我们的 Fiddler 了 我们需要分析加载评论的规律 …

CST Studio初级教程 三

本节教程主要讲解CST中常用的选取操作,CST是一款3D软件,一个3D模型的构成离不开点、线面、特征等,选取操作也就是选取这些内容。 选取快捷键 S 按下快捷键S,可选取点(Points)、棱线(Edges&…

用C实现通讯录(详细讲解+源码)

前言 📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL.. 📚以后会将数据结构收录为一个系列,敬请期待 ● 本期内容会给大家带来通讯录的讲解,主要是利用结构体来实现通讯录,该通讯…

天星金融普及银行卡防盗刷知识,助力消费者安全用卡

移动互联网的迅猛发展推动了手机银行等业务的广泛应用,然而,一些不法分子利用伪造银行卡、窃取持卡人身份信息等手段进行盗刷,严重侵犯了消费者的信息安全和财产安全,对金融市场的稳定和安全造成了威胁。为此,天星金融…

mongodb替代品SequoiaDB的安装使用

前言 1、为什么不直接使用mongodb啊? 答:mongodb的使用协议是SSPL,一旦使用需要将你服务器程序都开源处理–或者给钱。非常不好,而SequoiaDB号称能够兼容mongodb协议,这次来安装试试。 mongodb - SSPL,Seq…

Git 保姆级教程(一):Git 基础

一、获取 Git 仓库 通常有两种获取 Git 项目仓库的方式: 1. 将尚未进行版本控制的本地目录转换为 Git 仓库; 2. 从其它服务器克隆 一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。 1.1 git init(本地…