Apache Ignite是否适合我的用例(加载oracle表进行缓存,在这些表之间进行连接,并反映对oracle数据的更改)

时间:2016-12-07 02:56:19

标签: apache-spark ignite

我会问Ignite是否适合我的用例:

  1. 将所有oracle表数据加载到Ignite缓存中,然后针对缓存中的数据执行各种SQL查询(聚合/加入/子查询)。
  2. 当oracle新创建数据或某些数据被更新时,有一些方法可以将这些数据插入缓存或更新缓存中的相应条目
  3. 当缓存关闭时,应该有某种方法从oracle恢复数据?
  4. 不确定Ignite SQLGrid是否适合此用例。

    另外,我注意到IgniteRDD不是不可变的,IgniteRDD是否适合这个用例?也就是说,我首先将oracle中的数据加载到IgniteRDD中, 并使用新创建/更新的数据对IgniteRDD进行相应的更改到oracle?但看起来IgniteRDD不支持复杂的SQL?(聚合/加入/子查询)

1 个答案:

答案 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。