NoSQL数据库面面观

《ETL 技术面面观:数据安全、性能与可扩展性》 ETL 是 Extract(抽取)、Transform(转换)、Load(加载)三个英文单词首字母的缩写。它描述了一个从数据源获取数据,经过一系列处理转换,最终将数据加载到目标系统的过程。在这个过程中,抽取阶段负责从各种数据源(如数据库、文件系统、API 接口等)读取数据;转换阶段对抽取的数据进行清洗、转换、聚合等操作,使其符合目标系统的格式和业务规则;加载阶段将转换后的数据写入到目标系统(如数据仓库、数据集市、关系数据库等),以供后续分析使用。 阅读详情

NoSQL数据库现在已经变得非常流行了,在NoSQL这个大概念下实际上包含了大量的方式与项目,旨在实现各种数据库模型,他们与传统的关系型数据库管理系统存在着非常大的差别,而传统的关系型数据库系统是通过SQL的方式来访问数据的。在NoSQL领域中,传统观念中的模式可以通过不同的数据结构来实现,如散列表、数组、树、图等等。

术语“NoSQL”最早出现在上个世纪90年代末期,然而真正为大家所熟知则是在2009年中期。起初,它只是由Carlo Strozzi创建的一个小型开源数据库,将所有数据以ASCII文件的形式存储,并使用shell脚本而非SQL来访问这些数据。这个数据库与当前的“NoSQL”概念并没有任何相似之处。

Johan Oskarsson在2009年6月于旧金山组织了一场会议,讨论IT市场的新技术、数据存储与处理等主题。之所以会举办这场会议的主要原因在于BigTable和Dynamo等新产品的出现。“NoSQL”这个术语则是由来自RackSpace的Eric vans提出的。这个术语原本就是用在这场会议当中的,也没有什么更深层次的含义。不过最后的结果却是它迅速在互联网上蔓延开来,成为IT领域的一个新趋势。随后,Pramod J.Sadalage与Martin Fowler编写了“NoSQL Distilled”一书,旨在对日益庞大的NoSQL世界进行组织。

现在大约有150多种NoSQL数据库(nosql-database.org),下面就来探讨一下NoSQL的主要发展方向。

列簇存储

面向列的DBMS是这样一种数据库管理系统,它将数据表存储为数据列而非行的形式。从物理上来说,表是列的集合,每一列从本质上来说都是只有一个字段的表。这些数据库通常用于分析系统、商业智能与分析型数据存储。

优点:

  • 可以比较数据,因为在表的一列中,数据通常都是同种类型的。
  • 可以通过便宜、性能一般的硬件实现高速的查询性能;由于压缩的原因,相对于关系型数据库来说,这种方式磁盘上的数据所占据的空间要少5到10倍。

缺点:

  • 通常没有事务。
  • 对于熟悉传统RDBMS的开发者来说存在不少限制。

典型代表:

  • HBase
  • Cassandra
  • Accumulo
  • Amazon SimpleDB

键值存储

你可以通过这种数据库将键值对存储到持久化存储中,随后使用键来读取值。那么对于这种初看起来用途非常有限的解决方案来说有哪些好处呢?在根据键来保存/读取值时,系统是非常高效的,因为它没有SQL处理器、索引系统以及分析系统等诸多限制。这种解决方案提供了最高效的性能,代价最低的实现以及可伸缩性。

优点:

  • RDBMS太慢了,SQL游标的负担过于沉重。
  • 采用RDBMS的解决方案来存储少量数据的代价有些大。
  • 没必要使用SQL查询、索引、触发器、存储过程、临时表、表单以及视图等等。
  • 由于其轻量级的设计,键值数据库可以很容易实现可伸缩性以及高性能。

缺点:

  • 关系型数据库的限制可以从底层就确保数据的完整性,而键值存储就没有这些限制,数据的完整性是由应用来控制的。在这种情况下,数据的完整性可能会由于应用代码的错误而做一些妥协。
  • 在RDBMS中,如果模型设计良好,那么数据库的逻辑结构就能完全反映出存储数据的结构,并且与应用的结构有所不同(数据是独立于应用的)。对于键值存储来说,要想取得这种效果是非常困难的事情。

典型代表:

  • Amazon DynamoDB
  • Riak
  • Redis
  • LevelDB
  • Scalaris
  • MemcacheDB
  • Kyoto Cabinet

文档存储

文档存储指的是用于存储、搜索与管理面向文档的信息(半结构化数据)的程序,其中心概念就是文档。具体的面向文档数据库的实现是不同的,不过总的来说,他们都会以各种标准化格式对数据(文档)进行封装与加密,主要格式有XML、YAML、JSON、BSON、PDF等等。

