graph - OrientDB 时间序列数据

标签 graph time-series orientdb

我看过使用 OrientDB 对时间序列数据建模的例子,但我不知道插入是什么样子的。

如果有人有这方面的例子,那就太好了。

问候,
汤姆

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

最佳答案

为了更清楚地了解时间序列的效用,您可以想象这种诡辩:

您有与特定日期相关的给定日志。在数据库有数百万条记录的情况下,通过日期字段搜索将非常昂贵,因为它会强制查询读取所有记录并检查条件,而时间序列过滤发生在连接之间的每个 channel 类(年,月,小时,然后是日志),因此在只读取与日期匹配的记录而不是所有其他记录之后。

下面是一个小例子:

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'

希望能帮助到你

关于graph - OrientDB 时间序列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22154427/

相关文章:

java - 使用 OrientDB 时 Kawa 中的类加载器问题

OrientDB查询分层数据

algorithm - 什么是衡量链接强度和节点影响的好方法?

c++ - 案件未执行

r - 计算时间序列中缺失的月份

python - 使用 ARMAResult.predict() 函数的正确方法

sql - OrientDB 中的 INSERT 和 CREATE VERTEX 有什么区别?

r - 从两个数据框中的数据生成多个序列图/散点图

节点搜索的图遍历

python - 如何在 pandas 数据框中应用递归数字过滤器?