【发布时间】:2017-01-09 22:14:09
【问题描述】:
我们正在使用 Aerospike 运行一个小 POC,以了解我们是否可以运行 LUA 脚本来做一些事情。
在这种情况下,我们使用了航班示例: https://github.com/aerospike/flights-analytics
我在航班时间上创建了一个新索引以便按它进行搜索。
脚本运行所有记录并查找航班的最后到达时间。 为简单起见,我们只插入了飞往布法罗的航班。
local function aggregatCityToMax(result, record)
city = string.upper(record['DEST_CITY_NAME'])
flightTime = record['ARR_TIME']
if result[city] == nil then
info("CITY: |%s| | DATE: %d | MAX: null" , city, flightTime)
result[city] = flightTime
else
info("CITY: |%s| | DATE: %d | MAX: %d" , city, flightTime,
result[city])
if result[city] < flightTime then
info("new MAX %s", flightTime)
result[city] = flightTime
end
end
return result
end
local function reduce_values(a, b)
return map.merge(a, b, mergeFunction)
end
local function mergeFunction(a, b)
info("merging: %s VS %s ", a, b)
if a < b then
return b
end
return a
end
function mapMax(stream)
return stream : aggregate(map(), aggregatCityToMax) : reduce(reduce_values)
end
日志显示奇怪的结果: 1. 我没有得到最大值。 2.好像每10条记录,最大值被重置为null。
日志:
城市:|水牛城| |日期:1253 |最大:空 城市: |水牛城| |日期:1221 |最大:1253 城市: |水牛城| |日期:1600 |最大:1253 城市: |水牛城| |日期:1203 |最大:1600 城市: |水牛城| |日期:1424 |最大:1600 城市: |水牛城| |日期:2141 |最大:1600 城市: |水牛城| |日期:1821 |最大:2141 城市: |水牛城| |日期:1221 |最大:2141 城市: |水牛城| |日期:1424 |最大:2141 城市: |水牛城| |日期:1550 |最大:2141 城市: |水牛城| |日期:1703 |最大值:null
城市:|水牛城| |日期:2312 |最大:1703 城市: |水牛城| |日期:2251 |最大:2312 城市: |水牛城| |日期:19 |最大:2312 城市: |水牛城| |日期:1030 |最大:2312 城市: |水牛城| |日期:1257 |最大:2312 城市: |水牛城| |日期:803 |最大:2312 城市: |水牛城| |日期:19 |最大:2312 城市: |水牛城| |日期:1502 |最大:2312 城市: |水牛城| |日期:2319 |最大:2312 城市: |水牛城| |日期:1735 |最大值:空 城市: |水牛城| |日期:1221 |最大:1735 城市: |水牛城| |日期:1258 |最大:1735 城市: |水牛城| |日期:2125 |最大:1735 城市: |水牛城| |日期:2251 |最大:2125 城市: |水牛城| |日期:1104 |最大:2251 城市: |水牛城| |日期:2053 |最大:2251 城市: |水牛城| |日期:1340 |最大:2251 城市: |水牛城| |日期:2312 |最大:2251 城市: |水牛城| |日期:2226 |最大:2312 城市: |水牛城| |日期:2053 |最大值:空 城市: |水牛城| |日期:1637 |最大:2053 城市: |水牛城| |日期:1030 |最大:2053 城市: |水牛城| |日期:1618 |最大:2053 城市: |水牛城| |日期:1510 |最大:2053 城市: |水牛城| |日期:1510 |最大:2053 城市: |水牛城| |日期:2346 |最大:2053 城市: |水牛城| |日期:2343 |最大:2346 城市: |水牛城| |日期:1600 |最大:2346 城市: |水牛城| |日期:1550 |最大:2346 城市: |水牛城| |日期:1949 |最大值:空 城市: |水牛城| |日期:1104 |最大:1949 城市: |水牛城| |日期:2045 |最大:1949 城市: |水牛城| |日期:2213 |最大:2045
我做错了吗? 我错过了什么吗?
谢谢,
伊多布
【问题讨论】: