簡體   English   中英

Informatica:如何將不同架構的兩個源加載到同一目標(平面文件)中?

[英]Informatica: How to load two sources of different schema into same target (flat file)?

這是場景:

我有一個包含發票行詳細信息的來源:

INV#    DATE    QTY     PRICE
123     12/16   1       50
123     12/16   2       20

我有另一個管道,我在其中聚合了詳細信息以形成標題

INV#    DATE    TOTALPRICE  PURCHASE#   LOC     TAX
123     12/16   70          456         1000    7

我想使用Informatica將這兩個記錄排序並加載到相同的制表符分隔的平面文件中

因此,平面文件輸出為:

123     12/16   70      456     1000    7   
123     12/16   1       50
123     12/16   2       20          

有什么建議么?

我能想到的唯一方法是將所有標題和詳細信息列連接到一個字符串中,並添加聯合轉換以創建一個文件。

請按照以下步驟進行操作:

1)您需要為標頭和明細管道創建一個整數類型的新端口(header_detail_ind)。 為此,您可以對每個管道使用兩個表達式轉換。 此端口的標頭記錄的值應為1,詳細記錄的值應為2。

2)接下來使用兩個管道均作為輸入的聯合轉換。 在上面的步驟中使用表達式轉換使兩個管道的輸出(端口號和數據類型的數目)相同,以便可以將其映射到聯合轉換。 您可以在兩個管道中添加一些空字段以實現此目的。

3)接下來添加一個排序器轉換,並通過#INV和新的端口header_detail_ind對數據進行排序 這樣,您將可以按期望的順序獲得標題和詳細記錄。

4)現在,您可以使用表達式轉換按目標定義的要求准備輸出。 目標定義所需的每個端口都有一個輸出端口。 標題和明細記錄可以具有不同的邏輯,可以通過端口header_detail_ind進行區分。

您可以將記錄分別寫入同一文件。 首先讓頭管道創建文件並寫入頭記錄。 然后讓詳細信息管道將記錄追加到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM