当前位置:首页 » 数据仓库 » 新一代分布式内存数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

新一代分布式内存数据库

发布时间: 2023-03-08 05:16:47

❶ 开源内存数据库有哪些

问题一:内存数据库主流的有哪些,并给出各自特点! 这里介绍一些大型的市场占有率比较高的内存数据库,也是业界响当当的―SAP HANA、Oracle Exalytics、Orale TimesTen、IBM SolidDB,可以说他们之间没有说是哪个最好,主要还是看使用的场景和具体的需求,各自特点如下:
SAP HANA(High-Performance Analytic Appliance)是 SAP 公司于 2011 年推出的基于 内存计算技术,面向企业分析性应用的产品。左图 的系统架构示意图中可以看出, HANA 产品主要包括内存计算引擎和 HANA 建模工具两部分。它支持从 SAP 商务套件中 同步更新业务数据,或者从 SAP BW(SAP 商务智能产品)和其他第三方数据源中批量导 入数据,在 HANA 中进行运算后,提供给 SAP BI 客户端或者其他第三方展现工具进行分 析和展现。
Oracle Exalytics 内存分析一体机是面向分析的集成设计系统,可以无限制提供最佳可 视化分析和更智能的分析应用程序。 如图 所示, Oracle Exalytics 内存分析一体机的产品架构包括 3 个部分: 内容分析 硬件、内存分析软件和经过优化的 Oracle 商务智能基础套件(Oracle BI Foundation)。内存分析硬件部分是一台为基于内存计算的商务智能而特别优化的服务器,具有提供 强劲计算能力的 40 核中央处理器,高达 1TB 的内存以及快速的网络. 内存分析软件部分的核心是 Oracle TimesTen 内存数据库。它是为 Exalytics 平台而特 别优化的内存分析数据库,包括了很多 Oracle Exalytics 平台特有的功能。Oracle 商务智能基础套件部分受益于 Oracle Exalytics 内存分析一体机的大容量内存、 处理器、并发处理能力、存储、网络、操作系统、内核和系统配置等,可以提供明显优于传统软件的查询响应性、用户可用性和 TCO。
Oracle 内存数据库TimesTen 是一个基于内存计算的关系数据库, 提供了响应时间极 短且吞吐量极高的应用程序,可满足各行业应用程序的需求。 TimesTen 是一个可嵌入到应用程序中的数据库, 通过消除进程间通信和网络 开销,进一步提高数据库操作的性能。Oracle 内 存 数 据 库 TimesTen 使 用 行 级 锁 定 和 提 交 后 读 取 (mitted-read) 隔离,通过事务日志记录与数据库检查点相结合实现了基于磁盘的持久 性和可恢复性。TimesTen 通常与多用户和多线程应用程序一起部署,应用程序直接通过 JDBC、 ODBC、 Oracle 调用接口、 Pro*C/C++ 和Oracle PL/sql 编程接口, 使用标准SQL 访问TimesTen 数据库。若运行在不同服务器上的多个应用程序共享一个数据库时,则使 用常规的客户端/服务器访问方式。
IBM solidDB 是一个内存数据库,专为获取极高的速度和可用性而进行优化。如图 所示,IBM solidDB 既可以单独部署作为独立的数据库支持应用程序,也可 以部署为其他关系型数据库的加速缓存以提高应用程序性能。solidDB Universal Cache 功能将这些数据库中存储的性能关键型数据 缓存到solidDB Universal Cache 中,加快领先关系数据库的速度。solidDB Universal Cache 功能使用检查点和事务日志将数据持久保存在 磁盘上......>>

问题二:开源的内存数据库都有哪些 1.最简单的方法:
public static String reverse1(String str)
{
return new StringBuffer(str).reverse().toString();
}
2.最常用的方法:
public static String reverse3(String s)
{
char[] array = s.toCharArray();
String reverse = ; 注意这是空串,不是null
for (int i = array.length - 1; i >= 0; i--)
reverse += array[i];
return reverse;
}

问题三:开源内存数据库有几种啊? 常见的有FastDB、SQLite、Berkeley DB、GigaBASE,H2等

