数据仓库中的增量负载

时间:2019-10-28 14:57:23

标签: talend data-warehouse

我在表中有两个表(Tparam和Customer)。第一个表包含数据库的全局UPDATE日期,表Customer包含许多行,每行都有一个名为UPDATE DATE的列。

现在,我需要通过此天才作业在数据库中进行增量加载。我应该在UPDATE DATE > GLOBAL UPDATE DATE处获取行,并将其加载到数据仓库中。

我试图将全局更新日期放入变量中,并运行作业以选择更新日期> GLOBAL UPDATE DATE的行。

下面是我的工作:在tjavaFlex中,我创建了一个包含查询和全局更新变量的字符串。 查询是:

String Query = "SELECT *  FROM [ProjetBI_DW].[dbo].[W_CLIENT_D] where [UPDATE_DATE]";

并在体内:

Query = Query + ">" + row5.UPDATEDATE ;

https://i.stack.imgur.com/uJvaz.png

1 个答案:

答案 0 :(得分:0)

我认为您不能使用

Query + ">" + row5.UPDATEDATE ;

由于row5是当前流,因此无法在tMSSQLInput_5组件中使用它。您应该使用全局变量或上下文变量。

在第一个子作业中,应将更新日期放在全局变量或上下文变量中。

“ tParam”组件中的查询应仅返回一行“ globalUpdateDate”。 然后,您可以使用简单的tJavaRow代替tJavaFlex并使用代码:

context.myGlobalUpdateDate = input_row.globalUpdateDate

别忘了在作业中声明上下文变量。

然后在tMSSSQLInput_5中,将查询与上下文变量一起使用。

"SELECT *  FROM [ProjetBI_DW].[dbo].[W_CLIENT_D] where [UPDATE_DATE] > '"+context.myGlobalUpdateDate+"'"