通常数据库分为关系型数据库和非关系型数据库,关系型数据库的优势到现在也是无可替代的,比如MySQL、SQLServer、Oracle、DB2、SyBase、Informix、PostgreSQL以及比较小型的Aess等等数据库,这些数据库支持复杂的SQL *** 作和事务机制,适合小量数据读写场景;但是到了大数据时代,人们更多的数据和物联网加入的数据已经超出了关系数据库的承载范围。
大数据时代初期,随着数据请求并发量大不断增大,一般都是采用的集群同步数据的方式处理,就是将数据库分成了很多的小库,每个数据库的数据内容是不变的,都是保存了源数据库的数据副本,通过同步或者异步方式保证数据的一致性,每个库设定特定的读写方式,比如主数据库负责写 *** 作,从数据库是负责读 *** 作,等等根据业务复杂程度以此类推,将业务在物理层面上进行了分离,但是这种方式依旧存在一定的负载压力的问题,企业数据在不断的扩增中,后面就采用分库分表的方式解决,对读写负载进行分离,但是这种实现依旧存在不足,且需要不断进行数据库服务器扩容。
NoSQL数据库大致分为5种类型
1、列族数据库:BigTable、HBase、Cassandra、AmazonSimpleDB、HadoopDB等,下面简单介绍几个
(1)Cassandra:Cassandra是一个列存储数据库,支持跨数据中心的数据复制。它的数据模型提供列索引,log-structured修改,支持反规范化,实体化视图和嵌入超高速缓存。
(2)HBase:ApacheHbase源于Google的Bigtable,是一个开源、分布式、面向列存储的模型。在Hadoop和HDFS之上提供了像Bigtable一样的功能。
(3)AmazonSimpleDB:AmazonSimpleDB是一个非关系型数据存储,它卸下数据库管理的工作。开发者使用Web服务请求存储和查询数据项
(4)ApacheAumulo:ApacheAumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建立在ApacheHadoop、Zookeeper和Thrift技术之上。
(5)Hypertable:Hypertable是一个开源、可扩展的数据库,模仿Bigtable,支持分片。
(6)AzureTables:WindowsAzureTableStorageService为要求大量非结构化数据存储的应用提供NoSQL性能。表能够自动扩展到TB级别,能通过REST和ManagedAPI访问。
2、键值数据库:Redis、SimpleDB、Scalaris、Memcached等,下面简单介绍几个
(1)Riak:Riak是一个开源,分布式键值数据库,支持数据复制和容错。(2)Redis:Redis是一个开源的键值存储。支持主从式复制、事务,Pub/Sub、Lua脚本,还支持给Key添加时限。
(3)Dynamo:Dynamo是一个键值分布式数据存储。它直接由亚马逊Dynamo数据库实现;在亚马逊S3产品中使用。
(4)OracleNoSQLDatabase:来自Oracle的键值NoSQL数据库。它支持事务ACID(原子性、一致性、持久性和独立性)和JSON。
(5)OracleNoSQLDatabase:具备数据备份和分布式键值存储系统。
(6)Voldemort:具备数据备份和分布式键值存储系统。
(7)Aerospike:Aerospike数据库是一个键值存储,支持混合内存架构,通过强一致性和可调一致性保证数据的完整性。
3、文档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面简单介绍几个
(1)MongoDB:开源、面向文档,也是当下最人气的NoSQL数据库。
(2)CounchDB:ApacheCounchDB是一个使用JSON的文档数据库,使用Javascript做MapRece查询,以及一个使用>
(3)Couchbase:NoSQL文档数据库基于JSON模型。
(4)RavenDB:RavenDB是一个基于NET语言的面向文档数据库。
(5)MarkLogic:MarkLogicNoSQL数据库用来存储基于XML和以文档为中心的信息,支持灵活的模式。
4、图数据库:Neo4J、InfoGrid、OrientDB、GraphDB,下面简单介绍几个
(1)Neo4j:Neo4j是一个图数据库;支持ACID事务(原子性、独立性、持久性和一致性)。
(2):一个图数据库用来维持和遍历对象间的关系,支持分布式数据存储。
(3):是结合使用了内存和磁盘,提供了高可扩展性,支持SPARQ、RDFS和Prolog推理。
5、内存数据网格:Hazelcast、OracleCoherence、TerracottaBigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面简单介绍几个
(1)Hazelcast:HazelcastCE是一个开源数据分布平台,它允许开发者在数据库集群之上共享和分割数据。
(2)OracleCoherence:Oracle的内存数据网格解决方案提供了常用数据的快速访问能力,一致性支持事务处理能力和数据的动态划分。
(3)TerracottaBigMemory:来自Terracotta的分布式内存管理解决方案。这项产品包括一个Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop连接器。
(4)GemFire:VmwarevFabricGemFire是一个分布式数据管理平台,也是一个分布式的数据网格平台,支持内存数据管理、复制、划分、数据识别路由和连续查询。
(5)Infinispan:Infinispan是一个基于Java的开源键值NoSQL数据存储,和分布式数据节点平台,支持事务,peer-to-peer及client/server架构。
(6)GridGain:分布式、面向对象、基于内存、SQLNoSQL键值数据库。支持ACID事务。
(7)GigaSpaces:GigaSpaces内存数据网格能够充当应用的记录系统,并支持各种各样的高速缓存场景。
基本数据类型有四类八种,分别为:
1整型:byte,short,int,long。
2浮点型:float,double。
3逻辑型:boolean。
4字符型:char。
数据库的所有 *** 作增、删、改、查都是在内存中完成的,为了处理数据,数据库首先需要将数据从磁盘读取到内存中,然后进行相应的 *** 作。但是内存和磁盘的读写速度有着天壤之别。DDR4内存读写速度大概50G每秒(50000M),固态硬盘速度是300M每秒,是内存的二百分之一,机械硬盘的速度是100M每秒,是内存的五百分之一。如何平衡数据存储介质在不同场景(以及时间)下的应用很重要。
AntDB数据库支持内存与磁盘双引擎自动切换,融合AI技术,实现更低的成本与更好的性能。AntDB数据库,一款在通信行业得到充分使用的业内领先的国产数据库,帮助客户进行OLTP 与OLAP一站式处理的数据库产品,具备丰富配套工具和完整服务体系
2008年,SIGMOD的一篇论文对面向磁盘的数据库性能开销做了分析⌄把整个数据库系统的开销做了统计。分析发现典型的数据库环境中实际上只有12%的资源是在真正处理业务查询和处理逻辑。其中30%用于缓冲区管理,30%处理数据并发控制管理的开销(Locking和Latching),28%处理数据库日志的处理(Logging)。如何降低这些数据库额外开销是考虑的重点方向。建议题主多关注行业公众号,比如 柏睿数据
1 三者的关注不同
关系数据库的数据内容按照关系表的方式存储在硬盘上 等需要使用的将数据调入内存。
内存数据库数据常驻内存中,因此反应速度比较快 但是因为内存是有限的 所以内存数据库在设计的时候应该设计的小巧灵活 存储的数据量比关系型数据库要小的很多
实时数据库设计的目的是实时更新数据库中的数据,通过传感器等设备来保障数据库中的数据的最新的
传统数据库基于硬盘上的文件系统而建立传统数据库的计算依赖于硬盘的转速及机械读头数据机械运算模式
而内存数据库建立于系统的内存之中 计算模式为纯粹电子模式其计算数据依赖于内存的移位寄存器的读取速度和内存条的主频,如DDR3 133MHZ
因此,内存数据无论是在计算速度或数据吞吐量上与传统数据库都不在一个数量级上两者基本上没有可比性
传统数据库单链接每秒从硬盘读取数据的速度仅为100~200条
而MillionsDB内存数据库单秒数据读取量为200万次 单条数据查询响应数据仅为05微秒
当然有产品了,但是目前没有一家的内存数据库能否占领市场的高度,因为内存数据库的专业化需求太不一样了。
各大公司用的内存数据库基本上都是自己搞得,借鉴一些数据库的理论或开源内存数据库的源码,结合自己的项目,定制化开发的。
内存数据库可以将数据同步到文件中,即redo机制。所以当服务器重启后,数据也不会丢失。
最近我们也在搞这方面的产品
以上就是关于大数据常用哪些数据库(什么是大数据库)全部的内容,包括:大数据常用哪些数据库(什么是大数据库)、数据类型都有哪些,数据库是如何处理这些数据的、当磁盘I/O不再是瓶颈,内存数据库要考虑什么问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)