簡體   English   中英

實時為大型復雜嵌套 Json 聚合選擇最佳數據庫

[英]Choosing the best database for large complex nested Json aggregations in realtime

實時聚合大量(數量和大小)復雜 JSON 數據的最佳數據庫是什么? 作為參考,單個 JSON object 大小可能從 2Mb 到 100Mb 不等,並且包括沒有已知結構的嵌套 arrays。 表/集合大小可以在一個月內輕松達到 10Tb。

由於隨機數據的性質,我們需要聚合它以提取表面上有意義的數據和關系 elasticsearch 是一個很好的候選者,但它缺乏必要的聚合能力來改變和轉換數據的形狀,因為大多數時候我們需要展平嵌套 arrays 以提取一些值。

我們還嘗試並目前在 MongoDB 上運行——優化到骨子里——到目前為止,我們在轉換數據時沒有遇到任何問題,但是由於缺乏規范化和大文檔大小的查詢通常需要很多時間,例如 1-3分鍾。

例如,從客戶端發送的數據形狀如下所示:-

{
  "metadata": { .... },
  "input": { .... },
  "output": { 
       "problems": [{id: 1}, {id: 2} ....]
       ... multi-level nested JSON (including arrays)
   }
}

為了讓我們確定給定客戶的所有問題,我們需要:-

  1. 根據元數據字段查找客戶文檔
  2. 扁平化來自output的所有問題
  3. 合並所有問題
  4. 去重問題

我希望它不是一個可擴展或有效的解決方案

關於數據的注釋:-

  1. 每個文檔都是獨立的,不需要任何外部連接
  2. 所有相似或相同類型的文檔都在一個單獨的集合中
  3. 通常通過組合所有文檔中的單個字段來提取關系

限制:-

我們將無法預處理或規范化數據,因為它需要實時可用和計算。

我當然知道沒有適合所有人的大小,特別是對於隨機和非結構化數據,我的目標是優化讀取/查詢時間 - 寫入並不是那么重要 - 不要瘋狂高速,1-5 秒的任何東西都被認為是超級最佳.

這似乎是大數據的問題。 您是否查看過 HDFS,您的問題有多種不同的解決方案。 我認為您問題的根源在於您正試圖在傳統數據庫中找到答案,而大數據框架可能是最佳解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM