如何在每个作业结束时在 talend 中实现日志记录?
How to Implement logging at the end of each job In talend?
我是 Talend 的新手 os。
不过,我接到了一个任务:
- 创建文件分隔的 .csv 元数据(一个用于潜在客户和机会)。
- 将文件移动到您在 AWS 服务器上的代表os目录(etl_process1 登录)。
- 创建两个 tables sfdc_leads_reporting_raw 和 sfdc_opp_reporting_raw.
- 将文件中的数据加载到 table 中。确保在创建元数据模式时正确使用数据类型 & tables.
至第 4 步完成。
现在的问题是:
如何在每个作业结束时执行日志记录以报告潜在客户数量(潜在客户中不同 ID 的计数 table)和创建的机会数量(机会 ID 的数量)按阶段(有多少人转化、合格、closed 获胜和死亡)?
不胜感激。
您可以在作业结束时在子作业中使用全局变量获取此数据。大多数组件提供一个名为 tComponent_NB_LINE(或数据库组件的 _NB_LINE_INSERTED)的全局变量,它为您提供组件输出的行数。
例如 tFileOutputDelimited_1_NB_LINE
或 tOracleOutput_1_NB_LINE_INSERTED
.
使用这些变量,您可以登录控制台或文件。
这是一个简单的例子。如果您的工作中有 tOracleOutput_1
,您可以这样做:
tPostJob -- OnComponentOk -- tFixedFlowInput -- Main -- tLogRow
在 tFixedFlowInput 中检索变量
(Integer)globalMap.get("tOracleOutput_1_NB_LINE_INSERTED")`.
如果您需要记录聚合信息,您可以将 tAggregateRow
附加到您的输出组件,并使用 tSetGlobalVar
按特定条件进行计数。
我是 Talend 的新手 os。
不过,我接到了一个任务:
- 创建文件分隔的 .csv 元数据(一个用于潜在客户和机会)。
- 将文件移动到您在 AWS 服务器上的代表os目录(etl_process1 登录)。
- 创建两个 tables sfdc_leads_reporting_raw 和 sfdc_opp_reporting_raw.
- 将文件中的数据加载到 table 中。确保在创建元数据模式时正确使用数据类型 & tables.
至第 4 步完成。
现在的问题是:
如何在每个作业结束时执行日志记录以报告潜在客户数量(潜在客户中不同 ID 的计数 table)和创建的机会数量(机会 ID 的数量)按阶段(有多少人转化、合格、closed 获胜和死亡)?
不胜感激。
您可以在作业结束时在子作业中使用全局变量获取此数据。大多数组件提供一个名为 tComponent_NB_LINE(或数据库组件的 _NB_LINE_INSERTED)的全局变量,它为您提供组件输出的行数。
例如 tFileOutputDelimited_1_NB_LINE
或 tOracleOutput_1_NB_LINE_INSERTED
.
使用这些变量,您可以登录控制台或文件。
这是一个简单的例子。如果您的工作中有 tOracleOutput_1
,您可以这样做:
tPostJob -- OnComponentOk -- tFixedFlowInput -- Main -- tLogRow
在 tFixedFlowInput 中检索变量
(Integer)globalMap.get("tOracleOutput_1_NB_LINE_INSERTED")`.
如果您需要记录聚合信息,您可以将 tAggregateRow
附加到您的输出组件,并使用 tSetGlobalVar
按特定条件进行计数。