1. 程式人生 > >數據聚合

數據聚合

解決 方式 tab 參考 ref pytho htm cnblogs logs

我這裏的聚合指的是將數據匯總起來,比如一天的數據匯總成一條,然後匯總成一周、一月。邏輯就是這樣,比較簡單。

下面說說我遇到的問題。

時區問題

時區的處理方式可以參考我的另一篇文章--時區問題。

這裏直接說處理方式。

  1. 查詢、儲存數據時,時間要帶上時區或者不帶時區但確定是 UTC 時間
  2. 不要縮小儲存時間的長度

第一點不做說明了,說說第二點。之前我將一天的數據聚合到一條記錄裏面,根據平常的邏輯,將統計時間設置為 "%Y-%m-%d" 的形式。我們平時表示是哪天,不就是這樣說嗎?“今天是 2017年08月22日”。但是,在查詢的時候,出現了問題。數據庫裏是 UTC 時區,那麽“2017年08月22日” 表示 “2017年07月31日00:00:00 UTC”。轉換為我們平常用的時區為 “2017年07月31日08:00:00 CST+8”。然後,我們要查大於北京時間7月31號的數據,數據庫裏就查不到。

解決辦法是:保存當天的開始時刻,並且不縮減時間的保存格式。

定時運行配置與代碼

使用 crontab 定時運行。可以是 UNIX 提供的,也可以是第三方庫提供的,比如 Python 的 celery。

數據聚合