2017-03-07 47 views
2

在此基礎上討論:https://www.youtube.com/watch?v=srfaKA2wJ0sGraphQL時間序列

我想實現在GraphQL的分析/時間序列查詢像

query { 
    sales(date: { start: ‘2017-01-01’, end: ‘2018-01-01’ }) { 
     revenue(stat: mean) 
     daily: interval(by: day) { 
      date 
      revenue 
     } 
    } 
} 

收入(統計:平均值)是基於一個匯聚統計(在這種情況下的平均值) 每日是按小時/天/月的數據點列表

如何以高性能的方式使用mongodb或postgresql/mysql數據庫來實現此目的?

回答

2

已經給這多一點的想法...

我不得不sales(date: { start: ‘2017-01-01’, end: ‘2018-01-01’ })決心的對象,看起來像這樣:

{ 
    __type: 'SalesDateSelection', 
    start: ‘2017-01-01’, 
    end: '2018-01-01', 
} 

這是免費的,因爲它只是一個愚蠢的對象持有它創建的參數,沒有昂貴的數據訪問在這裏進行。

然後可以使用它們的參數和該父對象上的數據的組合來解析每個子字段(revenue(stat: mean)interval(by: day))。這可能是2個數據庫查詢?

+0

返回數據點列表的間隔部分怎麼樣?解析器應該在'interval'的每個子字段的'interval'上? –

+0

我期望將昂貴的數據加載到'interval'上,並且它返回一個包含'{date,revenue}'對象的數組。 –

+0

我當前的實現使得interval返回一個由date和arg組成的對象數組。並且每個子字段都有針對每個數據點的解析器,我將轉到實例化視圖以使其更快,幫助解決方法 –