我会问Ignite是否适合我的用例:
不确定Ignite SQLGrid是否适合此用例。
另外,我注意到IgniteRDD不是不可变的,IgniteRDD是否适合这个用例?也就是说,我首先将oracle中的数据加载到IgniteRDD中, 并使用新创建/更新的数据对IgniteRDD进行相应的更改到oracle?但看起来IgniteRDD不支持复杂的SQL?(聚合/加入/子查询)
答案 0 :(得分:2)
这是Ignite支持的基本用例之一。
可以使用this documentation section中涵盖的方法之一从Oracle预加载数据。
如果您计划首先更新Ignite中的数据并在之后传播到Oracle(这是首选方式),那么在直写/读取中使用Oracle作为CacheStore
是有意义的通过模式。 Ignite将确保将数据与持久层同步。此外,如果重新启动集群,它将从Oracle的pre-load data直截了当。
最后,您可以通过连接到Oracle GridGain Web Console以及Ignite缓存配置和POJO对象来利用map Oracle's scheme。
正如我所提到的,建议首先通过Ignite进行所有更新,这将使他们继续使用Oracle。但是,如果Oracle被其他不了解Ignite的应用程序更新,则需要以某种方式自行更新Ignite群集。 Ignite没有涵盖此用例的任何功能。但是,使用GridGain可以很容易地实现这一点,GridGain构建在Ignite之上,并且使用它Oracle Golden Gate Integration。
数据进入Ignite群集后,使用SQL Grid查询和/或更新您的数据。 SQL Grid引擎符合ANSI-99标准,并没有任何限制。
对于Ignite Shared RDD,它将数据存储在分布式Ignite缓存中。这就是为什么它与Spark原生RDD相反的可变性。共享RDD SQL功能完全相同 - 它只是SQL Grid上的一个API。