您的位置:首页 > 数据库 > Oracle

Ignite内存计算平台与Oracle TimesTen Scaleout对比

2018-08-09 20:33 881 查看

1.产品介绍

Ignite

Ignite内存计算平台是一个高性能、集成化、混合式的企业级分布式架构解决方案,功能强大,有先进的集群管理功能,对于分布式内存数据库、流处理技术、分布式计算、分布式服务、分布式数据结构、持久化、Hadoop和Spark加速等功能,提供了广泛的支持,用于大规模的数据处理,比传统的基于磁盘或闪存的技术在性能上有指数级的提升。最新的版本在基于ZooKeeper的发现机制基础上,支持扩展至上千个节点。该软件由美国GridGain公司开发,于2014年将绝大部分功能捐赠给Apache基金会,命名为Ignite,目前为Apache基金会的顶级项目,GridGain公司还提供Ignite的企业版,具体可以根据需要进行选择。

Oracle TimesTen Scaleout

TimesTen Scaleout是Oracle TimesTen 18.1版本的一个新的产品分支,是Oracle第一个商用关系型内存分布式数据库,支持分布式,横向扩展。这种新的体系结构使TimesTen内存数据库能够扩展至几十台主机,达到数百TB的容量,并且每秒支持数百万次事务,而无需手动数据库分片或应用程序分区,特别适合有着高并发、高吞吐量事务处理需求的业务场景。

2.产品对比

基本属性

序号对比项目IgniteTimesTen Scaleout
1是否支持开源Ignite本身为Apache2.0协议开源,还有企业版GridGain商业软件
2技术支持有开源社区技术支持,也有商业技术支持商业技术支持
3线性扩展支持,使用ZooKeeper的发现机制,支持扩展至上千个节点。支持,最多扩展至64个节点
4内存分布式数据库内存分布式数据库是Ignite的主打功能之一。是Oracle第一个商用的内存分布式数据库。之前的TimesTen为非分布式架构
5扩展功能Ignite基于自己特有的分布式架构,开发了完整的企业级分布式架构解决方案,包括分布式内存数据库、流处理技术、分布式计算、分布式服务、分布式数据结构、NoSQL数据库集成、Hadoop和Spark加速等作为Oracle的商用内存分布式数据库产品,定位明确,功能专注
6部署模式支持多种部署模式,支持独立部署,嵌入式部署,也可以部署在云环境中,对Kubernetes等新技术也有广泛的支持支持嵌入式和独立部署,可以脱离Oracle独立部署为内存分布式数据库。安装配置较为复杂,对于新的技术,云环境等支持较差。
7客户端协议支持SQL、ODBC/JDBC、除了Java还支持.NET平台,也支持Python、Ruby、PHP或者NodeJS,也可以考虑使用Ignite的二进制客户端协议支持SQL和PL/SQL、支持ODBC/JDBC、OCI、ODP .NET,另外许多开源数据库API和适配器也可以与TimesTen一起使用,包括 PHP、node.js、Ruby、Python、Go、R和REST等
8监控等企业级功能企业版有完善的监控管理工具、安全、滚动更新、数据中心复制等功能,有完善的图形界面。Ignite本身提供命令行以及部分API,可以进行简单的监控方便运维。提供命令行界面、图形界面、存储过程、API调用等多种形式的相关支持。
9开发支持提供了各种可能的方式方便开发,具体代码改动工作量,取决于架构设计模式以及软件使用方式。已有的代码可能改动较多,也可能改动很少。对应用开发透明,可以轻易地将TimesTen部署进已有的系统中,代码改动较少。
10多平台支持支持常见操作系统平台和CPU架构支持常见操作系统平台和CPU架构
11综合成本综合成本较低,技术支持有开源社区技术支持,也可以购买商业技术支持。Oracle的综合成本高昂,包括软件授权费、技术支持费、培训费用等
12成熟度目前以每季度发布一个版本的速度快速迭代。TimesTen有近20年的历史,但是TimesTen Scaleout为Oracle的第一款商用内存分布式数据库产品。
内存分布式数据库

