2014-03-03 135 views

回答

2

,以獲得時間序列的效用有更明確的想法,你能想象這樣的詭辯:

您有關於某個日期指定日誌。在數據庫擁有數百萬條記錄的情況下,通過日期字段進行搜索會非常昂貴,因爲它會迫使查詢讀取所有記錄並檢查條件,而時間序列過濾發生在連接之間的每個通道班級(年,月,小時,然後是日誌),因此在讀取僅與日期匹配的記錄之後,而不是所有其他記錄。

下面一個小例子:

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:找到所有相關的最新日誌2012/4/3 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' 

希望它有幫助

+0

嗨@TommyK,你有沒有機會嘗試我的解決方案? – LucaS