如何解决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 举报,一经查实,本站将立刻删除。