2013-01-15 45 views
1

我需要使用spring集成對大數據包執行ETL操作。 例如,我有一個像巨大的XML文件:用於大文件的彈簧集成

<school> 
    <cource name="A"> 
     <class> 
      <name>A1</name> 
      <students>20</students> 
     </class> 
     ... 
     <class> 
      <name>A35</name> 
      <students>19</students> 
     </class> 
    </cource> 
    <cource> 
    ... 
    </cource> 
</school> 

結果應該是2個CVS文件:

第一:

A1;20 
... 
A35;35 

二:

A; 754 
.. 
C; 232 

也就是說簡單的轉換操作和容器上的一些聚合函數。 「class」和「cource」記錄的數量真的很大,我不能在內存中解析輸入數據(所以我需要迭代元素),但我仍然不想使用集成模式來輕鬆修改ETL流。

有沒有什麼辦法可以做到這一點?

回答

0

您可以使用與其關聯的ItemReader和ItemWriter創建一個步驟。大文件流式傳輸,不能作爲一個整體讀取。所以,這應該做到這一點。

更多閱讀here。示例here

+0

你的例子來自Spring Batch,但不是Spring集成。 – magulla

3

您可以使用Spring集成來檢測該文件的存在,並啓動Spring Batch的作業(使用在spring-batch-admin提供的spring-batch-integration項目提供的JobLaunchingMessageHandler)。