Sql 查询 Ignite CacheStore

Sql query over Ignite CacheStore

我有一个带有 cachestore 的缓存,由 CacheJdbcPojoStoreFactory 构建。问题是:当我尝试查询缓存时,它似乎只在内存中运行(在这种情况下不应用 Read-Through)。我希望它能查看内存是否包含。如果没有,那么它应该查询数据库(但在那种情况下,缓存永远不会知道它需要的所有数据是否都位于内存中但也许索引可以提供那么快)。

我是不是遗漏了什么或者这是它的行为?

感谢

这是正确的行为。 SQL 查询不进行通读,因为在键值存储中只能通过键进行通读,这对于 SQL 是不可能的,因为所需的键集是未知的。

话虽如此,您需要在执行查询之前将查询所需的所有数据都存储在内存中。您可以使用 loadCache() 方法将数据批量加载到缓存中。有关详细信息,请参阅此页面:https://apacheignite.readme.io/docs/data-loading#ignitecacheloadcache

另外 GridGain 正在开发一项新的企业功能,该功能将允许完全实现您所描述的,但具有专有的底层磁盘存储。这对于抽象的持久存储仍然是不可能的,比如关系数据库。