如何在分区模式下在节点间执行空间连接查询?当Ignite使用Rendezvous亲和散列在节点之间划分数据(默认为1024)时,如何在分区之间执行连接操作?假设缓存中有两个空间数据集(pCache和qCache),每个分区包含10个分区(1,..,10)。如何在这两个数据集上执行联接操作?是partition1 of pCache和partition1 of qCache吗?
我的第二个问题:在分布式连接的情况下,点燃如何执行相同的操作?
发布于 2018-10-02 07:42:14
不同缓存的分区之间没有对应关系。如果您运行一个联接操作,那么在默认情况下只有本地查找将是performed.If数据不并置的,那么这种方法可能会给出部分结果。
当执行所有映射时,每个节点都必须与每个其他节点通信,因此
[](https://chart.googleapis.com/chart?cht=tx&chl=O(N%5E2%29)
消息完全在集群中发送,其中
是节点的数目。这称为分布式连接,它对性能有很大的影响。对于JDBC驱动程序,可以在连接串中启用它,或者在缓存查询API中使用SqlFieldsQuery#setDistributedJoins(.)方法。
建议的连接方式是以一种方式配置数据,不需要分布式联接。点火器有一个名为亲和力搭配的特性,专门为此目的而设计。可以指定对象的字段,该字段将用于计算关联函数。这个字段的值不一定是唯一的,但是它应该是键的一部分。因此,如果您想在两个表上执行联接,您可以通过关联配置它们,因此不需要分布式连接。
https://stackoverflow.com/questions/52602842
复制相似问题