理解ApacheIgnite的分布式连接

理解ApacheIgnite的分布式连接,ignite,Ignite,我们正在探索在我们的项目中使用ApacheIgnite。基本上,我们有几十个oracle表。我们希望将每个表加载到Ignite缓存中,然后在这些缓存之间进行连接。我们的表之间有许多连接(因此缓存之间会有许多分布式连接) 不确定的是,使用亲和性搭配特征来搭配数据可能真的很难。。。如下所述: 所以,我想问一下,如果缓存中的数据没有并置,那么Ignite分布式连接是否支持这一点(我们使用的是Ignite 1.7.0)?我可以想象在进行连接时会有很多数据移动(这与Hadoop上的SQL非常相似,比如H

我们正在探索在我们的项目中使用ApacheIgnite。基本上,我们有几十个oracle表。我们希望将每个表加载到Ignite缓存中,然后在这些缓存之间进行连接。我们的表之间有许多连接(因此缓存之间会有许多分布式连接)

不确定的是,使用亲和性搭配特征来搭配数据可能真的很难。。。如下所述:

所以,我想问一下,如果缓存中的数据没有并置,那么Ignite分布式连接是否支持这一点(我们使用的是Ignite 1.7.0)?我可以想象在进行连接时会有很多数据移动(这与Hadoop上的SQL非常相似,比如Hive或Spark SQL)


另外,我想知道非并置分布式联接和spark sql之间的性能。

你说得对,非并置联接会导致许多数据移动

Ignite尝试使用所有可用方法减少不必要的数据移动。相似性配置、复制缓存、近缓存、索引、内存数据存储

此外,如果您已经使用了Spark,您可以尝试通过Ignite来支持它以提高性能。

我想补充一点,如果您对SQL查询使用分布式非并置模式,那么这并不意味着数据将一直被移动。引擎将尽最大努力优化执行,甚至可能根本不会导致数据移动。但是,这取决于查询的类型以及数据在集群中的分布方式

在任何情况下,我的建议都是尽可能多地配置数据,以便在其余场景中可以依赖性能最好的并置模式,并回退到非并置模式


我确实相信,非并置Ignite查询的性能仍将优于Spark SQL引擎的性能,因为Ignite允许您对数据进行索引,而Spark不这样做,这是非常重要的。

谢谢@dmagda。您的建议非常有用,我同意Ignite可能比sparksql有更好的性能,因为索引可以发挥作用。我将做一些测试来测试性能,并尽可能多地配置数据。感谢@andrey mashenkov的回复。他们是非常有用的向导。有许多选项可以提高性能。。。为了提高性能,我将尝试这些选项。