[英]Monthly aggregation of usage information in an accounting system
我正在一個會計系統中工作,該系統接收(通過隊列)有關可以創建(帶有類型),修改和銷毀的不同元素的使用事件。 我每個月可以有大約1000000個事件。
在月底,系統必須匯總信息以生成包含已使用給定元素多少次的報告。 我確定我也將需要執行每日匯總。
用一個例子更清楚。 這些是我收到的事件:
{event: "create", date: "2013/01/01", element_id: 1, element_type: "L"}
{event: "modify", date: "2013/02/05", element_id: 1, element_type: "XL"}
{event: "modify", date: "2013/02/07", element_id: 1, element_type: "L"}
{event: "destroy", date: "2013/02/08", element_id: 1}
這應該是“二月”的結果:
-- from 2013/02/01 to 2013/02/05 + 2013/02/07 to 2013/02/08
{element: "1", element_type: "L", units: "6 days" }
-- from 2013/02/05 to 2013/02/07
{element: "1", element_type: "XL", units: "2 days" }
我主要關心的是如何跟蹤以前間隔 (例如2年前)創建但仍未有效銷毀的元素 。
您是否知道可以解決此問題的任何算法? 我一直在考慮減少地圖的過程,但是我不確定它是否適合(按月過濾,跟蹤前幾個月創建的元素等)。 任何想法都歡迎。
我現在正在使用nodejs和mongodb來存儲事件(如果有幫助的話),但是如果可以帶來任何好處,我可以使用java和/或mysql。
謝謝。
解決問題的方法太多了,很難給您一個好的答案。 我將為您提供一些建議。
如果看起來#2對您來說是一條不錯的路線,則您可能希望研究使用星型架構來存儲您的日常聚合,並可能存儲在RDBMS中。 不僅可以使用它來構建工具,而且市場上有許多產品可以很好地與星型/雪花模式數據進行分析。
聽起來像是一個有趣的項目!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.