使用 Talend 从两个表插入 CSV 文件
Insert into CSV file from two tables using Talend
我有两个表 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 完成吗?
我目前无法访问我的测试数据库,以便向您展示 tables 的解决方案,所以我用文件做了,但总体思路是一样的:
这里的想法是读取您的命令 table,并将每一行写入文件(在 Append 模式下);在传递到下一行之前,写入(到相同文件,在追加模式)项目table中的相关行(您需要用您的数据库输入组件替换我读取项目文件 + tFilterRow
的部分,其中包含如下过滤条件:WHERE commandCode = (String)globalMap.get("row1.code")
以便仅获取当前命令的项目)
两个 tFileOutputDelimited
组件的设置 相同 并且如下所示:
您需要将“Custom flush buffer size
”设置为 1,以便立即将每一行刷新到文件中,否则输出文件中的行顺序将无法保证。
输出:
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
我敢打赌还有其他(更好的?)方法可以实现这一点,但我首先想到的是它。
我有两个表 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 完成吗?
我目前无法访问我的测试数据库,以便向您展示 tables 的解决方案,所以我用文件做了,但总体思路是一样的:
这里的想法是读取您的命令 table,并将每一行写入文件(在 Append 模式下);在传递到下一行之前,写入(到相同文件,在追加模式)项目table中的相关行(您需要用您的数据库输入组件替换我读取项目文件 + tFilterRow
的部分,其中包含如下过滤条件:WHERE commandCode = (String)globalMap.get("row1.code")
以便仅获取当前命令的项目)
两个 tFileOutputDelimited
组件的设置 相同 并且如下所示:
您需要将“Custom flush buffer size
”设置为 1,以便立即将每一行刷新到文件中,否则输出文件中的行顺序将无法保证。
输出:
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
我敢打赌还有其他(更好的?)方法可以实现这一点,但我首先想到的是它。