开源实时数据库有哪些,最强的数据库是哪个Oracle是最强的吗强在什么地方
来源:整理 编辑:黑码技术 2023-11-08 04:12:15
本文目录一览
1,最强的数据库是哪个Oracle是最强的吗强在什么地方
我认为ORACLE强在总体架构上,1、有自己的数据库平台、前端开发工具,应用服务器,是一个整体解决方案,不像你买其他ERP,不会提供一个二次开发的工具集。2、开放性好,同样用这些工具集,我还可以开发相关的应用,在同样的平台上运行。3、Application的多组织是一个卖点,区别中小企业ERP的一个最大特点。那你要分什么数据库了,如果是关系数据库的话,目前来说是oracle,因为他比较全面,自己的数据平台,开发工具... 如果是实时数据库就是pi数据库了,现在最猛的,而且他的很多代码都是开源的
2,StormSparkHadoop三个大数据处理工具的区别和联系
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点。Storm由java和clojure写成,storm的优点是全内存计算,因为内存寻址速度是硬盘的百万倍以上,所以storm的速度相比较hadoop非常快。hadoop是实现了mapreduce的思想,将数据切片计算来处理大量的离线数据数据。hadoop处理的数据必须是已经存放在hdfs上或者类似hbase的数据库中,所以hadoop实现的时候是通过移动计算到这些存放数据的机器上来提高效率。hadoop 当前大数据管理标准之2113一,运用在当前很多商业应用系统。可以轻松地集成结构化、半结构化甚5261至非结构化数据集还是离线处理,4102批处理比较多,用的比较广的是hive
storm 用于处理高速、大型数据流的分布1653式实时计算系统。内为hadoop添加了可靠的实时数据处理功能
spark基于内存的,吞吐量比容storm大一点。而且spark集成的sparksql,mllib,graph貌似比较方便 !
3,MPP 与 Hadoop是什么关系
NUMA全称为Non-Uniform Memory Access,是主流服务服务器为了提高SMP的可扩展性而采用的一种体系结构。主流服务器一般由多个NUMA节点组成,每个NUMA节点是一个SMP结构,一般由多个CPU组成,并且具有本地内存和IO设备。NUMA节点可以直接访问本地内存,也可以通过NUMA互联模块访问其他NUMA节点的内存,但是访问本地内存的速度远远高于远程访问速度,因此,开发程序要尽量减少不同NUMA节点之间的信息交互。 MPP是一种海量数据实时分析架构。 MPP作为一种不共享架构,每个节点运行自己的操作系统和数据库等,节点之间信息交互只能通过网络连接实现。MPP架构目前被并行数据库广泛采用,一般通过scan、sort和merge等操作符实时返回查询结果。目前采用MPP架构的实时查询系统有EMC Greenplum、HP Vertica和Googl www.jdjdzj.com e Dremel,这些都是实时数据处理领域非常有特点的系统,尤其是Dremel可以轻松扩展到上千台服务器,并在数秒内完成TB级数据的分析。 Hadoop作为一个开源项目群本身和MPP并没有什么直接关系,Hadoop中的子项目MapReduce虽然也是做数据分析处理的,但是一般只适用于离线数据分析,区别与MPP较为明显。因为Map和Reduce两个过程涉及到输出文件的存取和大量网络传输,因此往往达不到实时处理的要求。与MapReduce 相似的系统还有Microsoft Dryad和Google pregel。 综上所述,NUMA是一种体系结构,MPP是一种实时海量数据分析架构,而Hadoop是一个关于数据存储处理的项目群,其中的MapReduce是一种离线海量数据分析架构。 实测对比GreenPlum和Hive,GP比Hive性能高出至少一个数量级,但是大部分场景下,依然是秒级甚至分钟级的延迟,距离具体通常意义的实时毫秒级,差距巨大。 另外说一句,广义的Hadoop包括 Impala, Presto | Distributed SQL Query Engine for Big Data 这些MPP架构的SQL引擎。Hadoop社区还在持续发展,Spark还在持续给人们带来惊喜,开源软件的迷人之处也在于此。
4,Sun Grid Engine 和 hadoop 是什么关系
就我的了解SGE大致相当于Hadoop-YARN,多用于超级计算机集群的管理。Hadoop的最大贡献在于HDFS解决了,分布式文件系统,和Google的GFS一样。SGE好像没有强调这一点,而且超级计算机大多数都没有本地磁盘,可能也不需要文件系统管理吧。说白了就是不实用~numa全称为non-uniform memory access,是主流服务服务器为了提高smp的可扩展性而采用的一种体系结构。主流服务器一般由多个numa节点组成,每个numa节点是一个smp结构,一般由多个cpu组成,并且具有本地内存和io设备。numa节点可以直接访问本地内存,也可以通过numa互联模块访问其他numa节点的内存,但是访问本地内存的速度远远高于远程访问速度,因此,开发程序要尽量减少不同numa节点之间的信息交互。 mpp是一种海量数据实时分析架构。 mpp作为一种不共享架构,每个节点运行自己的操作系统和数据库等,节点之间信息交互只能通过网络连接实现。mpp架构目前被并行数据库广泛采用,一般通过scan、sort和merge等操作符实时返回查询结果。目前采用mpp架构的实时查询系统有emc greenplum、hp vertica和googl l,这些都是实时数据处理领域非常有特点的系统,尤其是dremel可以轻松扩展到上千台服务器,并在数秒内完成tb级数据的分析。 hadoop作为一个开源项目群本身和mpp并没有什么直接关系,hadoop中的子项目mapreduce虽然也是做数据分析处理的,但是一般只适用于离线数据分析,区别与mpp较为明显。因为map和reduce两个过程涉及到输出文件的存取和大量网络传输,... numa全称为non-uniform memory access,是主流服务服务器为了提高smp的可扩展性而采用的一种体系结构。主流服务器一般由多个numa节点组成,每个numa节点是一个smp结构,一般由多个cpu组成,并且具有本地内存和io设备。numa节点可以直接访问本地内存,也可以通过numa互联模块访问其他numa节点的内存,但是访问本地内存的速度远远高于远程访问速度,因此,开发程序要尽量减少不同numa节点之间的信息交互。 mpp是一种海量数据实时分析架构。 mpp作为一种不共享架构,每个节点运行自己的操作系统和数据库等,节点之间信息交互只能通过网络连接实现。mpp架构目前被并行数据库广泛采用,一般通过scan、sort和merge等操作符实时返回查询结果。目前采用mpp架构的实时查询系统有emc greenplum、hp vertica和googl l,这些都是实时数据处理领域非常有特点的系统,尤其是dremel可以轻松扩展到上千台服务器,并在数秒内完成tb级数据的分析。 hadoop作为一个开源项目群本身和mpp并没有什么直接关系,hadoop中的子项目mapreduce虽然也是做数据分析处理的,但是一般只适用于离线数据分析,区别与mpp较为明显。因为map和reduce两个过程涉及到输出文件的存取和大量网络传输,因此往往达不到实时处理的要求。与mapreduce 相似的系统还有microsoft dryad和google pregel。 综上所述,numa是一种体系结构,mpp是一种实时海量数据分析架构,而hadoop是一个关于数据存储处理的项目群,其中的mapreduce是一种离线海量数据分析架构。 实测对比greenplum和hive,gp比hive性能高出至少一个数量级,但是大部分场景下,依然是秒级甚至分钟级的延迟,距离具体通常意义的实时毫秒级,差距巨大。 另外说一句,广义的hadoop包括 impala, presto | distributed sql query engine for big data 这些mpp架构的sql引擎。hadoop社区还在持续发展,spark还在持续给人们带来惊喜,开源软件的迷人之处也在于此。
5,现在可以免费商用的数据库都有哪些
1.IBM 的DB2 作为关系数据库领域的开拓者和领航人,IBM在1997年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。 2. Oracle Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。 3. Informix Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是InformixSE(StandardEngine)。 4. Sybase Sybase公司成立于1984年,公司名称“Sybase”取自“system”和 “database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,率先在Sybase SQLServer 中实现。oracle集群oracle rac是业界最流行的产品。其架构的最大特点是共享存储架构(shared-disk),整个rac集群是建立在一个共享的存储设备之上的,节点之间采用 高速网络互连。在 oracle rac 环境中,每个 oracle 数据块都被赋予一个(且只有一个)“主”oracle rac 节点。该 oracle rac 节点的全局缓存服务 (gcs) 负责管理对这些数据块集的访问。当其中一个 oracle 节点需要访问某个 oracle 数据块时,它必须首先与该数据块协商。然后,该主节点的 gcs 或者指示请求的 oracle 节点从磁盘中获取该数据块,或者指示该oracle 数据块的当前持有者将被请求的数据块发送到请求节点。oracle 尝试跨所有 rac 节点统一分发该数据块的所有权。在 oracle rac 环境中,数据块大致相等的所有节点都将被指定为主节点。(如果 oracle rac 节点数是 oracle 数据块数的约数,则所有 rac 节点都是具有同样数量的数据块的主节点。)mysql集群mysql cluster和oracle rac完全不同,它采用shared-nothing架构。整个集群由管理节点(ndb_mgmd),处理节点(mysqld)和存储节点(ndbd)组 成,不存在一个共享的存储设备。mysql cluster主要利用了ndb存储引擎来实现,ndb存储引擎是一个内存式存储引擎,要求数据必须全部加载到内存之中。数据被自动分布在集群中的不同存 储节点上,每个存储节点只保存完整数据的一个分片(fragment)。同时,用户可以设置同一份数据保存在多个不同的存储节点上,以保证单点故障不会造成数据丢失。mysql cluster的优点在于其是一个分布式的数据库集群,处理节点和存储节点都可以线性增加,整个集群没有单点故障,可用性和扩展性都可以做到很高,更适合 oltp应用。但是它的问题在于:1.ndb存储引擎必须要求数据全部加载到内存之中,限制比较大,但是目前ndb新版本对此做了改进,允许只在内存中加 载索引数据,数据可以保存在磁盘上。2.目前的mysql cluster的性能还不理想,因为数据是按照主键hash分布到不同的存储节点上,如果应用不是通过主键去获取数据的话,必须在所有的存储节点上扫描, 返回结果到处理节点上去处理。而且,写操作需要同时写多份数据到不同的存储节点上,对节点间的网络要求很高。分布式数据库拆分数据库分片sharding 不是一个某个特定数据库软件附属的功能,而是在具体技术细节之上的抽象处理,是水平扩展(scale out,亦或横向扩展、向外扩展)的解决方案,其主要目的是为突破单节点数据库服务器的 i/o 能力限制,解决数据库扩展性问题。把热度高的数据划分开来,使用配置刚好的硬件,提高访问速度,增强用户体验 把不同的用户的数据根据用户的id放到不同的数据库中,不同用户对应的交易数据也跟着到不同的数据库;之后可以把交易完成和正在交易的数据库分开。一个全国经济信息系统,可以按照不同地区把不同数据放到不同数据库中,随着时间增加数据也会越来越大,到时还可以工具年份在重新划分数据库。一个大中型的电子商的电子商务网站一定会遇到数据量巨大的问题,可以根据用户对象或者使用和被使用的数据进行分片。这样避免了在一个库中数据膨胀而带来的瓶颈。在数据库分片时最好分到不同的服务器中,或者不同的存储中,避免磁盘竞争 数据库分片存在比较大问题就是人查询或者统计涉及到跨库就比较麻烦。特别是join时如果涉及到多个节点,将非常困难,应该尽量避免。数据库水平分片读写分离读写分离架构利用了数据库的复制技术,将读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。quest shareplex就是比较牛的同步数据工具,听说比oracle本身的流复制还好,mysql也有自己的同步数据技术。mysql只要是通过二进制日志来复制数据。通过日志在从数据库重复主数据库的操作达到复制数据目的。这个复制比较好的就是通过异步方法,把数据同步到从数据库。主数据库同步到从数据库后,从数据库一般由多台数据库组成这样才能达到减轻压力的目的。读的操作怎么样分配到从数据库上?应该根据服务器的压力把读的操作分配到服务器,而不是简单的随机分配。mysql提供了mysql-proxy实现读写分离操作。不过mysql-proxy好像很久不更新了。oracle可以通过f5有效分配读从数据库的压力。 上面说的数据库同步复制,都是在从同一种数据库中,如果我要把oracle的数据同步到mysql中,其实要实现这种方案的理由很简单,mysql免费,oracle太贵。好像quest shareplex也实现不了改功能吧。好像现在市面还没有这个工具吧。那样应该怎么实现数据同步?其实我们可以考虑自己开发一套同步数据组件,通过消息,实现异步复制数据。其实这个实现起来要考虑很多方面问题,高并发的问题,失败记录等。其实这种方法也可以同步数据到memcache中。听说oracle的stream也能实现,不过没有试过。通过ebay读写分离的结构图,通过share plex 近乎实时的复制数据到其他数据库节点,再通过f5特定的模块检查数据库状态,并进行负载均衡,io 成功的做到了分布,读写分离,而且极大的提高了可用性。目前读写分离技术比较多,比较有名的为amoeba,有兴趣的同学可以研究下。数据库缓存读写分离现在应用非常广泛,特别是时国内外大型网站,都使用的非常多,很多都是自己研发缓存系统,淘宝还开源了tair系统,有兴趣的可以研究下。比较有名的是memcached使用memcached最好的可能算facebook了。通过memcached分担读的操作,把常用的对象数据存储到memcached中,当有读操作过来时先访问memcached如果memcached没有该数据再从数据库获取,同时把数据放到memcached中,下次访问就可以直接访问memcached了。有一次在和一个朋友聊天时他们正在着手在线文档系统架构设计,由于文档访问压力非常大,每次请求数据库也非常大,由于大量的的文档数据在服务端和客户端传输,会经常造成网络堵塞。我建议他可以把文档分片,减少一次性大文件传输。再根据文档热度把一些文档保持到缓存中。其实文档也好,数据库也好,很多方法只要根据业务要求也可以达到异曲同工的之效。
文章TAG:
开源 实时 实时数据 实时数据库 开源实时数据库有哪些
312