我有两张表command
和commandItem
:
command: code, date, amount
commandItem: commandCode, price, label
我想在CSV文件中输出此内容:
Command1;26-01-2018;100
Command1;9;label1
Command1;81;label2
Command1;10;label3
Command2;26-01-2018;50
Command2;10;label1
Command2;20;label2
Command2;20;label3
你能告诉我如何使用Talend吗?
答案 0 :(得分:1)
我现在无法访问我的测试数据库,以便向您展示一个表格的解决方案,所以我用文件做了,但总的想法是一样的:
这里的想法是读取你的命令表,并为每一行写入文件(在追加模式下);在传递到下一行之前,从items表中写入(到相同文件,在追加模式下)相关行(您需要替换我读取项目的部分)数据库输入组件的文件+ tFilterRow
,包含如下所示的过滤条件:WHERE commandCode = (String)globalMap.get("row1.code")
,以便仅获取当前命令的项目)
tFileOutputDelimited
个组件的设置相同,如下所示:
您需要设置" Custom flush buffer size
"为了将每一行立即刷新到文件,否则行的顺序不会在输出文件中保证。
输出:
Command1;26-01-2018;100
Command1;9;label1
Command1;81;label2
Command1;10;label3
Command2;26-01-2018;50
Command2;10;label1
Command2;20;label2
Command2;20;label3
我打赌还有其他(更好的?)方法来实现这一目标,但这是我想到的第一个。