2012-02-20 103 views
-1

我想知道如何通過Informatica獲取最新的更新記錄。假設我在臨時表中有10條記錄。賬戶1的3條記錄,賬戶2的3條記錄和賬戶3的4條記錄。現在,這3個帳戶中,我只需要獲取具有最大日期值(最新日期)的記錄並插入另一個臨時表中。那麼,我可以使用哪些轉換來獲得我應該使用的這種或informatica邏輯?請幫忙。Informatica問題 - 轉換

回答

1
  1. 如果日期列來自具有唯一日期的輸入,那麼使用聚合器轉換並取最大日期。
  2. 如果沒有日期列,請指定系統時間戳,但不能從中獲取最大日期。你必須去做一些其他的邏輯,比如rowid和rownum特性。
+0

是AruM,日期柱來自具有唯一值的輸入。所以我通過使用Sorter和Aggregator來做到這一點。使用分揀機,我正在使用「帳戶」和「日期」字段排序數據。它是我在Aggregator中輸出的輸出,在Aggregator中,我在帳戶字段中使用它彙總數據字段並使用數據字段的最大值函數。我希望我的方法是正確的。不過,我真的非常感謝你的回答:) – user1173496 2012-02-21 06:59:04

0

如果源是DB,我們可以做到這一點的SQ本身 - 通過PK場分組寫一個臨時表,並選擇這個PK場和max(日期)。然後將此輸出與基於pk和日期的原始源一起加入。 爲例如:

select * from src_table 
join (select pk,max(date) as maxdate from src_table) aggr_table 
on src_table.pk=aggr_table.pk 
and src_table.date=aggr_table.maxdate 

可以相同Informatica的內部使用的聚合器和接合器來實現。但由於聚合源是sq,並且它的輸出與sq一起加入,聚合器和木匠之間將需要一個分類器。

0

您可以使用聚合器轉換。您可以首先使用分揀機轉換,並根據賬戶和日期asc進行排序。之後,您可以進行彙總轉換(基於賬戶的分組)。你不需要添加任何條件或分組功能,因爲聚合器會給每個組的最後記錄。