我对水壶真的很陌生。当我在转换中使用“设置变量”步骤时,我读到了这一点。 “水壶变换中的所有步骤并行运行”。我想知道这怎么可能。
例如,我有一个只有两个步骤的转换,A从csv文件读取数据,B将这些数据写入xml文件。如果这两个步骤并行运行,B如何在读取数据之前将数据写入xml?
任何答案都将不胜感激。
答案 0 :(得分:5)
这正是它所说的。当转换开始时,所有步骤同时开始。然后他们有一个输入“缓冲区”或行集,通常是50k行。
因此;当第一步读取它的前50k行时,它们将填充缓冲区,然后下一步将开始处理这些行,而第一步仍在读取。
依此类推,等等......
在您的示例中,当从CSV读取前50k行时,它将开始使用这些行写入XML,同时它仍在读取下一个50k。
这就是为什么必须在之前的转换中使用set变量并将其与作业绑定在一起。
性能调整pdi作业的关键之一是识别链中哪个步骤最慢。值得庆幸的是,性能指标让这很容易!
此外,如果您愿意,也可以运行多个步骤副本,例如:用于写入数据库等的步骤。