转换字段值 pentaho(kattle) 并将其以标准格式存储在任何表中
Posted
技术标签:
【中文标题】转换字段值 pentaho(kattle) 并将其以标准格式存储在任何表中【英文标题】:Transform the field values pentaho(kattle) and store it in standard format in any table 【发布时间】:2017-06-17 20:34:33 【问题描述】:我想使用pentaho(kattle)
转换字段name
和Date
的值,并将其以标准格式存储在任何表中。
例如
id、姓名、f_n、日期 1,j_vick,03-05-2015 2,jo_vick,04,08,2016 3,Arn_jonnn_vick,05,07,2017
现在我想使用pentaho(kattle)
IDE 对其进行转换并将其存储在如下数据库中:
身份证、姓名、日期 1,约翰维克,2015 年 3 月 5 日 2,约翰维克,2016 年 4 月 8 日 3,Arn_john_vick,05/07/2017
我不希望转换步骤涉及提取数据库存储。
【问题讨论】:
我无法弄清楚最后一句话背后的内容。并且:您的换档键有什么问题?破碎的?两者都有?? mysql 将日期存储为 YYYY-MM-DD (source)。不建议在字符串列中存储为 dd/mm/yyyy。如果要将j_vick
和jo_vick
转换为John_Vick
,则需要在数据库中维护一个查找表。这会将提供的价值转换为批准的价值。您将需要一个维护列表的过程。
【参考方案1】:
日期格式只是一些价值的服装。只需使用 Kettle 阅读并按原样存储即可。无论如何,数据库都会以适当的内部二进制格式存储它。
除非您必须将它们显式存储为varchar
。在这种情况下,请使用Select Value
步骤的Metadata
选项卡。将您的列定义为Date
,并将格式指定为dd/MM/yyyy
或MM/dd/yyyy
。它将在内部保存为日期,并在最后一刻转换为所选格式的字符串。
您还缝有另一个问题:日、月和年在三列中。最简单的方法是使用Modified Java Script Value
步骤,在该步骤中定义一个新列date = new Date(year, month, year)
,类型为Date,并让Kettle 处理该格式。
也许您有混合输入,在这种情况下,您可以使用Filter
或Swtich
步骤,根据天气,您在日期和月份列中有一些内容。
完成后,您可以创建一个在所有表上运行转换的作业。你在sample/jobs/process all tables
中有一个例子,它配备了 Pentaho 数据集成器(又名 Kettle)。
【讨论】:
以上是关于转换字段值 pentaho(kattle) 并将其以标准格式存储在任何表中的主要内容,如果未能解决你的问题,请参考以下文章