比方說,我們正在爲每10秒收集一種數據類型的設備存儲數據。每個設備可以位於不同的時區。快速查詢以可視化數據的能力非常重要。我們可以要求系統問題,比如下面:按時間間隔對時間序列數據進行分組
1. For a specific device, I want the last 7 days of data grouped by day totals for my local timezone.
2. For a specific device, I want the last year's data grouped by month totals for my local timezone.
存儲所有數據,UTC似乎是最乾淨的方法,但它要求數據的本地分組時變得非常棘手。例如,每個時區的日分組具有不同的偏移量。因此,如果我們要存儲日,月,年「桶」,則它們都將按照UTC進行分組,這對於詢問除UTC以外的其他時區是沒有用的。
如果我們將分鐘和小時「桶」中的數據進行分組(忽略不到一小時的時區,例如IST +5:30),我們可以使用小時「桶」來構造答案以上問題。對於問題2,每個分組將有12個分組,每個分組最多744小時。
有分鐘和小時(忽略不到一小時的時區,例如IST +5:30)「桶」的方法是否看起來像樣的設計?有沒有人設計過類似的建議?
提供一個字段來存儲每個設備的時區,例如Java時區ID,並支持基於本地日曆的日曆聚合 - 此方法應該適用於上述情況。我會看看時間序列數據庫。 –