在mysql/talend中插入缺失周末数据的伪记录

svujldwt  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(310)

我有一个etl作业,它将原始文件处理成mysql数据库。在做一些分析时,我意识到我需要一个月内所有日子的数据,而我的数据提要只有工作日的值。
我需要一种方法来插入记录失踪的日子,从最后一天的数据。e、 对于周六和周日,我想用周五的数据。星期三不见了,我可以用星期二的数据。
从视觉上看,这就是我所看到的:


**Day****Old Table****New Table**

Monday      Record 1    Record 1
Tuesday     Record 2    Record 2
Wednesday   Record 3    Record 3
Thursday    Record 4    Record 4
Friday      Record 5    Record 5
Saturday                Record 5
Sunday                  Record 5
Monday      Record 8    Record 8
Tuesday     Record 9    Record 9
Wednesday   Record 10   Record 10
Thursday    Record 11   Record 11
Friday      Record 12   Record 12
Saturday                Record 12
Sunday                  Record 12
Monday      Record 15   Record 15

有人能给我推荐一条路吗?
我模糊的想法集中在处理三个数据集上:
1) 包含所有日期值的临时数据集(例如从年初到年底)
2) 包含丢失记录的原始数据(dtst 1)
3) 包含所有值的新数据(dtst 2)
我不知道怎么做,但如果我能循环遍历temp数据集中的所有值(dtst1),从原始数据中提取日期对应的值,并将其推送到新的数据集中(dtst2)。如果在dtst1中没有标识值,则使用从dtst1获取的最后一行并将其推入dtst2。在循环执行结束时,我将拥有dtst2中所有日期的数据,稍后我可以使用这些数据进行分析。

iih3973s

iih3973s1#

您可以将tjavarow放在mysql组件之前,然后检查当前行中的空数据,同时还可以将以前传输的值保存在globalmap变量中,以填充空值。

4nkexdtk

4nkexdtk2#

tmemorizerows就是你要找的!
tmemorizerows以逐行顺序临时存储传入数据的数组,并通过索引0中每个存储的行来示例化此数组。在任何给定时间要记忆的最大行数在“基本设置”视图中定义。
在组件设置中,指定要记住的行数和要记住的列数。在一个 tMap ,可以检查当前行值,如果为空,则检索 tMemorizeRows .
您可以参考以下列: <columnName>_tMemorizeRows_1[0] 对于当前值, <columnName>_tMemorizeRows_1[1] 前一行…等等。

相关问题