序号对比项目IgniteTimesTen Scaleout
1SQL支持支持兼容ANSI-99的SQL标准,支持DDL、DML语句。支持兼容ANSI-99的SQL标准,支持DDL、DML语句,透明支持Oracle的相关技术
2事务不完整,在键值API层次支持ACID事务,基于经过一阶段提交优化后的二阶段提交机制。SQL层,仅支持原子性。支持完整的ACID事务、多语句事务、约束和全局二级索引。
3数据库支持支持提供JDBC/ODBC协议的传统关系型数据库,包括Oracle,也包括MySQL等其他数据库。只支持Oracle。
4数据同步支持数据库的通读和通写,支持多种数据同步方式,提供开发人员接口,自定义能力强。有非常完善的数据同步方式。
5故障恢复基于WAL和检查点等相关技术,有完善的故障恢复机制。同时也支持通过复制、备份等机制提高可用性。TimesTen有事务日志和检查点文件存放在磁盘上。当系统重启或者意外宕机,内存数据库可以从检查点文件和事务日志中得到恢复。另外,还可以通过复制技术来提高可用性。
6数据库模型键值存储,通过H2引擎提供关系型功能。关系型数据库
7并置处理通过将计算带到数据实际驻留的服务端节点,会在数据实际存储的地方执行高级的业务逻辑或者分布式SQL,甚至关联,避免了昂贵的序列化和网络开销不支持
8索引支持支持
9缓存维护操作使用标准DDL语法,添加了部分专有属性。专有的CREATE CACHE等语法,需要一段时间的学习。
10开发工具支持JDBC协议的工具,都可以接入Ignite。Oracle SQL Developer对TimesTen有更好的支持
11开发便利性Ignite为常见的、主流开发框架提供了集成的支持,包括Spring、Hibernate、MyBatis、Spring Data JPA等等。仅提供JDBC/ODBC等标准协议的支持。
12数据预热如果开启了原生持久化,系统重启无需预热数据。不支持
扩展特性

在内存分布式SQL数据库功能之外,Ignite相比TimesTen,还提供了大量的扩展特性,比如:

分布式服务
:分布式服务可以在集群中任意部署自定义的服务,可以实现和部署任意服务,比如自定义计数器,ID生成器,分级映射等;

数据注入和流计算
:Ignite流式计算可以以可扩展和容错的方式处理连续不中断的数据流。可以与主要的流处理技术和框架进行集成,比如Kafka、Camel、Storm或者JMS等,它们为基于Ignite的架构带来非常强大的功能;

分布式计算
:分布式计算是通过并行处理的方式来获得更高的性能,更低的延迟以及线性可扩展性,Ignite提供了一组简单的API,在集群内的多台计算机中执行分布式计算和数据处理,该功能针对传统的数据库存储过程,形成了完整的替代方案;

分布式数据结构
:Ignite以分布式的形式支持基于
java.util.concurrent
框架的大部分数据结构。比如,可以在一个节点上使用
java.util.concurrent.BlockingQeque
加入一些东西,然后在另一个节点上获取它。或者有一个分布式的ID生成器,它可以保证所有节点上的ID唯一性;

消息和事件
:Ignite提供了集群范围的高性能的消息功能,支持基于发布-订阅以及直接点对点通信模型的数据交换。当在分布式网格环境中发生各种事件时,Ignite的分布式事件功能可以使应用收到通知。可以自动地收到集群内的本地和远程节点上发生的任务执行、读写和查询操作的通知;

机器学习
:Ignite的机器学习是一套简单、可扩展以及高效的工具,可以构建可预测的机器学习模型,而不需要昂贵的ETL;

大数据组件支持
:Ignite为Apache体系的很多技术提供了广泛的支持,包括与Apache旗下的NoSQL数据库集成,比如Cassandra等,为Hadoop和Spark进行加速等。

3.总结

如果将Ignite作为一个内存分布式数据库,那么从功能性来说,与Oracle的TimesTen Scaleout产品基本对等,TimesTen具有的功能,Ignite大体都有,但是TimesTen Scaleout作为一个专业的内存分布式数据库,在部分功能的细节设计上,在与Oracle产品的功能整合上,做的更好。但就Ignite来说,它不仅仅是一个内存分布式数据库,在已有的系统中,如果引入了Ignite,相当于引入了一个多功能的数据处理平台,为已有系统的未来发展和演进,提供了更多的可能,会极大地增强已有系统的扩展性,保护用户原有的投资。

而如果引入了Oracle的TimesTen软件,会进一步增强与Oracle的绑定,不管是从行业发展的趋势来说,还是从降低大型企业的IT支出成本来说,TimesTen都未必是最佳的选择。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息