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

news2025/1/11 14:52:12

文章目录

  • 简介
  • 非关系型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.coloradmin.cn/o/1635892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL基础学习(待整理)

MySQL 简介 学习路径 MySQL 安装 卸载预安装的mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs安装网络工具 yum -y install net-tools yum -y install libaio下载rpm-bundle.tar安装包,并解压,使用rpm进行安装 rpm -ivh \ mysql-communi…

嵌入式全栈开发学习笔记---vim编辑器

目录 进入vim编辑器 Shiftzz退出编辑器 vim的三种模式 命令模式 插入模式 yy复制一行 p粘贴一行 nyy复制多行 dd剪切一行 ndd剪切多行 x删除一个字符 nx删除多个字符 u撤销上一次操作 shiftg从第一行如果快速调到最后一行 gg回到第一行 pagedown & pageup往…

arp欺骗详解

目录 arp攻击原理 arp协议简介 arp攻击原理 arp实验 实验环境 实验步骤 1、使用ipconfig命令查看靶机(window10)的IP地址为下一步攻击做好准备,这一步是模拟你获取对方IP的过程 2、使用ifconfig查询查看攻击者(kali&#x…

Windows如何通过wsl2迅速启动Docker desktop的PHP的Hyperf项目容器?

一、安装WSL 什么是WSL? 官网:什么是WSL? Windows Subsystem for Linux (WSL) 是一个在Windows 10和Windows 11上运行原生Linux二进制可执行文件的兼容性层。 换句话说,WSL让你可以在Windows系统上运行Linux环境,而无需…

【套接字-Socket】学习笔记(更新中)

【套接字-Socket】学习笔记 套接字(Socket)的概念TCP通信流程Socket编程中的细节字节序IP地址转换主机字节序 -> 网络字节序网络字节序 -> 主机字节序 参考资料 套接字(Socket)的概念 TCP/IP网络模型有四层:网络接口层、网络互连层、传输层和应用层。 当应用…

GCB | 陆地生态系统C:N:P化学计量对降水变化的响应

西北农林科技大学水保学院上官周平研究员团队在陆地生态系统C:N:P化学计量对降水变化的响应方面取得新进展,并以“C:N:P stoichiometry of plants, soils, and microorganisms: Response to altered precipitation”为题发表在国际生态环境领域著名期刊Global Chang…

令牌技术详解

1. 问题引出 之前我们讲 Cookie 和 Session 时提到过一个用户登录的场景:当用户登录时,服务器端可以把用户的登录信息存在Session中 并返回给客户端对应的SessionID,客户端会把这个SessionID存在Cookie 中当下次访问该服务器时,…

Ubuntu如何更换 PyTorch 版本

环境: Ubuntu22.04 WLS2 问题描述: Ubuntu如何更换 PyTorch 版本考虑安装一个为 CUDA 11.5 编译的 PyTorch 版本。如何安装旧版本 解决方案: 决定不升级CUDA版本,而是使用一个与CUDA 11.5兼容的PyTorch版本,您可…

Google Test Tutorial

Google Test Tutorial 1. 简介(Introduction) google开发的测试框架 2. 术语(Nomenclature) Test Case:一组相关的测试,GoolgeTest Test Suit: 一些出版物、教科书、包括国际软件测试认证委员会资料使用的术语 GoogleTest在逐渐使用TestSuit代替TestCa…

电商致命问题,抖音小店没有流量怎么办?三个方法解决

哈喽~我是电商月月 昨天有个朋友问我,她在抖音上做网店,图的就是抖音日活量大,有了流量,也就容易出单了,但她遇到了一个尴尬的问题:就是抖音的流量并不是她店铺的流量,她上架的商品没几个人浏览…

「Java开发指南」如何利用MyEclipse启用Spring DSL?(二)

本教程将引导您通过启用Spring DSL和使用Service Spring DSL抽象来引导Spring和Spring代码生成项目,本教程中学习的技能也可以很容易地应用于其他抽象。在本教程中,您将学习如何: 为Spring DSL初始化一个项目创建一个模型包创建一个服务和操…

【深度学习基础(1)】什么是深度学习,深度学习与机器学习的区别、深度学习基本原理,深度学习的进展和未来

文章目录 一. 深度学习概念二. 深度学习与机器学习的区别三. 理解深度学习的工作原理1. 每层的转换进行权重参数化2. 怎么衡量神经网络的质量3. 怎么减小损失值 四. 深度学习已取得的进展五. 人工智能的未来 - 不要太过焦虑跟不上 一. 深度学习概念 先放一张图来理解下人工智能…

不同路径 1 2

class Solution {public int uniquePaths(int m, int n) {int[][] dpnew int[m][n];//记录到每个格子有多少种路径for(int i0;i<m;i) dp[i][0]1;for(int j0;j<n;j) dp[0][j]1;//初始化for(int i1;i<m;i){for(int j1;j<n;j){dp[i][j]dp[i-1][j]dp[i][j-1];}}return …

【IR 论文】HyDE:让 LLM 对 query 做查询改写来改进 Dense Retrieval

论文&#xff1a;Precise Zero-Shot Dense Retrieval without Relevance Labels ⭐⭐⭐⭐ CMU, ACL 2023, arXiv:2212.10496 Code: github.com/texttron/hyde 文章目录 论文速读总结 论文速读 在以往的 dense retrieval 思路中&#xff0c;需要对 input query 做 encode 来得到…

Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步

1. Spring6 当中 Bean 的生命周期的详细解析&#xff1a;有五步&#xff0c;有七步&#xff0c;有十步 文章目录 1. Spring6 当中 Bean 的生命周期的详细解析&#xff1a;有五步&#xff0c;有七步&#xff0c;有十步每博一文案1.1 什么是 Bean 的生命周期1.2 Bean 的生命周期 …

Halcon 检测物体定位点

文章目录 get_domain 返回所有输入图像的定义域作为一个区域add_channels 给区域增加灰度值find_shape_model 发现匹配模板find_shape_models 发现最佳模板示例 get_domain 返回所有输入图像的定义域作为一个区域 Halcon 中的区域 get_domain(Image : Domain : : ) Image : …

【JavaWeb Day 2 - JS 】

JavaWeb Day 2 - JS JS背景故事1. JS 引入方式2. JS 基本语法2.2 变量2.3 数据类型2.4 运算符 3. JS 函数4. JS 对象4.1 Array对象4.2 String对象4.3 JSON对象4.4 BOM对象4.4.1 windows 对象4.4.2 location 对象 4.5 DOM 对象DOM 案例 5. JS 事件监听5.1 JS 事件绑定 及 常见事…

Docker--compose概述与部署

目录 一、概述 1. Compose简介 1.1 docker compose常用命令 1.2 Compose配置常用字段 2. YAML简介 2.1 YAML支持的数据结构 2.2 YML文件编写注意事项 2.3 Docker Compose文件结构 3. Docker-Compose安装 ​编辑 4.docker Compose撰写nginx 镜像 1. 准备环境 ​编辑…

TinyMaix在x210开发板上的移植

目录 说明 环境准备 编译代码 源程序下载 修改tm_port.文件 修改CMake文件 测试程序运行 说明 我们教学中使用的x210开发板使用S5PV210这款CPU&#xff0c;它是根据三星的smdkv210开发板进行裁剪设计的&#xff0c;这个开发板非常的老了&#xff0c;不过在有经费购买新…

如何进行面向对象分析、面向对象设计和面向对象编程

目录 1.引言 2.案例介绍和难点剖析 3.如何进行面向对象分析 4.如何进行面向对象设计 5.如何进行面向对象编程 6.总结 1.引言 面向对象分析(OOA)、面向对象设计(00D)和面向对象编程(OOP)是面向对象开发的3个主要环节。 在以往的工作中&#xff0c;作者发现&#xff0c;很多…