Pentaho - 数据格式

Posted

技术标签:

【中文标题】Pentaho - 数据格式【英文标题】:Pentaho - Data Format 【发布时间】:2020-02-25 13:48:19 【问题描述】:

我有两个关于 Pentaho Kettle 的问题,我需要一些帮助! 所以,我有一个包含一些数据的 CSV 文件。在一个列中,文件有一些日期(以年为单位)。第一个问题是,一些行在该列中有“无”,而其他行的日期格式正确。 这张图片应该有助于“看到”问题:

Problem One

为了解决这个问题,我将输入文件和数据库中的数据类型更改为字符串。这行得通,但我认为这不是正确的做法。我也尝试使用“过滤行”步骤,但没有奏效..请帮忙? :)

第二个问题是关于日期字段中的空值。数据库希望收到一个日期值,但其中一些值为空。再一次,这张图片应该有助于“看到”问题:

Problem Two

我能做些什么来解决这两个问题?什么是正确的方法,不仅可以解决问题,而且在以后查询数据时具有良好的性能?

非常感谢!

最好的问候!

【问题讨论】:

【参考方案1】:

对于第一个查询,使用输入步骤作为字符串,之后使用 选择值 步骤可以将字符串更改为日期格式。 对于第二步,使用过滤行步骤并分隔具有 none 的行,然后将 none 替换为 null 并链接到下一步。

【讨论】:

【参考方案2】:

对于 Year 列中的 "None" 字符串值,您可以先将该列读取为字符串,然后您可以使用名为 "Null if" 的步骤并给出 "None" 作为值转为 NULL。稍后您可以在 Select Values 中将此 Year 列设为 Integer 类型。

对于第二个问题,由于您的表设计期望日期列具有非空值,您可以将非空约束更改为可为空。或者,如果您想要此类空值的默认值,则可以使用步骤“如果字段值为空”,您可以在此处指定默认值。 如果要使用前几行中日期的非空值,可以在步骤文本文件的字段选项卡中将Repeat设置为Y输入

【讨论】:

【参考方案3】:

或者,对于两种情况,您可以尝试使用“Value Mapper”从无到您的数据库可以接受的东西。

【讨论】:

以上是关于Pentaho - 数据格式的主要内容,如果未能解决你的问题,请参考以下文章

使用 javascripting 在 Pentaho 中更改日期格式

转换字段值 pentaho(kattle) 并将其以标准格式存储在任何表中

用于创建 Pentaho 报告的 Java 代码,此报告接受作为数据集成 (.ktr) 文件的输入

Pentaho 数据集成 (DI) 获取 SFTP 服务器目录中的最后一个文件

Pentaho Report Designer 报表系统 - 入门详解

使用 Pentaho Kettle,我可以在不预先组合数据流的情况下将数据输入到数据库表并生成连接吗?