मैं एक समग्र समारोह जो एयरोस्पाइक जो AQL में काम करता है में काम करता है बना लिया है। मैं तो NodeJS में एक ही यूडीएफ का उपयोग करने के कोशिश कर रहा हूँ:एयरोस्पाइक NodeJS यूडीएफ एकत्रीकरण त्रुटि
{ code: 100,
message: 'UDF: Execution Error 1',
func: 'as_query_aggregate',
file: 'src/main/aerospike/aerospike_query.c',
line: 903 }
सर्वर लॉग राज्य:
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)
किसी को भी करता है
var statement = {
aggregationUDF: {module: 'filter2', funcname: 'check_teamId',
arg:['123', 0, 1456499994597]}
};
var query = client.query('analytics', 'tracking', statement);
var stream = query.execute();
परिणाम एक से दिखते uninformative त्रुटि है यूडीएफ को नोडजेएस के साथ काम करने के लिए कोई सुझाव है? या किसी भी विचार से त्रुटि का निदान कैसे करें?
मैंने कॉन्फ़िगरेशन में उपयोगकर्ता UDF स्थान सेट किया है जो परिणाम को प्रभावित नहीं करता है।
अद्यतन:
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 के लिए कोड क्या है? –
इसके अलावा, आपके पास AQL कथन में 'WHERE' क्लॉज है लेकिन Node.JS संस्करण में आपके कथन ऑब्जेक्ट में कोई' फ़िल्टर 'अनुभाग नहीं है। –
धन्यवाद @AdamB। उपरोक्त लुआ कोड के साथ अपडेट किया गया। WHERE क्लॉज वास्तव में आवश्यक नहीं है, और क्वेरी इसके बिना ठीक चलती है। – TStu