如何在 pentaho Kettle 中为生成的键 table 实现键查找
How to implement a key lookup for generated keys table in pentaho Kettle
刚刚开始使用Pentaho Kettle进行集成。到目前为止看起来很棒,与我也在研究的 Talend 相比非常直观。
我正在尝试迁移一些没有密钥的客户。所以我有他们的电子邮件地址。
客户可能已经存在于数据库中,所以我需要做的是:
- 如果客户存在,将其 ID 添加到导入字段并继续。
- 但如果客户不存在,我需要从 table Hibernate_Sequences 获取下一个 Hibernate 密钥并将其设置为 ID。
但是我不想总是分配一个key,所以我想有条件地执行一个步骤来分配下一个key。
所以我想做的是在流程中执行 db 过程,它分配下一个键并 returns 它,只有当 "lookup id" 步骤中的 id 中没有值时。
这可能吗?
只是发布我的更新流程 - 所以答案是使用一个过滤器行组件来拆分 true/false 上的数据。由于一个错误,我真的很难从数据库存储过程中获取 id,所以我不得不使用十进制然后转换回整数(我也不知道该怎么做,所以使用了 javascript 组件).
是的。根据官方文档(我只留下了有价值的信息)"Lookup values are added as new fields onto the stream"。所以你只需要将步骤 "Filter row" 放在流程部分并检查 "id" 应该在 "Existing Id Lookup" 步骤中添加。
刚刚开始使用Pentaho Kettle进行集成。到目前为止看起来很棒,与我也在研究的 Talend 相比非常直观。
我正在尝试迁移一些没有密钥的客户。所以我有他们的电子邮件地址。
客户可能已经存在于数据库中,所以我需要做的是:
- 如果客户存在,将其 ID 添加到导入字段并继续。
- 但如果客户不存在,我需要从 table Hibernate_Sequences 获取下一个 Hibernate 密钥并将其设置为 ID。
但是我不想总是分配一个key,所以我想有条件地执行一个步骤来分配下一个key。
所以我想做的是在流程中执行 db 过程,它分配下一个键并 returns 它,只有当 "lookup id" 步骤中的 id 中没有值时。
这可能吗?
只是发布我的更新流程 - 所以答案是使用一个过滤器行组件来拆分 true/false 上的数据。由于一个错误,我真的很难从数据库存储过程中获取 id,所以我不得不使用十进制然后转换回整数(我也不知道该怎么做,所以使用了 javascript 组件).
是的。根据官方文档(我只留下了有价值的信息)"Lookup values are added as new fields onto the stream"。所以你只需要将步骤 "Filter row" 放在流程部分并检查 "id" 应该在 "Existing Id Lookup" 步骤中添加。