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

embedded/2024/9/19 13:30:14/ 标签: 云计算, aws, nosql

文章目录

  • 简介
  • 非关系型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/embedded/31518.html

相关文章

卷积神经网络要点和难点实际案例和代码解析

卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够…

华为OD机试 - 会议室占用时间段(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

Centos 安装python3.12.3

下载python3.12.3 https://www.python.org/downloads/release/python-3123/ 安装 yum -y install gcc zlib zlib-devel libffi libffi-devel yum install readline-devel yum install bzip2-devel yum install epel-release yum install openssl-devel export CFLAGS$(pkg-c…

node.js中的fs模块,读写语法讲解

本文分享node.js的入门知识,使用 fs 模块封装的方法读写文件内容 node中的fs 模块:封装了与本机文件系统进行交互的,方法和属性,使用语法如下: 1、加载 fs 模块,得到 fs 对象 const fs require(fs) 2、…

【JavaEE】JavaScript

文章目录 一、初识 JavaScript1、JavaScript 是什么 二、语法1、变量的使用 一、初识 JavaScript 1、JavaScript 是什么 JavaScript (简称 JS) 是世界上最流行的编程语言之一 是一个脚本语言, 通过解释器运行 主要在客户端(浏览器)上运行, 现在也可以基于 node.js 在服务器端…

软件应用开发安全设计指南

1.1 应用系统架构安全设计要求 设计时要充分考虑到系统架构的稳固性、可维护性和可扩展性,以确保系统在面对各种安全威胁时能够稳定运行。 在设计系统架构时,要充分考虑各种安全威胁,如DDoS攻击、SQL注入、跨站脚本攻击(XSS&…

Qt | QDialogButtonBox(按钮框)、QButtonGroup(按钮组)、QGroupBox(组框)

01、上节回顾 Qt | 标准、复选、单选、工具、命令按钮大全02、QDialogButtonBox 一、QDialogButtonBox 类(按钮框) 1、QDialogButtonBox 直接继承自 QWidget 类。很多程序都需要把按钮组织在一起,以呈现给用户作出一个选择,比如当关闭文件时,会弹出一个询问用户是否保存文…

36.Docker-Dockerfile自定义镜像

镜像结构 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 镜像是分层机构,每一层都是一个layer BaseImage层:包含基本的系统函数库、环境变量、文件系统 EntryPoint:入口,是镜像中应用启动的命令 其他:在…

每日一题(力扣740):删除并获得点数--dp+思维

其实跟打家劫舍没啥区别 排序去重之后去考虑当前位置和前两个位置之间的关系即可&#xff0c;具体见代码&#xff1a; class Solution { public:int deleteAndEarn(vector<int>& nums) {int n nums.size();if (n 1) return nums[0];unordered_map<int, int>…

React 之 Effect与事件(event)(八)

Effect&#xff08;useEffect Hook&#xff09; 在React中&#xff0c;Effect&#xff08;或者更具体地说&#xff0c;useEffect Hook&#xff09;是一个特殊的函数&#xff0c;它允许你在函数组件中执行副作用操作。这些副作用操作可能包括数据获取、手动更改DOM、订阅或取消订…

深度学习每周学习总结P7(咖啡豆识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 –来自百度网盘超级会员V5的分享 数据链接 提取码&#xff1a;7zt2 –来自百度网盘超级会员V5的分享 目录 0. 总结1. 数据导入及处理部分…

说一说Kotlin协程中的同步锁——Mutex

目录 前言MutexwithLock lockEmptyLockedQueue unlockLockCont总结 前言 在多线程并发的情况下会很容易出现同步问题&#xff0c;这时候就需要使用各种锁来避免这些问题&#xff0c;在java开发中&#xff0c;最常用的就是使用synchronized。kotlin的协程也会遇到这样的问题&am…

PPT基础

5种ppt仅可读形式 Ⅰ 开始选项卡 1.【幻灯片】组中&#xff1a;新建幻灯片&#xff0c;从大纲中导入幻灯片&#xff1b;修改幻灯片的版式&#xff1b;节&#xff08;新增节&#xff0c;重命名节&#xff09;。 2.【字体】组中&#xff1a;设置字体&#xff0c;字体大小&…

根据顶层的id递归查询出全部子节点

效果图 根据输入的id为2查询出所有的红色框起来的节点 mapper接口 TSystemOrg getOrgByorgId(String orgId); List<TSystemOrg> getOrgListByParentId(String parentId);mapper.xml <!--根据id查询org--> <select id"getOrgByorgId" resultType&…

MFC列表控件用ADO添加数据实例

1、本程序基于前期我的博客文章《MFC用ADO连接ACESS数据库实例(免费源码下载)》 程序功能通过编辑框、组合框实时将数据写入ACESS数据库并在列表控件上显示。 2、在主界面资源视图上加上一个按钮控件、两个静态文本、一个编辑框IDC_EDIT1变量名name、一个组合框IDC_COMBO1变量名…

python实验一 简单的递归应用

实验一 实验题目 1、兔子繁殖问题(Fibonacci’s Rabbits)。一对兔子从出生后第三个月开始&#xff0c;每月生一对小兔子。小兔子到第三个月又开始生下一代小兔子。假若兔子只生不死&#xff0c;一月份抱来一对刚出生的小兔子&#xff0c;问一年中每个月各有多少只兔子。 &…

Ubuntu启动后进入GRUB故障-Minimal BASH like line editing is supported.

目录 1.问题描述 2.解决方案 2.1 临时性办法 2.2 工具永久性修复 总结 1.问题描述 PC安装Ubuntu系统第二天重启后提示GUN GRUB version 2.04&#xff0c;之前是WindowsOS装Ubuntu后无法进入图形界面。具体原因据网友提供线索据说是由于在Windows上进行更新/重装/修改了引…

tomcat打开乱码修改端口

将UTF-8改成GBK 如果端口冲突&#xff0c;需要修改tomcat的端口

C语言 | Leetcode C语言题解之第60题排列序列

题目&#xff1a; 题解&#xff1a; char* getPermutation(int n, int k) {int factorial[n];factorial[0] 1;for (int i 1; i < n; i) {factorial[i] factorial[i - 1] * i;}--k;char* ans malloc(n 1);ans[n] \0;int valid[n 1];for (int i 0; i < n; i) {val…

拼多多怎么推广才有自然流量

在拼多多平台上获取自然流量&#xff0c;商家可以采取以下几种策略&#xff1a; 拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自主设置佣金比例&#xff0c;激励推广者去帮助商家推广商品链接&#xff0c;按最…