1

我有一种情况,我有下表。

员工- emp_id、emp_name、emp_address

Employee_assets - emp_id(FK)、asset_id、asset_name(1-many for employee)

Employee_family_members - emp_id(FK), fm_name, fm_relationship ( 1-many for employee)

现在,我必须运行一个预定的kettle 作业,它从这些表中读取数据,比如说1000 名员工的批次,并根据数据库中与家庭成员和资产的关系为这1000 条记录创建一个XML 输出。它将是每个员工的嵌套 XML 记录。

请注意,这个水壶作业的性能在我的场景中非常关键。

我在这里有两个问题-

  1. 从数据库中为模式中的一对多关系提取记录的最佳方法是什么?
  2. 鉴于 XML 连接步骤会影响性能,生成 XML 输出结构的最佳方法是什么?
4

2 回答 2

0

要提取数据,您可以使用多个数据库查找字段或数据库连接步骤。性能方面,我认为连接可能会更快,但这完全取决于您使用的查询的复杂性以及它的编写方式等。

于 2016-09-27T15:32:06.947 回答
0

这是我如何实现这一目标的。

显示从一对多创建 XML 的转换

因此,有一个表输入步骤来读取基表并随后为其创建 XML 块。随后,在流程中,我使用一对多关系(子表)作为另一个数据库连接步骤,将关系键传递给它。提取数据后,将为子行生成 XML。然后将其传递到修改后的 Java 脚本值步骤(合并行),然后合并trans_Status = SKIP_TRANSFORMATION用于相似行的内容。一旦相似的行被合并/连接,putRow(row)用于将其作为输出转储到下一步。请注意,这要求 SQL 根据关系键进行排序/排序。这表现不错,所以我可以继续。

于 2016-10-05T08:26:01.947 回答