大数据常用哪些数据库

大数据常用哪些数据库,第1张

通常数据库分为关系型数据库和非关系型数据库,关系型数据库的优势到现在也是无可替代的,比如MySQL、SQL Server、Oracle、DB2、SyBase、Informix、PostgreSQL以及比较小型的Access等等数据库,这些数据库支持复杂的SQL *** 作和事务机制,适合小量数据读写场景;但是到了大数据时代,人们更多的数据和物联网加入的数据已经超出了关系数据库的承载范围。大数据时代初期,随着数据请求并发量大不断增大,一般都是采用的集群同步数据的方式处理,就是将数据库分成了很多的小库,每个数据库的数据内容是不变的,都是保存了源数据库的数据副本,通过同步或者异步方式保证数据的一致性,每个库设定特定的读写方式,比如主数据库负责写 *** 作,从数据库是负责读 *** 作,等等根据业务复杂程度以此类推,将业务在物理层面上进行了分离,但是这种方式依旧存在一定的负载压力的问题,企业数据在不断的扩增中,后面就采用分库分表的方式解决,对读写负载进行分离,但是这种实现依旧存在不足,且需要不断进行数据库服务器扩容。 NoSQL数据库大致分为5种类型1、列族数据库:BigTable、HBase、Cassandra、Amazon SimpleDB、HadoopDB等,下面简单介绍几个(1)Cassandra:Cassandra是一个列存储数据库,支持跨数据中心的数据复制。它的数据模型提供列索引,log-structured修改,支持反规范化,实体化视图和嵌入超高速缓存。(2)HBase:Apache Hbase源于Google的Bigtable,是一个开源、分布式、面向列存储的模型。在Hadoop和HDFS之上提供了像Bigtable一样的功能。(3)Amazon SimpleDB:Amazon SimpleDB是一个非关系型数据存储,它卸下数据库管理的工作。开发者使用Web服务请求存储和查询数据项(4)Apache Accumulo:Apache Accumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建立在Apache Hadoop、Zookeeper和Thrift技术之上。(5)Hypertable:Hypertable是一个开源、可扩展的数据库,模仿Bigtable,支持分片。(6)Azure Tables:Windows Azure Table Storage Service为要求大量非结构化数据存储的应用提供NoSQL性能。表能够自动扩展到TB级别,能通过REST和Managed API访问。2、键值数据库:Redis、SimpleDB、Scalaris、Memcached等,下面简单介绍几个(1)Riak:Riak是一个开源,分布式键值数据库,支持数据复制和容错。(2)Redis:Redis是一个开源的键值存储。支持主从式复制、事务,Pub/Sub、Lua脚本,还支持给Key添加时限。(3)Dynamo:Dynamo是一个键值分布式数据存储。它直接由亚马逊Dynamo数据库实现;在亚马逊S3产品中使用。(4)Oracle NoSQL Database:来自Oracle的键值NoSQL数据库。它支持事务ACID(原子性、一致性、持久性和独立性)和JSON。(5)Oracle NoSQL Database:具备数据备份和分布式键值存储系统。(6)Voldemort:具备数据备份和分布式键值存储系统。(7)Aerospike:Aerospike数据库是一个键值存储,支持混合内存架构,通过强一致性和可调一致性保证数据的完整性。3、文档数据库:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面简单介绍几个(1)MongoDB:开源、面向文档,也是当下最人气的NoSQL数据库。(2)CounchDB:Apache CounchDB是一个使用JSON的文档数据库,使用Javascript做MapReduce查询,以及一个使用HTTP的API。(3)Couchbase:NoSQL文档数据库基于JSON模型。(4)RavenDB:RavenDB是一个基于.NET语言的面向文档数据库。(5)MarkLogic:MarkLogic NoSQL数据库用来存储基于XML和以文档为中心的信息,支持灵活的模式。4、图数据库:Neo4J、InfoGrid、OrientDB、GraphDB,下面简单介绍几个(1)Neo4j:Neo4j是一个图数据库;支持ACID事务(原子性、独立性、持久性和一致性)。(2)InfiniteGraph:一个图数据库用来维持和遍历对象间的关系,支持分布式数据存储。(3)AllegroGraph:AllegroGraph是结合使用了内存和磁盘,提供了高可扩展性,支持SPARQ、RDFS++和Prolog推理。5、内存数据网格:Hazelcast、Oracle Coherence、Terracotta BigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面简单介绍几个(1)Hazelcast:Hazelcast CE是一个开源数据分布平台,它允许开发者在数据库集群之上共享和分割数据。(2)Oracle Coherence:Oracle的内存数据网格解决方案提供了常用数据的快速访问能力,一致性支持事务处理能力和数据的动态划分。(3)Terracotta BigMemory:来自Terracotta的分布式内存管理解决方案。这项产品包括一个Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop连接器。(4)GemFire:Vmware vFabric GemFire是一个分布式数据管理平台,也是一个分布式的数据网格平台,支持内存数据管理、复制、划分、数据识别路由和连续查询。(5)Infinispan:Infinispan是一个基于Java的开源键值NoSQL数据存储,和分布式数据节点平台,支持事务,peer-to-peer 及client/server 架构。(6)GridGain:分布式、面向对象、基于内存、SQL+NoSQL键值数据库。支持ACID事务。(7)GigaSpaces:GigaSpaces内存数据网格能够充当应用的记录系统,并支持各种各样的高速缓存场景。

