如何将分布式查询API(如Criteria API或分布式SQL查询)与IMap以外的任何数据结构一起使用?

时间:2019-05-01 07:02:04

标签: java distributed-computing hazelcast

我想使用分布式查询,创建谓词并使用该谓词从列表中筛选数据。如何将谓词与IList一起使用?

我已经阅读了Hazelcast IMDG 3.12文档,但仅显示了IMAP的用法。有人可以让我知道分布式查询仅适用于IMAP还是也适用于其他数据结构?

1 个答案:

答案 0 :(得分:1)

IMap是对象的集合IList作为集合的单个对象

当前仅针对前者实现搜索匹配项。 因此,要查找匹配项,您必须自己做。

您可以遍历该列表,就好像它是标准Java列表一样,但这意味着将完整的列表检索给调用方。整个列表会从保存的地方复制到呼叫者,如果列表与所需的匹配项相比很大,则对于网络传输可能效率不高。

您可以提交一个可调用对象,该对象将列表迭代器与列表一起应用到主机上,运行筛选,而无需在网络上移动整个列表,仅返回匹配项。

此外,Jet可以将列表视为源(请参阅here),因此,如果您愿意,可以构建自己的过滤器以应用于其所在的数据。对于临时请求,可能需要太多工作,但这是另一种选择。