2014-12-04 19 views

回答

4

它们可以用于类似的目的,但散列和缓冲区组件之间有一些明显的区别。

它们都通过将结果集存储在内存中工作,但哈希组件允许您存储多个哈希对象并检索特定的哈希集。如果您需要暂时存储多个结果集,然后以某种方式将它们重新加入,例如转换多个数据源,然后将数据写入到目标的单个条目中,这会非常有用。您也可以将一个散列的输出附加到另一个散列,以写入相同的数据集。

缓冲区组件只有一个附加选项,其中多个缓冲区输出将写入相同的共享缓冲区。这使得它比哈希组件更不灵活,但对许多任务仍然有用。

缓冲区组件提供超过散列组件的额外优点是缓冲区可以由父作业读取,以便将数据发送回调用父作业。如果您想将Talend作业部署为Web服务并从中返回数据,也会使用相同的机制,如this tutorial中所示。

类似空间中的其他选项,但更多用于当您开始处理无法在内存中轻松处理的大量数据(但由于某种原因需要完全包含在内存中而非迭代)时,使用tCache组件,我知道这里有一些其他海报非常喜欢(尽管我还没有需要)。这可以像散列组件一样工作,但如果需要也会溢出到磁盘。

嵌入式H2数据库也可以在内存中运行,以提供类似的效果和相当多的选择,但是会增加工作复杂性。

+0

非常感谢您的帮助! :) – user1189851 2014-12-04 23:03:27