Ben AQL çalışır aerospike çalışan bir toplama işlevi oluşturduk. Sonra NodeJS aynı UDF kullanmaya çalışıyorum:Aerospike NodeJS UDF Toplama Hatası
{ code: 100,
message: 'UDF: Execution Error 1',
func: 'as_query_aggregate',
file: 'src/main/aerospike/aerospike_query.c',
line: 903 }
sunucu günlükleri devlet:
Feb 28 2016 22:33:58 GMT: INFO (scan): (scan.c::933) starting aggregation scan job 1201452721893048027 {analytics:tracking} priority 2
Feb 28 2016 22:33:58 GMT: INFO (scan): (scan.c::1026) finished aggregation scan job 1201452721893048027 (0)
kimseyi mu
var statement = {
aggregationUDF: {module: 'filter2', funcname: 'check_teamId',
arg:['123', 0, 1456499994597]}
};
var query = client.query('analytics', 'tracking', statement);
var stream = query.execute();
sonuç görünüşte uninformative hatadır NodeJS ile çalışmak için bir UDF almak için herhangi bir ipucu var mı? Ya da hatayı teşhis etmek için herhangi bir fikir?
Yapıdaki kullanıcı UDF konumunu, sonucu etkilemeyen bir konuma ayarladım. GÜNCELLEME
: Eğer (kod: 100) UDF yürütme hatası alıyorsanız
local function map_profile(record)
return map {interaction=record.interaction,
teamId=record.teamId, datetime=record.datetime,
timestamp=record.timestamp, version=record.version,
interactions=record.interactions}
end
function check_teamId(stream, teamId, startDate, endDate)
local function filter_teamId(record)
return record.teamId == teamId and
record.timestamp >= startDate and record.timestamp <= endDate
end
return stream : filter(filter_teamId) : map(map_profile)
end
"check_teamId" UDF kodu nedir? –
Ayrıca, Node.JS sürümünde deyim nesnesinde AQL deyiminde "WHERE" yan tümcesi, ancak "filters" bölümü yok. –
Teşekkür @AdamB. Yukarıdaki lua koduyla güncellendi. WHERE yan tümcesi aslında gerekli değildir ve sorgu bu olmadan gayet iyi çalışır. – TStu