优点:

  • 足够灵活的查询语言。
  • 易于水平扩展。

缺点:

在很多时候原子性是得不到保障的。

典型代表:

  • MongoDB
  • Couchbase
  • CouchDB
  • RethinkDB

图型数据库

图型数据库指的是使用图结构的数据库,通过结点、边与属性来表示和存储数据。根据定义,图型数据库是一种提供了无需索引而彼此邻接的存储系统。这意味着每个元素都包含了直接指向邻接元素的指针,因此没必要再通过索引进行查找了。

优点:

  • 对于关联数据集的查找速度更快。
  • 可以很自然地扩展为更大的数据集,因为他们无需使用代价高昂的连接运算符。

缺点:

  • RDBMS可以用在更为通用的场景下,图型数据库只适合类似于图的数据。

典型代表:

  • Neo4j
  • FlockDB
  • InfoGrid
  • OrientDB

多模数据库

这些数据库包含了多种数据库的特性。

有两种不同的产品分组可以认为是多模的:

  • 支持多种数据模型和用例的多模数据库。 比如说,ArangoDB宣称它拥有键值存储的好处,同时还提供了面向文档以及图型数据库的支持。
  • 支持多种模式的通用目的的数据库。 比如说,Oracle的MySQL 5.6支持SQL方式的访问,也可以通过Memcached API实现键值访问。

典型代表:

  • ArangoDB
  • Aerospike
  • Datomic

对象数据库

数据库中的数据都建模为对象、属性、方法以及类。面向对象的数据库通常适合于需要高性能数据处理的应用,这种应用一般都有非常复杂的结构。

优点:

  • 相比于关系元组来说,对象模型最适合于展现现实世界,对于复杂、多方位的对象来说尤为如此。
  • 使用层次特性来组织数据。
  • 访问数据时并不需要专门的查询语言,因为访问是直接面向对象的。然而,有时也是需要使用查询的。

缺点

  • 在RDBMS中,由于表的创建、修改或是删除而导致的模式修改通常并不依赖于应用。在使用对象数据库的应用中,模式修改类通常意味着还要对与当前类关联的其他应用类进行修改。这会导致对整个系统进行修改。
  • 对象数据库通常会通过单独的API与特定的语言绑定,只有通过该API才能查询数据。在这方面,RDBMS就做得很好,这要归功于它所使用的通用查询语言。

典型代表:

  • VelocityDB
  • Objectivity
  • ZODB
  • Siaqodb
  • EyeDB

多维数据库

这是针对在线分析处理的一种数据库,它可以从各种关系型数据库中检索数据,并且以某种方式将信息组织为类别和段当中。

典型代表:

  • GlobalsDB
  • Intersystems Cache
  • SciDB
  • Rasdaman

多值数据库

多维数据库的变种。主要的特性是支持使用属性来存储值的列表。

典型代表:

  • Rocket U2
  • OpenInsight
  • Reality

总结

NoSQL的发展速度异常迅猛,不过这并不意味着关系型数据库就没落了。他们还会在很多场景下发挥着巨大的作用,并且与NoSQL数据库共存。我们现在处在多种持久化存储共存的时代,并不存在处于垄断地位的关系型数据库与NoSQL数据库。架构师们对数据库的选择将会基于数据存储本身的特性,以及所预估的数据量。

c语言【分糖果】2023蓝桥杯4124(枚举,递归,dfs) 但是这是不符合我们糖果刚好分完的条件的,我们应该往回退到上一层,也就是孩子6这层,然后j+1=3,孩子7分到3个第二种糖果,这也不符合我们糖果刚好分完的条件,然后就会再次回退到孩子6这里,然后j+1=4,让我们的孩子7获得5块第二种糖果,然后还是不符合糖果刚分完的条件,于是再一次退回到孩子6这里,然后就会有外循环i+1=1,j=1,孩子7分到1块第一种糖果1块第二块糖果......然后就是这样的不停地回溯,试探,直到把整棵树遍历一遍,并且记录所有的满足条件的组合。先放一下我的代码,我的代码超时啦救命! 阅读详情

相关推荐

从FP16到FP8:我是如何让Stable Diffusion 3.5提速40%而不丢画质的

本文分享了StableDiffusion模型优化的实战经验。通过FP8精度转换、分层处理敏感模块,实现显存占用降低35%、推理速度提升40%。文章详细介绍了提升画质的五大技巧、本地/云端/移动端部署方案,以及二次元模型定制等垂直领域应用。同时总结了硬件兼容性、数据质量等七大常见陷阱,并强调持续监控和伦理考量。作者指出未来应关注MoE架构、注意力机制优化等方向,认为技术优化是持续追求性能与质量平衡的过程。

达则兼济天下 1187

NoSQL数据库(四)-memcached——介绍-分布式内存对象缓存系统、安装、api之set设置、add新增、replace替换、append追加

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。本质上,它是一个简洁的key-value存储系统。redis已经包含了memcached的功能,而且更丰富,所有只需了解即可。介绍只有key-value一种数据类型,已经被redis超越apiset 赋值,新旧add 只能赋新值replace 只能改旧值。

weixin_44867717的博客 227

SQL Prompt 9.0插件突然无法使用解决办法(附防联网激活)多图+文字

可能由于Redgate公司最近抓盗版抓得严,导致激活后的SQL Prompt联网后突然无法使用,无论卸载重装都没办法继续使用,本人同时使用SQL Assistant和SQL Prompt,我喜欢SQL Assistant代码提示功能,而SQL Prompt我喜欢将查询结果复制后可以直接生产插入脚本,这是最爽的一件事,即便对表有多么熟悉,没有这些插件,几行语法都要敲大半天,目前本人已经离不开这两个插...

骚团长的博客 1万+

NOSQL数据库习题

mongodb习题测试

cai_4的博客 7万+

MatterPort3D 数据集下载

【代码】MatterPort3D 数据集下载。

qq_44106838的博客 6784

EV1527 vs HS1527:固定码芯片的STM32解码避坑指南

本文深入解析EV1527与HS1527固定码芯片的技术差异,提供基于STM32的完整解码方案与稳定性优化策略。通过硬件接口配置、状态机实现及示波器诊断,解决工业遥控、安防报警等场景中的解码难题,特别针对时序差异和干扰问题给出实用解决方案。

o0p1q2r3的博客 331

TRDB与NoSql技术比较

引言: 从TRDB到NOSQL,它们到底发生了什么事情?为什么TRDB无法解决某些数据需求问题?而NOSQL对TRDB起弥补作用? 我们需要从硬件和软件两个角度进行深入了解,只有掌握了它们的基础原理发现了它们的运行特点,我们才能更好地选择技术解决方案,甚至可以影响代码的选择质量。最主要核心问题,还是需要解决大数据下的速度和存储问题。 一、硬件运行原理 单机的局限性 1.1传统关系型数据库系统设计之初主要基于一台服务器进行业务运行的,所以其受单机的硬件性能影响,所能提供的业务应用能力是受到严格限制的,最大性能

weixin_44703894的博客 3326

安卓端目标检测模型部署血泪史:从NCNN/TFLite/MNN全军覆没到Torchscipts终见光明

公司需在Android设备部署目标检测模型,要求: ✅ 实时检测速度≥15FPS ✅ 模型精度损失<5% ✅ 兼容中低端安卓设备👉 GitHub项目地址:pytorch/android-demo-app/ObjectDetection我已上传这份源码到csdn下载准备模型(必须走这步才能跑通安卓端源码)如果您没有设置PyTorch环境来运行该脚本,可以下载模型文件此处转到“android演示app/ObjectDetection/app/src/main/assets”文件夹,然后跳过此步骤的其余部分,直

机器学习、深度学习、强化学习、迁移学习 1571

电商项目使用什么nosql_为什么不应该仅仅为了它而使用NoSQL

邓迪大学的讲师安迪·科布利(Andy Cobley)长期以来一直是Java的倡导者,他解释了为什么教卡桑德拉(Cassandra)的原因,他希望NoSQL不会对NoSQL造成严重错误的原因,以及为什么他仍然落后Oracle平台15年。 JAXenter:是什么让您开始 向学生教授Cassandra? Cobley:有一次,我在教本科生时,意识到他们从第一年,第二年,第三年,第四年开始使用...

461

1.3、云计算HCIP融合存储产品及部署

目标:描述Oceanstor V3系列存储产品系统组成及产品定位 描述Oceanstor V3硬件结构及软件架构 掌握存储系统与主机系统之间的连接 一、存储型号 低端型存储:Oceanstor 2200 2600 2800 V3/V5 终端型存储:Oceanstor 5300 5500 5600 5800 6800 V3/V5 高端型存储:Oceanstor 18000 二、Oceanstor V3系列存储系统定位 OceanStor V3系列存储系统是华为根据存储产品应用现状和存储

weixin_43666279的博客 1653

AI Agent在营销领域的实战策略

本文从第一性原理出发,系统性拆解AI Agent在营销领域的落地逻辑、技术架构、实现方案与实战策略。全文覆盖从基础概念到高级优化的全层级知识:底层理论层面推导营销Agent的效用函数与决策框架;技术架构层面提出"感知-记忆-规划-行动-反思"五组件可落地架构;实践层面提供生产级代码实现、多行业案例与ROI提升方法论;前沿层面探讨多Agent协同、世界模型仿真等下一代技术方向。

