我已经看到使用OrientDB建模时间序列数据的示例,但我不知道插入的内容。
如果有人为此做了一个例子会很棒。
此致 汤姆
https://github.com/orientechnologies/orientdb/wiki/Time-series-use-case
答案 0 :(得分:3)
为了更清楚地了解时间序列的效用,你可以想象这个诡计:
您有与特定日期相关的指定日志。在数据库有数百万条记录的情况下,搜索日期字段将非常昂贵,因为它会强制查询读取所有记录并检查条件,而时间序列过滤发生在连接之间的每个通道类(年,月,小时,然后是日志),所以在读取了与日期匹配的记录而不是所有其他记录之后。
举了一个小例子:
CREATE CLASS Year extends V
CREATE CLASS Month extends V
CREATE CLASS Day extends V
CREATE CLASS Hour extends V
CREATE CLASS Log extends V
CREATE PROPERTY Year.value STRING
CREATE PROPERTY Year.month LINKMAP Month
CREATE PROPERTY Month.day LINKMAP Day
CREATE PROPERTY Day.hour LINKMAP Hour
CREATE PROPERTY Hour.log LINKSET Log
CREATE VERTEX Log SET priority='high'
CREATE VERTEX Log SET priority='medium'
CREATE VERTEX Log SET priority='low'
INSERT INTO Hour(log) VALUES ([#16:0,#16:1])
INSERT INTO Hour(log) VALUES ([#16:2])
INSERT INTO Day(hour) VALUES ({'15':#15:0})
INSERT INTO Day(hour) VALUES ({'10':#15:1})
INSERT INTO Month(day) VALUES ({'4':#14:0})
INSERT INTO Month(day) VALUES ({'21':#14:1})
INSERT INTO Year(value,month) VALUES ('2012',{'3':#13:0})
INSERT INTO Year(value,month) VALUES ('2015',{'8':#13:1})
查询1 :查找与日期4/3/2012 h15相关的所有日志
SELECT EXPAND(month[3].day[4].hour[15].log) FROM Year WHERE value='2012'
查询2 :查找与日期21/8/2015 h10相关的所有日志
SELECT EXPAND(month[8].day[21].hour[10].log) FROM Year WHERE value='2015'
希望有所帮助