这是之前删除的帖子的缩小版本。我已经阅读了其他帖子和orientdb wiki以及linkedin演示文稿。没有超越我目前的进展。
我的问题是2折。
1)将数据链接到时间序列类的正确方法和最佳做法是什么。
2)这可以在插入时用钩子完成吗?
您将在下面找到源数据模型,时间序列类和图表。
数据模型不断更新,每天记录数百万条记录。
源数据模型
{
"@type": "d",
"@rid": "#507:788457",
"@version": 2,
"@class": "Live",
"MarketName": "BTC-OMNI",
"High": 0.01398825,
"Low": 0.0117,
"Volume": 1121.38384722,
"Last": 0.01254396,
"Bid": 0.01219709,
"Ask": 0.01254377,
"BaseVolume": 14.52156426,
"TimeStamp": "2017-07-28T16:51:07.853",
"year": 2017,
"month": 7,
"day": 28,
"hour": 16,
"minute": 51
"@fieldTypes": "High=d,Low=d,Volume=d,Last=d,Bid=d,Ask=d,BaseVolume=d,Year=d,Month=d,Day=d,Hour=d,Minute=d"
}
时间序列类
CREATE CLASS Year
CREATE CLASS Month
CREATE CLASS Day
CREATE CLASS Hour
CREATE CLASS Minute
我想要实现的图表
答案 0 :(得分:0)
使用orientjs livequery找到解决方案。
有人可以确认这是否是一种合理的方法吗?
有一个实时查询侦听插入到您的源类中,更新插入时的时间序列表。
所有时间序列类都会在插入时使用源记录进行更新。
db.liveQuery('LIVE SELECT FROM live ')
.on('live-insert', function(data){
var r = data.cluster;
var id = data.position;
var rid = '#'+r+':'+id;
var umin = 'update Year set month[' + data.content.month + '].day[' + data.content.day + '].hour[' + shour + '].minute[' + data.content.minute + '].live = ' + rid + ' where year = ' + data.content.year
var uhour = 'update Year set month[' + data.content.month + '].day[' + data.content.day + '].hour[' + shour + '].live = ' + rid + ' where year = ' + data.content.year
var uday = 'update Year set month[' + data.content.month + '].day[' + data.content.day + '].live = ' + rid + ' where year = ' + data.content.year
var umon = 'update Year set month[' + data.content.month + '].live = ' + rid + ' where year = ' + data.content.year
db.query(umin)
.then((updatedmin) => {console.log('updated minutes')})
db.query(uhour)
.then((updatedhour) => {console.log('updated hours')})
db.query(uday)
.then((updateday) => {console.log('updated day')})
db.query(umon)
.then((updatedmon) => {console.log('updated month')})
});