Ignite 是否同时支持通读和sql索引?

Ignite 是否同时支持通读和sql索引?,ignite,Ignite,使用ApacheIgnite,您可以通过缓存进行读取,还可以通过SQL查询缓存 是否同时支持这两个功能?因为现在我已经看完了工作。这对我来说是有意义的,它有一个密钥,如果它被要求提供一个没有节点知道的密钥,那么它将转到db 但是,load方法仅为主键定义,不为任何其他字段定义。这是否意味着它与通读不兼容,或者需要实现其他方法才能获得完整的功能?SQL和通读可以同时使用,但查询总是只在内存中的数据上运行。对于通读,您需要知道密钥集,因此它仅适用于基于密钥的访问(get(),getAll(),等等)

使用ApacheIgnite,您可以通过缓存进行读取,还可以通过SQL查询缓存

是否同时支持这两个功能?因为现在我已经看完了工作。这对我来说是有意义的,它有一个密钥,如果它被要求提供一个没有节点知道的密钥,那么它将转到db


但是,load方法仅为主键定义,不为任何其他字段定义。这是否意味着它与通读不兼容,或者需要实现其他方法才能获得完整的功能?

SQL和通读可以同时使用,但查询总是只在内存中的数据上运行。对于通读,您需要知道密钥集,因此它仅适用于基于密钥的访问(
get()
getAll()
,等等)。对于查询,您需要手动预加载数据(例如,使用
loadCache()
方法)


您也可以参考此处的讨论:

是的,您可以同时使用这两种语言,但首先您应该先了解它们的用法

通读:无论何时从缓存请求数据但数据不在缓存中,Ignite都可以自动从底层数据库加载数据,并将结果返回给用户,要获取数据,您可以使用诸如
cache.get(key)
cache.getAll()
之类的方法。有关更多信息,请使用此链接


SQL查询:第一个数据应该在缓存中才能使用SQL查询,SQL索引通过在该列上创建索引帮助您更快地查询。有关更多详细信息,请参阅

完整功能是什么意思?我指的是一个已通读并具有可通过SQL查询的索引的缓存。load方法基于主键,而不是任何其他字段,所以它如何能够查询另一个字段以读取数据库?这就是我所怀疑的。除非JCache接口提供了创建任意加载方法的机会,否则我不知道它是如何工作的。至于由于节点故障导致的数据丢失,您是否知道Ignite是否知道在SQL查询时重新加载丢失节点上的密钥?如果您丢失了数据,您仍然必须在运行查询之前手动加载数据。我建议使用备份来避免数据丢失。