分享

Apache Ignite——新一代数据库缓存系统

fc013 发表于 2015-10-1 08:09:18 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 0 12786
本帖最后由 fc013 于 2015-10-1 08:11 编辑

问题导读:


1.Apache Ignite的特点有哪些?
2.Apache Ignite怎样执行SQL查询?








飞速增长的数据需要大量存储,对这些数据的管理也不是一件容易的事。但相比于存储和管理,如何处理数据才是开发人员真正的挑战。对于TB级别数据的存储和处理通常会让开发人员陷入速度、可扩展性和开销的矛盾困境中。近日,Dmitriy Setrakyan在Dzone上撰文,为大家介绍了新一代数据库缓存系统Apache Ignite,由OneAPM工程师编译。

以下为译文

将数据存储在缓存中能够显著地提高应用的速度,因为缓存能够降低数据在应用和数据库中的传输频率。Apache Ignite允许用户将常用的热数据储存在内存中,它支持分片和复制两种方式,让开发者可以均匀地将数据分布式到整个集群的主机上。同时,Ignite还支撑任何底层存储平台,不管是RDBMS、NoSQL,又或是HDFS。

560908b2016ac111.jpg

在集群配置好之后,数据集增加只需在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查询示例:

[mw_shl_code=java,true]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));
}[/mw_shl_code]

小结

Apache Ignite是一个聚焦分布式内存计算的开源项目,它在内存中储存数据,并分布在多个节点上以提供快速数据访问。此外,可选地将数据同步到缓存层同样是一大优势。最后,可以支持任何底层数据库存储同样让 Ignite成为数据库缓存的首先。
想要了解更多信息、文档、示例,请移步Apache Ignite官网。




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条