目录

- 数据库分类维度:关系型/非关系型、交易型/分析型

- NoSQL数据库的进一步分类

- OLTP市场规模:关系型数据库仍占营收大头

- 数据库市场份额:云服务和新兴厂商主导NoSQL

- 开源数据库 vs. 商业数据库

- 数据库三大阵营:传统厂商和云服务提供商

最近由于时间原因我写东西少了,在公众号上也转载过几篇搞数据库朋友的大作。按说我算是外行,没资格在这个领域品头论足,而当我看到下面这份报告时立即产生了学习的兴趣,同时也想就能看懂的部分写点心得体会分享给大家。

可能本文比较适合普及性阅读,让数据库领域资深的朋友见笑了:)

数据库分类维度:关系型/非关系型、交易型/分析型

首先是分类维度,上图中的纵轴分类为Relational Database(关系型数据库,RDBMS)和Nonrelational Database (非关系型数据库,NoSQL),横轴的分类为Operational(交易型,即OLTP)和Analytical(分析型,即OLAP)。

按照习惯我们先看关系型数据库,左上角的交易型类别中包括大家熟悉的商业数据库Oracle、MS SQL Server、DB2、Infomix,也包括开源领域流行的MySQL(MariaDB是它的一个分支)、PostgreSQL,还有云上面比较常见的SQL Azure和Amazon Aurora等。

比较有意思的是,SAP HANA正好位于交易型和分析型的中间分界处,不要忘了SAP还收购了Sybase,尽管后者今天不够风光了,而早年微软的SQL Server都是来源于Sybase。Sybase的ASE数据库和分析型Sybase IQ还是存在的。

右上角的分析型产品中包括几款知名的列式数据仓库Pivotal Greenplum、Teradata和IBM Netezza(已宣布停止支持),来自互联网巨头的Google Big Query和Amazon RedShift。至于Oracle Exadata一体机,它上面运行的也是Oracle数据库,其最初设计用途是OLAP,而在后来发展中也可以良好兼顾OLTP,算是一个跨界产品吧。

再来看非关系型数据库,左下角的交易型产品中,有几个我看着熟悉的MongoDB、Redis、Amazon DynamoDB和DocumentDB等;右下角的分析型产品包括著名的Hadoop分支Cloudera、Hortonworks(这2家已并购),Bigtable(来自Google,Hadoop中的HBase是它的开源实现)、Elasticsearch等。

显然非关系型数据库的分类要更加复杂,产品在应用中的差异化也比传统关系型数据库更大。Willian Blair很负责任地对它们给出了进一步的分类。

NoSQL数据库的进一步分类

上面这个图表应该说很清晰了。非关系型数据库可以分为Document-based Store(基于文档的存储)、Key-Value Store(键值存储)、Graph-based(图数据库)、Time Series(时序数据库),以及Wide Cloumn-based Store(宽列式存储)。

我们再来看下每个细分类别中的产品:

文档存储 :MongoDB、Amazon DocumentDB、Azure Cosmos DB等

Key-Value存储 :Redis Labs、Oracle Berkeley DB、Amazon DynamoDB、Aerospike等

图数据库 :Neo4j等

时序数据库 :InfluxDB等

WideCloumn :DataStax、Cassandra、Apache HBase和Bigtable等

多模型数据库 :支持上面不只一种类别特性的NoSQL,比如MongoDB、Redis Labs、Amazon DynamoDB和Azure Cosmos DB等。

OLTP市场规模:关系型数据库仍占营收大头

上面这个基于IDC数据的交易型数据库市场份额共有3个分类,其中深蓝色部分的关系型数据库(RDBMS,在这里不统计数据挖掘/分析型数据库)占据80%以上的市场。

Dynamic Database(DDMS,动态数据库管理系统,同样不统计Hadoop)就是我们前面聊的非关系型数据库。这部分市场显得小(但发展势头看好),我觉得与互联网等大公司多采用开源+自研,而不买商业产品有关。

