2016-09-27 217 views
1

我有一個情況,在我有以下表格。如何處理Pentaho Kettle中的1到多個SQL(表格輸入)

僱員 - EMP_ID,EMP_NAME,emp_address

Employee_assets - EMP_ID(FK),ASSET_ID,ASSET_NAME(1-許多爲僱員)

Employee_family_members - EMP_ID(FK) ,fm_name,fm_relationship(1-many僱員)

現在,我有運行預定的水壺作業,該作業從批處理的1000名員工的這些表讀取數據,並根據DB與家庭成員和資產的關係爲這1000條記錄創建XML輸出。它將成爲每位員工的嵌套XML記錄。

請注意,在我的情況下,這個水壺工作的表現是非常關鍵的。

我這裏有兩個問題 -

  1. 什麼是從數據庫中記錄拉在模式1一對多的關係的最好方法?
  2. 鑑於XML連接步驟的性能受到影響,生成XML輸出結構的最佳方法是什麼?

回答

0

這是我如何實現這一目標。

Transformation showing the XML creation out of one to many

因此,有一個表輸入步驟來讀取基表,並隨後爲它創建XML塊。隨後,在流程中,我使用1-many關係(子表)作爲另一個將關係鍵傳遞給它的數據庫連接步驟。一旦數據被抽出,就爲子行生成XML。然後將它傳遞給修改後的Java腳本值步驟(合併行),然後合併使用類似行的trans_Status = SKIP_TRANSFORMATION的內容。一旦合併/連接了相似的行,則putRow(row)用於將其作爲輸出轉儲到下一步。 請注意,這需要SQL根據關係鍵進行排序。這表現正常,所以我可以繼續。

0

要拉取數據,可以使用多個數據庫查找字段或數據庫連接步驟。性能明智我會認爲,加入可能會更快,但這一切都取決於您使用的查詢的複雜性,以及它是如何寫的。

相關問題