2017-06-17 18 views
-1

我想要使用pentaho(kattle)转换字段nameDate的值,并将它以标准格式存储在任何表中。转换字段值pentaho(kattle)并将其以标准格式存储在任何表中

例如

ID,名称F_N,日期
1,j_vick,2015年3月5日
2,jo_vick,04,08,2016
3,Arn_jonnn_vick,05,07 ,2017年

现在我想用pentaho(kattle) IDE进行改造,并将其存储在数据库中象下面这样:

ID,姓名,日期
1,john_vick 03/05/2015年
2,john_vick,04/08/2016
3,Arn_john_vick,05/07/2017年

我不希望转换步骤与提取数据库存储有关。

+0

我无法弄清楚最后一句话的背后。并且:你的换档键有什么问题?破碎?都?? –

+1

MySQL将日期存储为YYYY-MM-DD([source](https://dev.mysql.com/doc/refman/5.7/en/datetime.html))。不建议在字符串列中存储为dd/mm/yyyy。如果您想将'j_vick'和'jo_vick'转换为'John_Vick',那么您需要在数据库中维护一个查找表。这会将提供的价值转换为批准的价值。您将需要一个维护列表的过程。 –

回答

0

日期格式只是一些值。只需用水壶阅读并保存即可。无论如何,数据库将以适当的内部二进制格式存储它。

除非,您必须将其明确地存储为varchar。在这种情况下,请使用Select Value步骤的Metadata选项卡。将列定义为Date并指定格式为dd/MM/yyyyMM/dd/yyyy。它将作为日期内部保存,并在最后一刻转换为具有所选格式的字符串。

你也缝有其他问题:日,月和年分为三列。最简单的方法是使用Modified Java Script Value步骤,在其中定义一个新的列date = new Date(year, month, year),类型为Date,并让Kettle处理格式。

也许你有混合的输入,在这种情况下,你可以使用FilterSwtich步骤,根据你在日期和月份列有某些东西的天气。

完成后,您可以创建一个在所有表上运行转换的作业。您在配有Pentaho数据集成器(又称Kettle)的sample/jobs/process all tables中有一个示例。

相关问题