我想要試用DynamoDB並將其用於由nginx生成的access.logs,後者將用於報告儀表板,包括IP,引薦網址,引薦域,瀏覽器等等。引用數據的DynamoDB架構
初始設置將是運行nginx和CloudWatch的EC2實例,它將使用nginx實例的access.logs。
想法是,CloudWatch條目將觸發一個lambda函數,該函數將解析日誌並將其放入DynamoDB。
我不是太熟悉DynamoDB比其他我讀過,但在這裏就是我想在做這個模式的:
ID將在URL中使用nginx的打擊,這就是我們會報告。
ReferralDomain(表)
- ID(密鑰)
- 域(S)
- 創建(範圍)
ReferralURL(表)
- ID(密鑰)
- URL(S)
- 創建(範圍)
ReferralBrowser(表)
- ID(密鑰)
- 瀏覽器(S)
- 創建(範圍)
對於其他正在報告的項目(如IP或GEO信息(ReferralCity,ReferralCountry等)),此操作將繼續進行。
對於Dynamo中的這種類型的數據,這看起來像是一個很好的模式設計嗎?最終,儀表板將針對具有日期範圍操作的特定ID,它將按URL,瀏覽器等顯示總計(聚合)列表,以及實際列出數據。另外,其中一個報告可能包含列有計數的唯一項目。例如,對於ReferralDomain,「Facebook」在特定ID的日期範圍內可能有550個計數。這可能需要在EMR內完成?
對於這種類型的數據,是否有更好的架構可供使用或應考慮Dynamo應考慮的其他因素?謝謝
多少網址,我們談論在這裏? (對於哈希主鍵的一部分) –
數以百萬計,是爲從nginx的 – dzm
擔任我要補充,我是不會把一定的實際URL作爲ID的圖像,但可能是URL的哈希(MD5 ) – dzm