我需要帮助将旧数据库中的一行迁移到新数据库中的多行。
我有一个数据:
OID CUSTOMER_NAME DOB ADDRESS
1 XYZ 03/04/1987 ABC
在我的新数据库中,我将数据存储在KEY VALUE对中,如:
OID KEY VALUE
1 CUSTOMER_NAME XYZ
1 DOB 03/04/1987
1 ADDRESS ABC
有人请用TALEND工具帮我解决这个问题。
答案 0 :(得分:2)
您可以在此处使用链接到同一输出的tMap多输出作为一种可能的解决方案。但它不是动态的。为什么你可以在源选择查询本身中将单行拆分成多行?
如果您想使用此tmap选项,请参阅下面的
tOracleInput(anyotherinput) - > TMAP - > toutput / tlogrow
将此行作为tmap组件的输入,并在tmap中创建一个输出组,如out_1。 现在,在此out_1中,从输入中拖动并链接OID和CUSTOMER_NAME列。 现在在此tmap中创建另一个输出组out_02,并在“添加输出”对话框出现时 选择“从中创建连接表”,然后在下拉列表中选择out_1组,以便来自此out_02组的输出行也将转到out_01组。 因此,我们的tmap只有一个输出组out_01,其中包含out_01和out_02的行。现在在out_02中拖动并链接OID和DBO列。 同样为out_03重复它并链接OID和ADDRESS列..
答案 1 :(得分:0)
花了一两个小时后,我找到了一个使用Talend的解决方案而没有编写单行Java代码。 如果你按照我的所有步骤,那么你将获得欲望的结果。
注意:我将您的输入作为此开发的来源,因此实际情况可能有所不同。
添加分号。有关详细信息,请参阅图像。
添加tExtractDelimitedFields组件并配置如图所示。
答案 2 :(得分:0)
答案 3 :(得分:0)
你可以使用tPivotToColumnsDelimited。 在talend帮助中心了解更多相关信息。 此组件将根据指定的行旋转表。 谢谢。
答案 4 :(得分:0)