2015-11-26 21 views
2

我想處理大量的XML數據並將其保存到數據庫中。這是最好的選擇。春季批水壺pentaho? 我有一些檢查點。當模式被稱爲 哪個最適合批量XML數據處理?春季批次或ETL水壺pentaho?

  • 支持並行執行多個會話和錯誤日誌
  • 更快,更少的內存和更少的CPU利用率
  • 同時支持插入和更新
  • 外鍵引用

    1. 工具是好的對於目標表,刪除約束並在數據加載後添加
    2. 消除重複
    3. 塊或批處理負載suppo室溫
    4. 無頭執行(無GUI爲時間表並開始)
    5. 支持多種格式信號輸入
    6. 支持自定義數據變換爲可插組件
    7. 事務控制,錯誤處理和記錄用於將來執行
    8. 檢查的喬布斯的狀態,監控
    9. 集成測試,冒煙測試
    10. 可擴展性,如何加載多個節點並行
    11. 重新啓動作業時,他們死機,自動重啓故障後
    12. 跟蹤的狀態和統計執行過程中
    13. 能力通過網絡啓動或休息接口
  • +0

    這些要求本身聽起來像是一個項目要求。其中許多是數據庫或核心邏輯相關的。我不確定你會滿足你的任何要求。 –

    回答

    2

    我會嘗試與Spring Batch的功能,以滿足您的觀點:

    當模式被稱爲

    這是SP的情況下

    1. 工具是好的環批。您將能夠使用需要註釋的bean(已知模式)的StaxEventItemReader

    2. 支持並行執行,多個會話和錯誤日誌

    彈簧批量支持並行執行和錯誤記錄。我不確定你的意思是多個會議。 Here are some info about spring batch scalability

  • 更快,更少的內存和更少的CPU利用率
  • Spring Batch的性能取決於你如何使用它了。雖然它可能不是最快或更高效的,但它在世界各地的許多生產環境中都有使用。

  • 同時支持的插入和更新
  • Spring Batch的數據庫作家支持通用DBMS與這樣的操作(JdcbBatchItemWriterHibernateItemWriter ...)

  • 爲目標表的外鍵引用,取消約束和數據負載之後添加
  • 我認爲這將需要一些手工執行,b ut我不確定,因爲我還沒有達到今天的要求。

  • 消除重複
  • 這將在您的ItemProcessor來完成。這裏有一個例子:processing batch of records using spring batch before writing to DB

  • 塊或批量加載支持
  • 你可以用Spring Batch的配置作家的commit-interval和回滾操作。

  • 無頭執行(無GUI爲時間表並開始)
  • 彈簧批次可與CommandLineJobRunner或任何其他方式來啓動與JobLauncher(需要再一些手動實現)

  • 支持多種輸入格式
  • Spring Batch的可以讀取的任何類型的平面文件的(FlatFileItemReader),xml文件(StaxEventItemReader),隊列(JmsItemReader)或數據庫(JdbcCursorItemReader)。

  • 支持自定義數據變換爲可插組件
  • 數據轉換是通過ItemProcessor實現。有即開即用的實現,但大多數情況下,您將不得不編寫自己的實現來應用您的自定義邏輯。至於可插拔組件,我不確定你的意思。

  • 事務控制,錯誤處理和記錄用於將來執行
  • Spring Batch的具有一個整體Retry機構和Restartability。您可以閱讀更多herehere

  • 檢查作業的狀態,監控
  • Spring Batch的允許您配置在那裏你存儲有關作業狀態的元數據(數據庫,文件,內存...) 。你將能夠閱讀這些數據。還有一個叫做spring-batch-admin的第二個項目,它是一個用於監視和控制的GUI。閱讀更多here

  • 集成測試,健全測試
  • 不能回答這個問題。

  • 可擴展,如何加載多個節點並行
  • 參見11.還Spring Batch的可與Spring-XD集成。

  • 重新啓動作業時,他們會崩潰,後失敗
  • 參見自動重啓11.

  • 期間跟蹤狀態和統計執行
  • 請參閱第12

  • 能力通過網絡或休息接口發佈
  • 春季批次可以與Spring-Boot集成以滿足這些需求。


    我希望我回答您的一些擔憂。