而遵循IDC的统计分类,在上图灰色部分的“非关系型数据库市场”其实另有定义,参见下面这段文字:

数据库市场份额:云服务和新兴厂商主导NoSQL

请注意,这里的关系型数据库统计又包含了分析型产品。Oracle营收份额42%仍居第一,随后排名依次为微软、IBM、SAP和Teradata。

代表非关系型数据库的DDMS分类中(这里同样加入Hadoop等),云服务和新兴厂商成为了主导,微软应该是因为云SQL Server的基础而小幅领先于AWS,这2家一共占据超过50%的市场,接下来的排名是Google、Cloudera和Hortonworks(二者加起来13%)。

上面是IDC传统分类中的“非关系型数据库”,在这里IBM和CA等应该主要是针对大型机的产品,InterSystems有一款在国内医疗HIS系统中应用的Caché数据库(以前也是运行在Power小机上比较多)。我就知道这些,余下的就不瞎写了。

开源数据库 vs. 商业数据库

按照流行度来看,开源数据库从2013年到现在一直呈现增长,已经快要追上商业数据库了。

商业产品在关系型数据库的占比仍然高达60.5%,而上表中从这列往左的分类都是开源占优:

Wide Cloumn:开源占比81.8%;

时序数据库:开源占比80.7%;

文档存储:开源占比80.0%;

Key-Value存储:开源占比72.2%;

图数据库:开源占比68.4%;

搜索引擎:开源占比65.3%

按照开源License的授权模式,上面这个三角形越往下管的越宽松。比如MySQL属于GPL,在互联网行业用户较多;而PostgreSQL属于BSD授权,国内有不少数据库公司的产品就是基于Postgre哦。

数据库三大阵营:传统厂商和云服务提供商

前面在讨论市场份额时,我提到过交易型数据库的4个巨头仍然是Oracle、微软、IBM和SAP,在这里William Blair将他们归为第一阵营。

随着云平台的不断兴起,AWS、Azure和GCP(Google Cloud Platform)组成了另一个阵营,在国外分析师的眼里还没有BAT,就像有的朋友所说,国内互联网巨头更多是自身业务导向的,在本土发展公有云还有些优势,短时间内将技术输出到国外的难度应该还比较大。(当然我并不认为国内缺优秀的DBA和研发人才)

第三个阵容就是规模小一些,但比较专注的数据库玩家。

接下来我再带大家简单过一下这前两个阵容,看看具体的数据库产品都有哪些。

甲骨文的产品,我相对熟悉一些的有Oracle Database、MySQL以及Exadata一体机。

IBM DB2也是一个庞大的家族,除了传统针对小型机、x86(好像用的人不多)、z/OS大型机和for i的版本之外,如今也有了针对云和数据挖掘的产品。记得抱枕大师对Informix的技术比较推崇,可惜这个产品发展似乎不太理想。

微软除了看家的SQL Server之外,在Azure云上还能提供MySQL、PostgreSQL和MariaDB开源数据库。应该说他们是传统软件License+PaaS服务两条腿走路的。

如今人们一提起SAP的数据库就想起HANA,之前从Sybase收购来的ASE(Adaptive Server Enterprise)和IQ似乎没有之前发展好了。

在云服务提供商数据库的3巨头中,微软有SQL Server的先天优势,甚至把它移植到了Linux拥抱开源平台。关系型数据库的创新方面值得一提的是Amazon Aurora和Google Spanner(也有非关系型特性),至于它们具体好在哪里我就不装内行了:)

非关系型数据库则是Amazon全面开花,这与其云计算业务发展早并且占据优势有关。Google当年的三篇经典论文对业界影响深远,Yahoo基于此开源的Hadoop有一段时间几乎是大数据的代名词。HBase和Hive如今已不再是人们讨论的热点,而Bigtable和BigQuery似乎仍然以服务Google自身业务为主,毕竟GCP的规模比AWS要小多了。

最后这张DB-Engines的排行榜,相信许多朋友都不陌生,今年3月已经不是最新的数据,在这里列出只是给大家一个参考。该排行榜几乎在每次更新时,都会有国内数据库专家撰写点评。

以上是我周末的学习笔记,班门弄斧,希望对大家有帮助。

参考资料《Database Software Market:The Long-Awaited Shake-up》

https://blocksandfiles.com/wp-content/uploads/2019/03/Database-Software-Market-White-Paper.pdf

扩展阅读:《 数据库&存储:互相最想知道的事 》

尊重知识,转载时请保留全文。感谢您的阅读和支持!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7489729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存