首页 > 解决方案 > Spring data geode - 如何过滤函数中的分区

问题描述

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

这在春天的geode中可能吗?

标签: spring-datageode

解决方案


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

考虑到在通过注解配置函数时spring-data-geode最终使用了该方法,并假设您的方法的自定义实现返回了. 你试过了吗?withFilter()@FilterPartitionResolver.getRoutingObject()Datekeyid

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

干杯。


推荐阅读