Postgresql 基于单个记录中的字段将多个记录插入事实表
我在Pentaho 4.4.1-GA水壶/PDI工作。数据库是Postgres 我需要能够根据来自单个记录的字段将多个记录插入事实表。单个记录包含以下字段:Postgresql 基于单个记录中的字段将多个记录插入事实表,postgresql,loops,pentaho,fact,Postgresql,Loops,Pentaho,Fact,我在Pentaho 4.4.1-GA水壶/PDI工作。数据库是Postgres 我需要能够根据来自单个记录的字段将多个记录插入事实表。单个记录包含以下字段: productcode1, price1 productcode2, price2 productcode3, price3 ... productcode10,price10 因此,如果10个productcode/prices中的每一个都有一个值,那么我需要在事实表中插入总共10条记录。如果有4个组合的值,那么我需要在事实表中插入4条
productcode1, price1
productcode2, price2
productcode3, price3
...
productcode10,price10
因此,如果10个productcode/prices中的每一个都有一个值,那么我需要在事实表中插入总共10条记录。如果有4个组合的值,那么我需要在事实表中插入4条记录,等等。除了序列、产品代码和价格生成的PK之外,事实记录的所有字段值都是相同的
我想我需要某种类型的循环构造,它可以让我检查每个productx字段是否存在值,如果存在,则使用所需的字段值在事实表上执行插入/更新步骤。我只是不知道如何在Pentaho做到这一点
有什么想法吗?欢迎提出以下建议:
谢谢,
Rakesh您能为您的场景提供一个输入和输出示例吗 从您的示例数据中,我可以推断,如果有10个不同的产品代码和4个产品价格,您希望在表中插入4条记录。是这样吗
首先,您可以通过过滤NOTNULL将常量值1添加到这些记录中,然后使用Group by Step来计算1的数量。这会给你计数。顺便说一句,如果您能提供更多关于要加载哪些列的详细信息,这将非常有用,因为有多种方法可以使PDI转换多次执行单个记录包含字段-这些字段是多行多列-而不仅仅是一行记录。该单记录行来自何处?该单记录是在表输入步骤中使用SQL select语句从表中的XML列派生的。XML为每个productCode/productPrice组合都有元素,我在查询单个记录时为每个组合创建了一个字段。