2017-07-05 99 views
0

我們必須將存儲從應用(電子商務訂單更新,交貨,取消,新訂單等)產生的數據的一些MongoDB的收藏品。目前,我們正在遵循着傳統的ETL的方法來計劃數據拉取(Covert在s3/Staging負載中存檔)並加載到DW.隨着數據量的增加,我們覺得這是一種效率低下的方式,因爲與實時流/相似性相比,我們至少在一天內生成報告一種新的ETL方法。因此,作爲流式播放選項,首先我會讀到非常受歡迎的Apache Kafka。但面臨的最大挑戰是如何將此MongoDB集合轉換爲Kafka主題。 我讀了MongoDb Streaming Out Inserted Data in Real-time (or near real-time)。我們沒有使用加蓋集合,因此推薦的解決方案對我們不起作用。近實時從蒙戈DB數據流數據倉庫來

MongoDB的集合可以是一個卡夫卡製片人? 有沒有更好的辦法來拉從MongoDB的實時/近實時數據到目標DB/S3除了卡夫卡 注:我喜歡一個Python的解決方案,可以很容易地集成到我們當前的工作流比Java/Scala的。

感謝

回答

0

你有沒有考慮英語教學方法,它提供了ETL的替代?

在ELT中,數據在進入數據倉庫進行處理,從而導致更快的加載時間。在大多數情況下,轉換技術的設計與用於報告的平臺密切相關,使ETL具有更好的硬件和軟件同步的優勢。

英語教學方法在ETL的優點是:

  • 無需單獨的轉換引擎,工作是由目標系統自身完成。

  • 數據轉換和裝載發生在平行的,所以時間少和資源都花了。速度不依賴於數據大小。

  • 數據倉庫基礎設施的處理能力減少在途時間數據花費,使系統更具成本效益。
  • 適合使用可擴展的雲基礎設施來支持結構化,非結構化這麼大的數據源

但也有一些缺點:

  • ELT發展的具體依賴於平臺即Hadoop的集羣通過將問題分解成更小的塊來工作,然後將這些塊分佈到大量機器上進行處理。有些問題很容易分裂,其他問題會更加困難。
  • 開發人員需要了解他們用於執行轉換的系統的性質。一些系統幾乎可以處理任何轉換,但其他系統卻沒有足夠的資源,需要仔細的規劃和設計。

看看Panoply撰寫的這篇文章,該文章描述了ETL與ELT之間的區別,包括Python中的一個動手實例。