gpt4 book ai didi

python - Aerospike 通过 TTL 计算所有过滤器

转载 作者:行者123 更新时间:2023-12-02 18:04:09 24 4
gpt4 key购买 nike

我正在尝试执行以下查询:

SELECT COUNT(*) FROM ns123.foo WHERE ttl < 60 * 60 * 24

我从 Aerospike AQL count(*) SQL analogue script 找到了 lua 脚本执行 COUNT(*)

将 Python 与上述 LUA 脚本结合使用,我尝试应用具有读取策略的 UDF:

        client.udf_put('aggr_functions.lua')
query = client.query('ns123', 'foo')
policy = {
'expressions':
exp.LT(exp.TTL(), 60 * 60 * 24).compile()
}
query.apply('aggr_functions', 'count_star', [])
records = query.results(policy)
print(records)

我被抛出:

Traceback (most recent call last):
...
records = query.results(policy)
exception.UnsupportedFeature: (16, 'AEROSPIKE_ERR_UNSUPPORTED_FEATURE', 'src/main/aerospike/aerospike_query.c', 348, False)

对 Python3.8 库和服务器使用 Aerospike 6.1.x。

最佳答案

聚合不支持过滤表达式。但是你可以在 lua 中编写过滤器代码,在 lua 聚合模块本身中添加过滤器功能。 (我在这里发布了一个在 lua 中使用带聚合的过滤器的代码示例:https://discuss.aerospike.com/t/record-manipulation-with-more-than-one-filter-lua/3637)

关于python - Aerospike 通过 TTL 计算所有过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73689681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com