talend中thashoutput/input和tbufferoutput/input之间的差异

khbbv19g  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(498)

我不清楚在talend中使用thash和tbuffer组件之间的区别。
我正在研究将tmap的结果存储在impala表中,并将另一个副本存储在内存(缓存)中,并对其执行其他转换,以最终写入表。

6ljaweal

6ljaweal1#

它们可以用于类似的目的,但是散列和缓冲区组件之间有一些明显的区别。
它们都通过将结果集存储在内存中来工作,但是哈希组件允许您存储多个哈希对象并检索特定的哈希集。如果您需要临时存储多个结果集,然后以某种方式将它们连接回来(例如转换多个数据源,然后将数据以单个条目的形式写入目标),那么这将非常有用。您也可以将一个散列的输出附加到另一个散列以写入同一数据集。
缓冲区组件只有一个append only选项,其中多个缓冲区输出将写入同一个共享缓冲区。这使得它不如散列组件灵活,但仍然可以用于许多任务。
缓冲区组件比散列组件提供的额外功能是父作业可以读取缓冲区,以便将数据发送回调用父作业。如果要将talend作业部署为web服务并从中返回数据(如本教程所示),也可以使用相同的机制。
类似空间中的其他选项,但更多的是,当您开始处理大量无法在内存中轻松处理的数据(但由于某种原因需要完全包含在内存中,而不是迭代)时,可以使用tcache系列组件,我知道这里的其他一些海报非常类似(尽管我还没有需要)。这与散列组件的工作原理类似,但也会在需要时溢出到磁盘。
嵌入式h2数据库也可以在内存中运行,以提供类似的效果和更多的选项,但会增加工作的复杂性。

相关问题