2015-10-12 142 views
0

我的源具有不同的日期格式,如下所示,并寻找一种算法来识别在Pentaho数据与选择值和模糊步骤集成中尝试的源日期模式。模式匹配来识别日期格式

日期列(串)
“20150210”
“20050822--”
“2014-02-五月”
“20051509--”
“02月2014年”
“2013 -MAY-12"
“12DEC2013”​​
“15050815”
“五月-02-2014”
“12312015”

我知道,在PDI中我们可以通过写作来实现JS步骤。如果每种模式都有条件,但不是一个好主意,并且这种方法在处理大量记录时会导致转换死机,寻找有效的方式来搜索日期模式。

我认为这是所有ETL项目中非常普遍的问题,在此我试图了解像SAS Data Integration,Informatica,SSIS这样的企业供应商如何提供简单的方法来处理。

我们是否有任何算法来识别源模式。如果是这样的话?

上面列出的格式不受限制。

+1

'01-02-05' < - 什么日期?答案是:它完全依赖作者的文化。 en-GB会将其翻译为“2005年2月1日”。 en-US将标识为“2005年1月2日”。 ja-JP将指定“2001年2月5日” – billinkc

回答

0

不能简单地确定一个“单价”值作为任何给定输入的格式。

考虑所有的下列格式完全有效的:

  • MM-DD-YY
  • DD-MM-YY
  • YY-MM-DD

如在规定@billinkc发表评论,在这种情况下你会打电话01-02-05

只要您考虑了一个数据集(例如,您知道下一个X行全部来自相同的日期格式),那么您的解决方案就是可以解决的。然后你可以把它看作一个线性问题,并且有一些限制可以帮助你确定日期格式。即使那样,你也不能保证你会得到明确的答案,只是增加你有一个确定的答案的可能性。