Apache Ignite 作为 Postgresql 表的透明缓存

Posted

技术标签:

【中文标题】Apache Ignite 作为 Postgresql 表的透明缓存【英文标题】:Apache Ignite as transparent cache for Postgresql tables 【发布时间】:2018-05-19 06:01:16 【问题描述】:

是否可以使用 Apache Ignite 作为 PostgreSQL RDBMS 中多个表的透明缓存并使用 Ignite SQL 查询该缓存?

例如这样:

应用程序(通过 SQL)---> Apache Ignite(如果未加载数据)---> Postgresql

我是 Ignite 的新手,不知道该怎么做,甚至有可能。

【问题讨论】:

【参考方案1】:

Ignite 的 SQL 仅适用于内存中的数据,因此您需要事先将数据加载到缓存中。换句话说,通读不适用于 SQL 查询。 从 2.1 版开始,Ignite 提供了其自定义的persistent store,允许对内存和磁盘中的数据运行 SQL 查询。

【讨论】:

【参考方案2】:

如果您在查询之前将数据预加载到缓存中,它将起作用。

您可以通过配置 CacheStore 并调用 IgniteCache#loadCache() 来实现。这是文档:https://apacheignite.readme.io/v2.3/docs/3rd-party-store#cachestore

另一个选项是启用readThrough 参数并使用缓存API。不幸的是,此选项对 Ignite SQL 没有影响,并且仅适用于缓存 API。

【讨论】:

以上是关于Apache Ignite 作为 Postgresql 表的透明缓存的主要内容,如果未能解决你的问题,请参考以下文章

Apache Ignite 学习

获取apache ignite缓存中的数据行数少于实际行数

Apache Spark + Ignite 集群瘦客户端

Apache Ignite 索引性能

Apache Ignite 改装 -- 服务异步化支持

在命令行上运行 Apache Ignite 时创建 Ignite 组件失败