spring-data - Spring data geode - 如何过滤函数中的分区
问题描述
我使用基于日期的 PartitionResolver 创建了一个区域(键:[id,日期]),这意味着该区域按日期进行存储/分区。现在在函数实现中,我想过滤某些日期分区,这样我就不必循环Map<IdDate, Entity> regionData
过滤特定日期的数据。这个想法是通过直接丢弃不相关的桶来过滤日期分区,这使得过滤速度更快。我发现有一个选项可以@Filter
在函数中使用注释,但这似乎需要一组键。但我想提供一组分区键(我的用例中的日期)。
这在春天的geode中可能吗?
解决方案
该PartitionedRegionHelper.getHashKey()
方法在内部用于将 映射到分区区域内bucketId
的特定对象。key
当执行依赖Function
于PartitionRegion
( FunctionService.onRegion().withFilter()
) 的数据时,执行器使用上述方法在内部检索存储桶和成员的列表。
考虑到在通过注解配置函数时spring-data-geode
最终使用了该方法,并假设您的方法的自定义实现返回了. 你试过了吗?withFilter()
@Filter
PartitionResolver.getRoutingObject()
Date
key
id
我可能错了,因为我自己没有测试过(将尝试编写一个小场景),但它应该可以工作。
干杯。
推荐阅读
- macos-big-sur - 更新 Big Sur (apple m1) 后卸载的命令行工具
- python - Django - 我想在浏览器中查看这个图
- python - 如何将此列表转换为数据框
- pandas - pandas中日期和整数的比较
- javascript - 有没有办法只允许用户使用移动浏览器进入页面?
- swiftui - 让用户将多个图像添加到 SwiftUI 视图
- sharepoint-online - 如何使用 Power Automate 处理刷新/替换的 excel 文件
- flutter - Flutter 何时重建(重新创建)小部件?有状态的?无国籍?它会持续存在吗?
- laravel - 为什么我在写入会话时突然开始收到来自服务器的 502 响应?
- python - 连接到 Binance websocket 时出错