Caching Talend中thashoutput/input和TBUFFER OUTPUT/input之间的差异

Caching Talend中thashoutput/input和TBUFFER OUTPUT/input之间的差异,caching,talend,impala,Caching,Talend,Impala,我不清楚在Talend中使用tHash和tBuffer组件之间的区别 我正在考虑将tMap的结果存储在Impala表中,并将另一个副本存储在内存(缓存)中,并对其执行其他转换以最终写入表。它们可以用于类似的目的,但哈希和缓冲区组件之间有一些明显的区别 它们都通过将结果集存储在内存中来工作,但哈希组件允许您存储多个哈希对象并检索特定的哈希集。如果您需要临时存储多个结果集,然后以某种方式将它们连接回来,例如转换多个数据源,然后将数据以单个条目的形式写入目标,那么这将非常有用。您还可以将一个散列的输出

我不清楚在Talend中使用tHash和tBuffer组件之间的区别


我正在考虑将tMap的结果存储在Impala表中,并将另一个副本存储在内存(缓存)中,并对其执行其他转换以最终写入表。

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

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

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

缓冲区组件比散列组件提供的额外功能是父作业可以读取缓冲区,以便将数据发送回调用父作业。如果希望将Talend作业部署为web服务并从中返回数据,也可以使用相同的机制,如中所示

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


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

非常感谢您提供的有用答案!:)