我不清楚在Talend中使用tHash和tBuffer組件的區別。Talend中thashoutput/input和tbufferoutput/input之間的區別
我正在尋找將tMap的結果存儲在Impala表中,並將另一個副本存儲在內存(緩存)中,並對此進行其他轉換以最終寫入表。
我不清楚在Talend中使用tHash和tBuffer組件的區別。Talend中thashoutput/input和tbufferoutput/input之間的區別
我正在尋找將tMap的結果存儲在Impala表中,並將另一個副本存儲在內存(緩存)中,並對此進行其他轉換以最終寫入表。
它們可以用於類似的目的,但散列和緩衝區組件之間有一些明顯的區別。
它們都通過將結果集存儲在內存中工作,但哈希組件允許您存儲多個哈希對象並檢索特定的哈希集。如果您需要暫時存儲多個結果集,然後以某種方式將它們重新加入,例如轉換多個數據源,然後將數據寫入到目標的單個條目中,這會非常有用。您也可以將一個散列的輸出附加到另一個散列,以寫入相同的數據集。
緩衝區組件只有一個附加選項,其中多個緩衝區輸出將寫入相同的共享緩衝區。這使得它比哈希組件更不靈活,但對許多任務仍然有用。
緩衝區組件提供超過散列組件的額外優點是緩衝區可以由父作業讀取,以便將數據發送回調用父作業。如果您想將Talend作業部署爲Web服務並從中返回數據,也會使用相同的機制,如this tutorial中所示。
類似空間中的其他選項,但更多用於當您開始處理無法在內存中輕鬆處理的大量數據(但由於某種原因需要完全包含在內存中而非迭代)時,使用tCache組件,我知道這裏有一些其他海報非常喜歡(儘管我還沒有需要)。這可以像散列組件一樣工作,但如果需要也會溢出到磁盤。
嵌入式H2數據庫也可以在內存中運行,以提供類似的效果和相當多的選擇,但是會增加工作複雜性。
非常感謝您的幫助! :) – user1189851 2014-12-04 23:03:27