微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring data geode - 如何过滤函数中的分区

如何解决Spring data geode - 如何过滤函数中的分区

我使用基于日期的 PartitionResolver 创建了一个 region(key: [id,date]),这意味着该区域按日期进行分桶/分区。现在在函数实现中,我想过滤某些日期分区,这样我就不必循环遍历 Map<IdDate,Entity> regionData 来过滤特定日期的数据。这个想法是通过直接丢弃不相关的桶来过滤日期分区,这使得过滤速度更快。 我发现有一个选项可以在函数中使用 @Filter 注释,但这似乎需要一组键。但我想提供一组分区键(在我的用例中是日期)。

这可能在春季大地测量中吗?

解决方法

PartitionedRegionHelper.getHashKey() 方法在内部用于将 bucketId 映射到分区区域内的特定 key。在 Function (PartitionRegion) 上执行数据相关 FunctionService.onRegion().withFilter() 时,执行器使用上述方法在内部检索存储桶和成员的列表。

考虑到 spring-data-geode 在通过 withFilter() 注释配置函数时最终使用了 @Filter 方法,并假设您的 PartitionResolver.getRoutingObject() 方法的自定义实现返回 { Date 的 {1}} 部分,应该可以通过为 key 使用一些虚拟数据来实现您想要的。你试过了吗?。

我可能错了,因为我自己还没有测试过(我会尝试编写一个小场景),但它应该可以工作。

干杯。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。