问题四:几种常用的开源内存数据库性能比较 本人理解:orcal速度快但是维护不方便吗,费钱。mysql速度可以,维护方便,交orcal来说易上手。db2:大

问题五:开源的内存数据库有哪些支持SQL基准 选择数据库实例―右键属性―选择【内存】选择页―修改内存―确定

问题六:C/C++开发的开源的分布式内存数据库有哪些 1.最简单的方法:
public static String reverse1(String str)
{
return new StringBuffer(str).reverse().toString();
}
2.最常用的方法:
public static String reverse3(String s)
{
char[] array = s.toCharArray();
String reverse = ; 注意这是空串,不是null
for (int i = array.length - 1; i >= 0; i--)
reverse += array[i];
return reverse;
}

问题七:哪位达人用过关系型的内存数据库而且是开源的 关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。表与表之间的数据记录有关系。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关系型数据库通常包含下列组件: 客户端应用程序(Client) 数据库服务器(Server) Structured Query Language(SQL)Client端和Server端的桥梁,Client用SQL来向Server端发送请求,Server返回Client端要求的结果。现在流行的大型关系型数据库有IBM DB2、Oracle、SQL Server、SyBase、Informix、access、foxpro等。

问题八:C/C++开发的开源的分布式内存数据库有哪些 1.最简单的方法:public static String reverse1(String str){ return new StringBuffer(str).reverse().toString();}2.最常用的方法:public static String reverse3(String s) { char[] array = s.toCharArray(); String reverse = ; 注意这是空串,不是null for (int i = array.length - 1; i >= 0; i--) reverse += array[i]; return reverse; } 3.常用方法的变形: public static String reverse2(String s){ int length = s.length(); String reverse = ; 注意这是空串,不是null for (int i = 0; i 问题九:要求实时数据需要存储到内存库 有开源内存数据库吗 朋友您好,很高兴为您解答问题
请把问题补充完整
大家才能给你提供完善的建议
相信您在知道这个平台
一定会有满意的收获
真诚希望能够帮助您,如果满意请采纳,祝您好运常伴。

问题十:什么情况下用内存数据库 相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘 *** 问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其主拷贝或工作版本 常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。显然,它要求较大的内存量,但并非任何时刻整个数据库都存放在内存,即内存数据库系统还是要处理I/O。
内存数据库是以牺牲内存资源为代价换取数据处理实时性的,内存数据库和磁盘数据库都是当今信息社会里每个企业所必须的关系型数据库产品,磁盘数据库解决的是大容量存储和数据分析问题,而内存数据库解决的是实时处理和高并发问题。两者的存在是相辅相成的,内存数据库的事务实时处理性能要远强于磁盘数据库。但是相对的,他的数据安全方面还没有达到磁盘数据库比肩的地步。
内存数据库将物理内存作为数据的第一存储介质,而将磁盘作为备份。随着电信业务的发展,系统对实时性的要求和对业务灵活修改的要求非常高,在此种情况下对于内存数据库的需求也越来越高。磁盘数据库的做法是将数据存入内存中进行处理,这种方式的可管理性及数据安全可靠性都没有保障。而内存数据库正是针对这一弱点进行了改进。
实际上,内存数据库并不是一项时髦技术,其出现于上世纪60年代末,但由于市场的需求原因在90年代后期才开始发展。作为新一代数据库,Altibase产品已经走向混合型数据库,其版本Altibase 4.0已经有一套自带的磁盘数据库,用户一旦购买了Altibase的内存数据库,就无须再购买磁盘数据库。它把热数据(经常被使用的、访问比较高的、经常要运算的数据)放在内存数据库里,而把历史性数据放在磁盘数据库里,可为用户进一步减少投资。
对于内存数据库而言,可以将同样数据库的部分内容存放于磁盘上,而另一部分存放于内存中。用户可以选择将数据存储在内存表中以提供即时的数据访问。若访问时间不紧急或数据存于内存中所占空间过大时,用户可将这些数据存入磁盘表中。
比如,在手机用户开始拔打电话时,如果应用基于内存数据库技术的混合数据管理引擎,就通过内存表检索其服务选项并立即验证用户身份,而将通话清单和计费清单归档到磁盘表中。从而,达到了速度与资源使用的平衡。
内存数据库的技术,一个很重要的特点,是可以对内存中的数据实现全事务处理,这是仅仅把数据以数组等形式放在内存中完全不同的。并且,内存数据库是与应用无关的,显然这种体系结构具有其合理性。内存引擎可以实现查询与存档功能使用的是完全相同的数据库,同时内存表与磁盘表也使用的是完全相同的存取方法。存储的选择,对于应用开发者而言是完全透明的。
对于内存数据库而言,实现了数据在内存中的管理,而不仅仅是作为数据库的缓存。不像其它将磁盘数据块缓存到主存中的数据库,内存数据库的内存引擎使用了为随机访问内存而特别设计的数据结构和算法,这种设计使其避免了因使用排序命令而经常破坏缓存数据库性能的问题。通过内存数据库,减少了磁盘I/O,能够达到了以磁盘I/O 为主的传统数据库无法与其相比拟的处理速度。
因此,内存数据库技术的应用,可以大大提高数据库的速度,这对于需要高速反应的数据库应用,如电信、金融等提供了有力支撑。
由于把大多数数据都放在内存中进行操作,使得内存数据库有着比磁盘数据库高得多的性能表现,这一......>>

❷ Mycat和MySQL的区别

Mycat和MySQL的区别:

可以把上层看作是对下层的抽象,例如操作系统是对各类计算机硬件的抽象。那么我们什么时候需要抽象?假如只有一种硬件的时候,我们需要开发一个操作系统吗?

再比如一个项目只需要一个人完成的时候不需要leader,但是当需要几十人完成时,就应该有一个管理者,发挥沟通协调等作用,而这个管理者对于他的上层来说就是对项目组的抽象。

同样的,当我们的应用只需要一台数据库服务器的时候我们并不需要Mycat,而如果你需要分库甚至分表,这时候应用要面对很多个数据库的时候,这个时候就需要对数据库层做一个抽象,来管理这些数据库,而最上面的应用只需要面对一个数据库层的抽象或者说数据库中间件就好了,这就是Mycat的核心作用。

所以可以这样理解:数据库是对底层存储文件的抽象,而Mycat是对数据库的抽象。

❸ NewSQL分布式数据库发展策略讨论

作者 石默研

本文对新一代NewSQL分布式数据库发展策略中的普遍困扰进行讨论,包括云原生(Cloud Native)与本地部署(On Premise)、HTAP进展方向、分布式与单机需求等分布式数据库商业与技术发展中难以决策的问题。

1. 困扰

分布式NewSQL数据库近年来蓬勃兴起,其原因显而易见:切中了业务与数据量不断增长的用户对关系型数据库RDBMS需求,这在传统RDBMS到大数据的发展阶段中,有相当一段时间是空白。同时,随着互联网技术的不断发展与普及,用云计算模式满足IT需求似乎已经成为未来 社会 产业互联网发展的明确趋势,也就是说,有一种共识:不久的将来,绝大多数产业的IT服务是从公共的、行业的或者私有的、混合的云计算中心提供的。这一共识又带来了云原生(Cloud Native)概念与技术的兴起,而分布式NewSQL数据库自然也应该是云原生的,这决定了其相当多的产品设计决策应以符合这一趋势为原则。然而,在当今的现实中,满足业务与数据量不断增长的RDBMS需求的用户,与云原生的用户,除了互联网企业外,大多数情况下,并不重合,需要On-Premise部署的用户仍然占有很大比重,这就带来了第一个困扰:云原生(Cloud Native)与本地部署(On Premise)对产品发展要求的矛盾。

另一个困扰,是关于HTAP,即交易与分析混合负载。HTAP是当今非常火的一个概念与技术,在交易库上直接进行分析,而不再是将“数据从交易库搬下来,挪到另一个数据库中去”这样的繁琐过程。可以毫不夸张的说: 历史 上规模性企业IT复杂度的相当一部分,都来自于“搬数据”,这导致了数据采集、实时采集、全增量合并、数据传输、数据加载、数据建模、数据质量、数据标准、企业级元数据管理等繁杂多样的技术环节的产生,导致了企业数据分布、数据流向、数据模型、主数据、基础数据平台、ODS/数据仓库/数据集市、数据治理等复杂的数据架构设计优化领域,导致了由于多系统大规模数据搬迁而带来的如数据交换平台之类的复杂调度工程......。咋眼一看,感觉该企业的数据技术好厉害,相关各领域的技术产品好丰富,技术人员的相关技能也好受欢迎。但如果在交易库就能直接满足分析需求而不影响生产效能的话,这些复杂高级的技术环节不都成了“自己给自己造了一座山,还说自己爬的好辛苦”?然而,现实却是,问题并不这么简单,除了在交易库中进行分析会影响业务效能外,还有很多原因导致这一现象产生:交易库并不需要存储那么长的 历史 数据,而分析往往是需要建立在大量 历史 数据之上的;交易库的模型往往并不适合分析需求,多数情况下需要重要建模,如非常流行且价值不菲的各行业数仓主题模型;用于交易的OLTP数据库与用于分析的OLAP数据库,其技术体系完全不同;以及大型企业已固化的内部业务结构并没有留给交易/分析整合可实施的可行空间......等等。由于, 历史 积累的企业级数据体系相当复杂,HTAP的发明者迄今为止都没有系统表达完全替代数据分析需求、自顶而下重构企业数据体系的架构级策略,而是将产品重点定位在技术优化层面:在交易库上直接完成实时统计分析,满足高并发需求且不影响业务效能;或者是为实时分析统计/查询而建设的数据服务中间平台。然而,即使是暂时没有这种策略性的意向,在面向AP的产品具体研发中,又会发现明确的界限确实不好把握,随着一个个具体功能的不断完善,似乎假以时日,技术上也不是没有完全替代纯OLAP平台的可能性。那么,HTAP究竟如何定位呢?

再者就是规模化的分布式需求,与小规模的单机数据库需求(这里指逻辑上的单机)之间的矛盾:分布式数据库,自然而然是要应对规模化的数据管理需求的,长尾的小规模需求当然不应在产品设计考虑之列,同时,大炮轰苍蝇经常还打不好;然而,分布式NewSQL数据库又应该是云原生的,如果把云原生的业务含义理解为“全自助”,它应该以支持什么样的需求为主呢?现实看来,小规模长尾业务对云原生数据库的需求最起码应该是占据相当大的比重的。显而易见,如果是大规模的数据管理需求,即使是部署在云上,DBPaaS的“全自助”是其核心需求吗?这种规模化的业务,如果是云上的On-Premise又需要做出哪些方面的改变?从互联网与云计算发展的 历史 来看,“云自助”,其最核心的商业动机当然包括给用户侧的运维带来了方便,但更重要的可能是给云服务运营商应对海量长尾客户的安装与运维带来了极大的成本优势。这正如银行的小微及个人消费贷款都要走互联网线上模式,而重客、大客甚至中小企业信贷仍然是以线下为主的策略一样,本质是成本问题,而不是客户方便性问题。于是,矛盾显而易见:分布式是面向规模客户的,起码是中、大型客户,而云原生却有可能、最起码相当一段时间内是要以长尾客户为主要服务对象的。

以上困扰实质上,都涉及到了NewSQL分布式数据库的产品发展策略问题。

2. 讨论

问题是客观而又普遍的,但分析与应对策略往往包含主观因素:人们的一个决定与决策,很多情况下并不由严格推理而来,而是心中已经有一个答案,再来找理由支持它。这里的讨论或许也并不能例外。

首先,来看看Cloud Native与On Premise。云原生本应是数据库即服务,然而目前真正有规模化数据增长需求的NewSQL应用相当多的情况下却是付费On Premise与免费On Premise区别,很多互联网企业的应用也可能只是部署在云基础设施上而已,真正的云原生更多是一些实验性、尝试性的需求。但云原生数据库在公有云、行业云以及大型私有云上已经逐渐在形成一种意识上的共识,其商业前景不可限量。也就是说,未来的数字化转型进程中,产业互联网的数据库部署,会逐渐向云基础设施迁移,长在云上。它可能是公有云,也可能是行业云,也可能是私有云,它们都是被定义为云原生NewSQL数据库的市场范围。当然,肯定还会有相当一部分数据库长在云下,这也不用纠结,将其排除在云原生市场战略目标之外即可,就是说,不需要考虑这部分客户需求对产品规划的影响,因为前一部分的份额已经足够大了。这样看来,以云原生为目标进行产品规划的逻辑没有问题,不过,还是要明确一点:长在云上的数据库是不是一定符合我们对“云原生”的既有理解?这里认为,即使未来,在云上形成了产业互联网数据库市场的主体,需要“全自助”的数据库即服务可能也是以面向长尾客户最为迫切、必不可少并且是核心本质,而对中大型以上的需求,“全自助”的意义相对有限,同时比较而言商业模式的转变或者更关键些。那么,如果是以“长在云上”为市场目标,似乎可以将其定义为“广义的云原生”,同时,只要是“长在云上”,那么“云原生”概念中高弹性、高可用、低成本、快速迭代、存算分离等技术优势也都能方便获得。而对“云原生”策略中“云原生”一词的理解不同,对产品规划决策的影响也应该有所不同:一是目前被认为是On Premise的客户需求,或许也就是未来“云原生”主体市场的需求;二是NewSQL数据库关于云原生服务的产品策划,对用户侧“自助”水平的决策或许可以更灵活实用。高水平自助确实可以减轻客户对IT的依赖程度,但这里认为,云原生与用户自行在云上购买资源进行On-Premise部署相比,最关键的价值在于商业模式的改变,能自助多少,不一定是最重要的,因为成为云服务商后,运营运维的工作只会更多,责任可能会更大,甚至有时连IaaS的运维也需要PaaS服务商兜底。但从一个个客户的本地服务,变成集中化云服务,就已经是本质性的模式转变了。总之,需要就事论事,回到原点,仔细分析后决策,而不是用概念教条的判断,因为概念本身的定义并不见得准确对应实际的业务需求。

再来看看HTAP,对这个问题,正如在其它文章中表达过的一样,本文的观点较为明确。一是随着计算能力与架构的升级,从技术上讲,AP与TP的界限会越来越模糊;另外特别是在云原生的新世界里,数据库的这一特性又犹为重要,因为云原生的重要作用之一就是要让客户尽量摆脱对IT运维的依赖,将越来越多的精力集中到自己的业务发展上来;同时端到端的能力提升对云原生商业模式的贯彻也至关重要(需要仔细分析下目前DBPaaS的技术要求是否完全符合这一原点的、本质性的动力),过去与纯OLAP数据库的优势比较纠结在这里也可以得到正面支持;再者,既然架构上已经走向了AP,就很难做到在产品规划上时刻厘清纯AP与混合负载的需求后,再将前者排除在外。于是,以“混合负载满足部分AP需求”应该是由于投入与阶段性市场策略导致的阶段性产品规划,而长远来讲,以一套技术架构满足大多数需求,应该是云原生NewSQL数据库的追求。

接下来,就是关于规模化分布式与小规模单机需求的矛盾了。现在看来,经过上面的讨论,这一点已经不是什么问题了:因为“长在云上”、从分散服务向集中服务的商业模式转变就是指广义的云原生,而不一定要以小微的、迫切需要全自助的长尾为主流,那么,云原生NewSQL数据库仍然应以规模化分布式为其主体的需求方向,而小规模单机则暂时可以不做为重点来考虑。

最后指出一点,希望也能引发进一步的思考:我们所批判的主机,也声称自己是分布式架构,暂且不论其是否客观,但在现实中主机需要被替代的核心问题并不是有没有分布式,而是:一、扩展不灵活带来成本问题:“我只需要扩展一个节点,你却让我再买一台主机”;二、不自主可控;三、往往是软硬件结合的设计策略,包括内存、网络、存储与IO上的软硬融合设计,而这一点,是否需要云原生数据库从广义的定义出发进行学习参考,也是需要进一步讨论的。