操作系统内核探秘的博客 227

NoSQL数据库大盘点 优势劣势面面观

文章讲的是NoSQL数据库大盘点 优势劣势面面观,NoSQL数据库现在已经变得非常流行了,在NoSQL这个大概念下实际上包含了大量的方式与项目,旨在实现各种数据库模型,他们与传统的关系型数据库管理系统存在着非常大的差别,而传统的关系型数据库系统是通过SQL的方式来访问数据的。在NoSQL领域中,传统观念中的模式可以通过不同的数据结构来实现,如散列表、数组、...

weixin_34194702的博客 337

开源鸿蒙具身机器人(ROS2框架):从内核驱动到智能算法的完整实践

本指导文档旨在为开发者提供完整的开源鸿蒙(OpenHarmony)具身机器人开发解决方案,涵盖从底层驱动到上层ROS2应用的全栈开发流程。文档结合OpenHarmony内核驱动移植技术和ROS2机器人操作系统,为具身机器人开发提供详细的技术指导。具身机器人(Embodied Robot)是指具有物理实体、能够感知环境并与之交互的智能机器人系统。感知-决策-执行闭环多模态传感器融合(视觉、听觉、触觉、力觉)实时环境感知与理解智能决策与规划精确运动控制执行具身智能特性物理世界交互能力。

m0_67505153的博客 1269

面面观 | 云计算时代的数据库:对比 mariadb 和 tidb

01数据库tidb 现在比较流行的就是mariadb。 mysql被收购了,就不要用了。用mariadb。但是但是那个是是mysql的源代码开源出来的另外一个版本,和mysql的设计是一样的。 tidb 就不一样了。其灵感来自于 Google 的 F1 和 Google spanner, TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。 sql 完全支持mysql,同时人家...

weixin_34348174的博客 187

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Kudu设计要点面面观

目录PrologueKudu的初衷集群架构与共识保证表与分区的设计底层存储设计细节行事务与数据一致性(待续)与Impala、Spark集成(待续)Benchmarking...

微信搜:import_bigdata,大数据领域硬核原创作者 419

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

迟到的Kudu设计要点面面观(前篇)

后篇传送门:https://www.jianshu.com/p/24bdc6f62e84 目录 Prologue Kudu的初衷 集群架构与共识保证 表与分区的设计 底层存储设计细节 事务与数据一致性(待续) 与Impala、Spark集成(待续) Benchmarking(待续) 当前的主要不足(待续) 简单调优方法(待续) Prologue Kudu在大数据技术栈中是个相...

LittleMagic's Blog 522

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

kudu大量数据更新_Kudu设计要点面面观

目录PrologueKudu的初衷集群架构与共识保证表与分区的设计底层存储设计细节行事务与数据一致性(待续)与Impala、Spark集成(待续)Benchmarking(待续)当前的主要不足(待续)简单调优方法(待续)PrologueKudu在大数据技术栈中是个相对年轻的角色,它原本是Cloudera的内部存储项目,用C++开发,其1.0版本在2016年9月发布,最新版本则是1.9。K...

weixin_39695490的博客 204

QCon北京2012讲义下载

专题演讲资料 >>知名网站案例分析: 分布式数据库及反范式设计—曹政 简则优——创业型团队的架构设计—金潇岳旭强 互联网的高弹性架构设计分享—刘晓飞 去哪儿搜索引擎QSearch设计与实现 - 朱翔 ...

aixia7080的博客 340

kudu大量数据更新_Kudu设计要点面面观(上篇)

目录PrologueKudu的初衷集群架构与共识保证表与分区的设计底层存储设计细节行事务与数据一致性(待续)与Impala、Spark集成(待续)Benchmarking(待续)当前的主要不足(待续)简单调优方法(待续)PrologueKudu在大数据技术栈中是个相对年轻的角色,它原本是Cloudera的内部存储项目,用C++开发,其1.0版本在2016年9月发布,最新版本则是1.9。Kudu本质...

weixin_42241165的博客 274

《程序员》2月精彩内容:互联网应用架构面面观

来源:http://geek.youkuaiyun.com/news/detail/136459 立足互联网行业,架构通常指的是技术架构,更具体一点的说是系统架构、软件架构,或者是最常见的网站架构。本期封面报道就来探讨一下互联网时代,实战型技术架构的演进过程及其优缺点等诸多方面。 架构分享&学习之“渔”与“鱼”(张立刚,1号店技术部电商云平台技术总监)京东分布式数据库系统演进之路(张成

gb4215287的博客 1248
上一篇: Redis安装配置详解
blpluto
博客等级 码龄21年 117粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值