2013-10-18 42 views
1

我目前有五個表經常接收復制數據。 PL/SQL用於基於複雜的業務邏輯轉換,清理和聚合這些數據。然後將結果放在三個報告表中。Hadoop/Mapreduce無法處理任何業務邏輯嗎?

我有興趣爲此使用MongoDB而不是關係數據庫。爲了這樣做,所有的PL/SQL業務邏輯必須被翻譯成另一種語言,比如Java。

但是,有人向我建議Hadoop比MongoDB更好。我現在正在學習Hadoop和Mapreduce,但我感覺Hadoop用於分析數據(從數據導出統計值,即客戶操作之間的相關性),而不是基於業務邏輯來轉換數據。

爲了用Hadoop替換原有系統,我假定所有的PL/SQL業務邏輯都必須被轉換爲mapreduce函數。這個假設是不正確的?

無論我的個人情況如何,Hadoop(和mapreduce)無法處理的任何業務邏輯,PL/SQL還是Java都可以?

+1

你能描述「分析」和「變換」數據之間的區別嗎? –

+0

@JoshLee通過分析我的意思是Hadoop的大數據應用,即企業可以嘗試最大化價值的客戶操作之間的統計相關性,例如Walmart將尿布放置在啤酒旁邊或在颶風期間放置流行餡餅。通過轉換我的意思是在ETL中使用的定義。 –

回答

1

首先,MongoDB是NoSql數據庫的類型,Hadoop是一種並行處理框架。 如果您確實有tera/peta字節的數據,則可以使用並行處理框架。 並請參考您的數據是否可以使用Nosql數據庫+並行處理框架。

  1. 你可以把PL/SQL的業務邏輯爲MapReduce函數
  2. 的Hadoop可以處理,如果索引,集中 處理任何業務邏輯大量的損失。(對於非交易系統)

而且我會建議你看看蜂巢,它可能會幫助你。

+1

只需添加MR就是批量導向的,NoSQL就像任何其他具有實時訪問權限的數據庫。所以,根據要求選擇合適的軟件。 –

0

我可以確認您可以使用MongoDB + Hadoop。您所要做的就是將所有包中的整個轉換邏輯放在一邊,然後確定輸入,輸出和流(依賴關係),然後轉換爲映射reduce。主要任務是從轉換邏輯中識別關鍵值,規則。我希望你也可以用豬。使用Sqoop進行提取。