OrientDB时间序列数据

时间:2014-03-03 18:28:23

标签: graph time-series orientdb

我已经看到使用OrientDB建模时间序列数据的示例,但我不知道插入的内容。

如果有人为此做了一个例子会很棒。

此致 汤姆

https://github.com/orientechnologies/orientdb/wiki/Time-series-use-case

1 个答案:

答案 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'

希望有所帮助