Etl 如何在Pentaho釜中处理1到多个SQL(表输入)
我的情况是,我有以下表格 员工-员工id、员工姓名、员工地址 员工资产-emp\U id(FK)、资产id、资产名称(员工为1-many) 员工家庭成员-员工id(FK)、姓名、关系(1-员工多人) 现在,我必须运行一个预定的kettle作业,该作业从这些表中读取数据,比如说以1000名员工为一批,并根据数据库中与家庭成员和资产的关系为这1000条记录创建XML输出。它将是每个员工的嵌套XML记录 请注意,在我的场景中,这个水壶作业的性能非常关键 我这里有两个问题-Etl 如何在Pentaho釜中处理1到多个SQL(表输入),etl,kettle,pdi,pentaho-spoon,pentaho-data-integration,Etl,Kettle,Pdi,Pentaho Spoon,Pentaho Data Integration,我的情况是,我有以下表格 员工-员工id、员工姓名、员工地址 员工资产-emp\U id(FK)、资产id、资产名称(员工为1-many) 员工家庭成员-员工id(FK)、姓名、关系(1-员工多人) 现在,我必须运行一个预定的kettle作业,该作业从这些表中读取数据,比如说以1000名员工为一批,并根据数据库中与家庭成员和资产的关系为这1000条记录创建XML输出。它将是每个员工的嵌套XML记录 请注意,在我的场景中,这个水壶作业的性能非常关键 我这里有两个问题- 对于模式中的1-many关系
要拉入数据,可以使用多个db查找字段或数据库连接步骤。就性能而言,我认为连接可能会更快,但这完全取决于您使用的查询的复杂性以及它的编写方式等。要拉入数据,您可以使用多个db查找字段或数据库连接步骤。就性能而言,我认为连接可能会更快,但这完全取决于您使用的查询的复杂性以及它的编写方式等。以下是我如何做到这一点的 因此,有一个表输入步骤来读取基表并随后为其创建XML块。随后,在流中,我使用1-many关系(子表)作为另一个数据库连接步骤,将关系键传递给它。取出数据后,将为子行生成XML。然后将其传递到修改后的Java脚本值步骤(合并行),该步骤使用类似行的
trans\u Status=SKIP\u TRANSFORMATION
合并内容。一旦合并/连接了相似的行,则使用putRow(row)
将其转储为下一步的输出。
请注意,这要求SQL根据关系键进行排序。这一切正常,所以我可以继续进行。以下是我如何做到这一点的 因此,有一个表输入步骤来读取基表并随后为其创建XML块。随后,在流中,我使用1-many关系(子表)作为另一个数据库连接步骤,将关系键传递给它。取出数据后,将为子行生成XML。然后将其传递到修改后的Java脚本值步骤(合并行),该步骤使用类似行的
trans\u Status=SKIP\u TRANSFORMATION
合并内容。一旦合并/连接了相似的行,则使用putRow(row)
将其转储为下一步的输出。
请注意,这要求SQL根据关系键进行排序。这是执行正常,所以我可以继续它