在嘗試使用Talend構建數據倉庫應用程序時,我們遇到了以下情況。如何扁平化一對多關係
我們有一個看起來像
表主
ID | CUST_NAME | CUST_EMAIL
------------------------------------
1 | FOO | [email protected]
事件表
ID | CUST_ID | EVENT_NAME | EVENT_DATE
---------------------------------------
1 | 1 | ACC_APPLIED | 2014-01-01
2 | 1 | ACC_OPENED | 2014-01-02
3 | 1 | ACC_CLOSED | 2014-01-02
有主站和事件表之間存在一個一對多的關係的兩個表的表。由於給定的事件名稱數量有限,我建議將該結構非規範化爲看起來像
ID | CUST_NAME | CUST_EMAIL | ACC_APP_DATE_ID | ACC_OPEN_DATE_ID |ACC_CLOSE_DATE_ID
-----------------------------------------------------------------------------------------
1 | FOO | [email protected] | 20140101 | 20140102 | 20140103
THE DATE_ID
列是指時間維度表內的條目。
第一個問題:這是個好主意嗎?這個計劃的其他選擇是什麼?
第二個問題:我如何使用Talend Open Studio來實現這個功能?我想出了一種方法,將每個事件名稱的數據與cust_id一起使用tMap
組件移到它自己的臨時表中,然後使用另一個tMap
將它們鏈接在一起。有沒有另外一種方法可以做到這一點?
非常感謝。這也會起作用。如何使用tPivotToColumnsDelimited組件? – Bazooka 2014-10-08 11:23:03
tPivotToColumnsDelimited輸出分隔文件,因此不適合您的需要。可以說,你可以輸出一個臨時文件,然後再讀回來,但是對於你的用例來說這很麻煩和不必要。 – ydaetskcoR 2014-10-08 14:39:25
我同意。謝謝。 – Bazooka 2014-10-08 14:57:14