【问题标题】:incremental load in datawarehouse数据仓库中的增量负载
【发布时间】:2019-10-28 14:57:23
【问题描述】:

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

现在我需要使用这个 talend 作业在数据库中进行增量加载。我应该获取UPDATE DATE > GLOBAL UPDATE DATE 所在的行并将它们加载到数据仓库中。

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

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

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

在体内:

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

【问题讨论】:

    标签: talend data-warehouse


    【解决方案1】:

    我觉得你不能用

    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+"'"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      相关资源
      最近更新 更多