编者按】飞速增长的数据需要大量存储,对这些数据的管理也不是一件容易的事。但相比于存储和管理,如何处理数据才是开发人员真正的挑战。对于TB级 别数据的存储和处理通常会让开发人员陷入速度、可扩展性和开销的矛盾困境中。近日,Dmitriy Setrakyan在Dzone上撰文,为大家介绍了新一代数据库缓存系统Apache Ignite,由OneAPM工程师编译。
以下为译文
将数据存储在缓存中能够显著地提高应用的速度,因为缓存能够降低数据在应用和数据库中的传输频率。Apache Ignite允许用户将常用的热数据储存在内存中,它支持分片和复制两种方式,让开发者可以均匀地将数据分布式到整个集群的主机上。同时,Ignite还支撑任何底层存储平台,不管是RDBMS、NoSQL,又或是HDFS。
在集群配置好之后,数据集增加只需在Ignite集群中增加节点而不需要重启整个集群。节点数目可以无限增加,所以Ignite的扩展性是无穷的。在Ignite的配置上有下面这几个选项可供选择:
Write-Through和 Read-Through
在Write-Through模式中,缓存中的数据更新会被同步更新到数据库中。 Read-Through则是指请求的数据在缓存中不可用时,会自动从数据库中拉取。
Write-Behind Caching
Ignite 还提供了一种叫做Write-Behind Caching的数据库异步更新模式。默认情况下,Write-Through中每一次更新都会对数据库发起 一次请求。如果使用Write-Behind Caching后写,对缓存的更新会整合成批次然后再发送给数据库。这对改删频繁的应用来说可以达到相当的 性能提升。
自动化持久数据
Ignite提供了易用的schema映射工具,从而系统可以自动地与数据库整合。这一工具可以自动地连接数据库,并生成所有需要的XML OR-mapping配置以及Java域模型POJOs。
SQL查询
查询Ignite缓存很简单,使用的就是标准的SQL。Ignite支持所有的SQL函数、聚合和group操作,甚至支持分布式SQL JOINs。下面Ignite中一个SQL查询示例:
IgniteCache<Long, Person> cache = ignite.cache("mycache"); // ‘Select’ query to concatenate the first and last name of all persons. SqlFieldsQuery sql = new SqlFieldsQuery( "select concat(firstName, ' ', lastName) from Person"); // Execute the query on Ignite cache and print the result. try (QueryCursor<List<?>> cursor = cache.query(sql)) { for (List<?> row : cursor) System.out.println("Full name: " + row.get(0)); }
小结
Apache Ignite是一个聚焦分布式内存计算的开源项目,它在内存中储存数据,并分布在多个节点上以提供快速数据访问。此外,可选地将数据同步到缓存层同样是一大优势。最后,可以支持任何底层数据库存储同样让 Ignite成为数据库缓存的首先。
想要了解更多信息、文档、示例,请移步Apache Ignite官网。
http://www.csdn.net/article/2015-09-28/2825815
相关推荐
Apache Ignite是一款开源的内存数据网格系统,它提供了一个分布式内存计算平台,支持数据库缓存、实时分析以及复杂事件处理等功能。在MyBatis中,二级缓存是提高数据库访问性能的重要手段,它可以将SQL查询结果存储...
同时,Apache Ignite的内存数据库和SQL网格也能够提供高性能的数据处理能力。 在数据接入方面,跨节点ExecutorService与分布式内存缓存能够提高数据处理速度。同时,新方案调度解析任务也能够提高数据处理效率。在...
Apache Ignite是一款开源的内存计算平台,它提供了一系列高性能的数据处理服务,包括分布式数据存储、计算、服务以及数据流处理等。在Ignite中文开发手册中详细介绍了其核心概念、架构组件以及各种功能的使用方法。...
3. **缓存功能**:作为企业级缓存解决方案,Ignite可以与各种数据库配合,提供二级缓存服务,减少对后端数据库的访问压力,提高应用性能。 4. **SQL支持**:Ignite支持SQL查询,用户可以直接使用SQL语句操作分布式...
Apache Ignite是一款开源的内存数据网格系统,由Apache软件基金会维护。它主要设计用于提供高性能、低延迟的数据处理,尤其适合大数据和实时分析场景。在2.15.0版本中,Ignite提供了多种功能和优化,使得它成为一个...
Apache Ignite内存计算介绍.pdf
Processing events & streaming data, integrate Apache Ignite with other frameworks like Storm, Camel, etc. Using distributed computing for building low-latency software. Developing distributed ...
根据提供的文件信息,我们可以了解到关于“High Performance in-memory computing with Apache Ignite”这本书的内容以及Apache Ignite的基础知识点。下面将详细介绍这些知识点。 首先,我们来解释Apache Ignite是...
High Performance in-memory computing with Apache Ignite.epub
* 分布式文件系统:Apache Ignite的分布式文件系统可以提供高性能的数据存储和访问。 知识点4: Apache Ignite在产险大数据中的应用 在产险大数据中,Apache Ignite可以应用于以下几个场景: * 实时数据分析:...
Spring Boot与Apache Ignite的集成及其持久的内存和基于缓存的sql查询 展示如何将apache ignite与spring boot集成在一起,以及使用持久性内存功能和sql查询来覆盖内存缓存中的ign的案例 将Spring Boot与Apache ...
4. 缓存机制:Ignite作为数据库缓存系统,可以与多种关系型数据库集成,如MySQL、Oracle等,提供透明的数据缓存层,加速读写操作。 5. SQL支持:Ignite提供了SQL查询支持,用户可以通过标准SQL语句操作内存中的数据...
We hope that High-performance in-memory computing with Apache Ignite will be the go-to guide for architects and developers: both new and at an intermediate level, to get up and to develop with as ...
与传统的依赖磁盘存储的数据库系统相比,Apache Ignite能够显著提升大数据集上的事务处理和计算性能,性能提升数量级。Ignite以内存为中心,提供了一系列组件来支持应用程序的性能提升和扩展能力。 Ignite的关键...
Apache Ignite是一款高性能、分布式内存数据网格系统,它支持数据缓存、计算网格、服务网格以及流处理等多种功能。在v2.9.1版本中,我们可以通过源码深入理解其内部实现机制和优化策略。这个压缩包包含了Ignite源码...
Apache Ignite是一款高性能、分布式内存计算平台,常用于构建数据密集型应用,提供数据库缓存、实时分析以及复杂事件处理等功能。在版本2.16.0中,它继续优化了内存数据组织和管理,提升了系统的性能和稳定性。以下...
Apache Ignite是一款开源的内存数据网格(In-Memory Data Grid,IMDG)系统,由Apache软件基金会维护。它提供了一种高性能、高可用性、分布式的数据存储和计算解决方案,广泛应用于缓存、实时分析、流处理等场景。...
这个“Apache Portable Runtime sdk——all”包含了针对Visual Studio 2015和Windows SDK 8.1的开发环境,支持x86和x64架构,包括了APR库、APR-Util库、APR-Iconv库以及Expat库。 1. **APR (Apache Portable ...
Apache Ignite是一个专注于内存的分布式数据库和缓存平台。 该存储库旨在查看和观察Spring Data与Apache Ignite集成的用法。 该项目由Maven组成。 为了实现Ignite与Spring Data之间的交互,将以下依赖项与其他...