转换字段值 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) 转换字段nameDate 的值,并将其以标准格式存储在任何表中。

例如

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_vickjo_vick 转换为John_Vick,则需要在数据库中维护一个查找表。这会将提供的价值转换为批准的价值。您将需要一个维护列表的过程。 【参考方案1】:

日期格式只是一些价值的服装。只需使用 Kettle 阅读并按原样存储即可。无论如何,数据库都会以适当的内部二进制格式存储它。

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

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

也许您有混合输入,在这种情况下,您可以使用FilterSwtich 步骤,根据天气,您在日期和月份列中有一些内容。

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

【讨论】:

以上是关于转换字段值 pentaho(kattle) 并将其以标准格式存储在任何表中的主要内容,如果未能解决你的问题,请参考以下文章

Pentaho Kettle - 从二进制类型的字段将十六进制转换为数字

使用 Pentaho Kettle 将字符串转换为布尔值

ETL工具-Kattle:初识kattle

Pentaho Kettle:邮寄转换的结果

将空字符串写入 MongoDB 输出 - Pentaho

如何在 Pentaho 中将上一步中的字段设置为 JSON 输出文件名?