我试图使用根据给定列的值将表拆分为多个表。假设这个列可以包含1、2、3等的任何整数值,那么根据这个值,这些行应该转到table_1、table_2、table_3等。
如果事先不知道列中的不同值的数目,最好能解决这个问题,但是现在我们可以假设所有这些输出表都已经存在了。底线是,--不同值的数目,因此不同表的数量--足够高,以至于手动设置各个过滤器不是一种选择。
是否可以使用或类似的开放源码ETL工具(如Pentaho )来解决这个问题?
当然,我可以自己编写一个简单的脚本,但是我更喜欢使用适当的ETL工具,因为完整的ETL过程非常复杂。
发布于 2012-10-24 06:03:25
在PDI或Pentaho中,您可以通过分区来完成这一任务。(步骤IIRC上的右击选项) PDI中的分区正是针对这种问题而设计的。
发布于 2014-03-25 06:01:34
是的,可以根据单个列将数据拆分为不同的表,但为此需要动态创建表:-
tFileInputDelimited>tFlowtoIterate->tFixedFlowInput->和可以使用globalMap()获取列值,并使用相同的值将数据分离到不同的表。->和can在表名中使用globalMap(用于分隔数据)。
发布于 2012-10-22 19:56:58
我想到的第一个解决方案是使用复制器将当前行传输到三个过滤器,这些过滤器充当保护,并且只允许行通过给定列中的12或3。图片:http://i.imgur.com/FmvwU.png
但是您也可以动态地构建表名,如果这是您想要的,pic:http://i.imgur.com/8LR7Q.png
https://stackoverflow.com/questions/13015048
复制相似问题