對於數量巨大的數據,您推薦使用什麼樣的存儲? (≈每天約5000萬條記錄)。對於像Hadoop或RDBMS這樣的系統來說,這種情況是否適合這種情況呢?適用於海量數據的存儲方法
回答
隨着您描述的數據量的增加,您可能確實在推動大數據領域的發展。根據您提供的詳細信息數量,我會建議將原始數據加載到Hadoop集羣中,運行map/reduce作業來解析它並加載到基於日期的目錄中。然後,您可以定義一個按日期分區的外部Hive表(每天?每週?)映射到您的地圖/縮減作業的結果。
下一步將取決於報告的複雜程度和所需的響應時間。如果您可以在SQL中輕鬆表達它們,則可以在Hive表上運行查詢。如果它們更詳細,則可能需要編寫自定義的地圖/縮減作業。許多人認爲它是豬,但我個人更直觀的Java。
如果您不關心報告的響應時間,可以按需運行它們。如果你關心,但打開等待幾十秒或幾分鐘的結果,則可以將報告結果存儲在Hive中。如果您希望報告快速顯示,請在基於Web或移動的用戶界面中進行,例如,您可能希望將報告數據存儲在關係數據庫中。
現在,當我們在原型上工作時,並沒有如此龐大的數據量,數據存儲在關係數據庫中。在生產中它是不可能的,現在我正在考慮生產使用中的未來數據流 - 如果報告應該通過基於Web的UI提供並且速度將很重要,那麼您建議如何?我有一個想法將原始數據存儲在Hadoop中,並將數據存儲在關係數據庫中。感謝您的建議。 – Artegon
「在Hadoop中存儲原始數據並在關係數據庫中存儲處理的數據存儲」 - 幾乎總結了我的答案。如果您可以將彙總表示爲SQL查詢,請考慮使用Hive在Hadoop中查詢數據。我喜歡在Java中編寫map/reduce,但是如果我可以在單個SQL語句中表達摘要,那麼沒有任何問題要走。 – Olaf
- 1. 存儲海量數據的最佳方法
- 2. 用於存儲數據的數據庫的替代方法?
- 3. 如何在數據庫中存儲海量數據
- 4. 如何在瀏覽器緩存中存儲海量數據
- 5. 適用於傳感器數據的數據存儲
- 6. 從數據庫中讀取海量數據的最快方法
- 7. 用於存儲傳感器測量的數據庫方案
- 8. 帶TTL的最佳海量數據持久存儲?
- 9. 海量:使用存儲過程
- 10. 存儲用於圖形的度量標準數據的最佳方法
- 11. 在處理海量數據時,在數據存儲中定義實體的正確方法是什麼?
- 12. 哪個數據庫和編碼方案適用於音頻數據存儲?
- 13. 用於在數據庫中存儲登錄信息的方法
- 14. GAE數據存儲 - 用於更新實體的解決方法?
- 15. Django - 如何保存方法僅適用於新數據
- 16. Javascript:基於條件加載海量數據的內存爲
- 17. 由於海量數據處理導致的Java內存泄漏
- 18. 如何存儲海量的小圖片
- 19. 光了海量存儲的領導
- 20. 適用於所有用戶的Windows數據存儲
- 21. C#適用於Azure Table上的地理數據的存儲類型存儲
- 22. ViewState的 - 適當的方式存儲在數據庫數據
- 23. 哪一種方法是在Windows Store應用程序中存儲少量數據的最合適方法
- 24. SimpleJdbcCall不適用於存儲函數
- 25. 存儲變量對於.JSP的用法?
- 26. 適用於大容量,靜態分析數據的最佳存儲引擎
- 27. 用於存儲從核心數據(iOS)獲取的數據的首選方法
- 28. 用於存儲SNMP數據的數據庫方案
- 29. 適用於存儲ISOYearMonth的Oracle數據類型是什麼?
- 30. 適用於Android的SQL Lite數據庫持久存儲器
您計劃保留數據多長時間?模式有多複雜?它是一個具有單個大型事實表和一堆小型(-ish)維度表的星型模式嗎?您將對數據執行什麼類型的查詢?它們會涉及整個表格還是僅涉及日期範圍特定的數據(每日,每週,每月等)? – Olaf
原始數據需要預處理,解析並彙總到報告數據中。報告不會被刪除,原始數據將在處理後被刪除。報告將保存爲數字數據。查詢 - 主要有特定數據範圍的統計查詢(平均,總和,最小,最大)。 – Artegon