首页 文章

了解Apache Ignite的分布式连接

提问于
浏览
3

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

不确定的是,使用亲和力搭配功能来配置我们的数据真的很难......如下所述:https://apacheignite.readme.io/docs/affinity-collocation

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

另外,我想知道非搭配分布式连接和spark sql之间的性能 .

2 回答

  • 3

    我想补充说,如果你使用分布式非并置模式进行SQL查询,那么这并不意味着数据将一直被愚蠢地移动 . 引擎将尽最大努力优化执行,甚至可能导致根本没有数据移动 . 但是,它取决于一种查询以及数据在整个群集中的传播方式 .

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

    我确实认为非并置Ignite查询的性能仍然比Spark SQL引擎的性能更好,因为Ignite允许您索引数据而Spark不是必需的 .

  • 2

    你是对的,非并置连接会导致许多数据移动 . http://apacheignite.gridgain.org/docs/sql-queries#distributed-joins

    Ignite尝试使用所有可用方式减少不必要的数据移动 . 亲和性配置,复制高速缓存,近高速缓存,指数,内存数据存储 .

    此外,如果您已经使用Spark,则可以尝试通过Ignite支持它以提高性能 . http://insidebigdata.com/2016/06/20/apache-ignite-and-apache-spark-complementary-in-memory-computing-solutions/

相关问题