ETL 语法
ETL 筛选器或 SQL 查询字符串的管理¶
对于每个包含 ETL 筛选器或允许动态语法的 SQL 查询的 ETL 管理窗口,都可以定义参数来设置例程或 ETL 作业的执行筛选器。
对于可以插入 SQL 语言 ETL 筛选器或查询的 ETL 管理窗口,将显示指向此页面的链接。
参数元素列表¶
下面提供了可用参数元素的列表:
| 参数 | 执行步骤中返回的值 |
|---|---|
| {TABLE} | 暂存表 |
| {MAP} | ETL 域代码 |
| {IMP} | 例程代码 |
| {JOB} | ETL 作业代码 |
| {USER} | 运行例程或 ETL 作业的用户代码 |
| {PROCESS} | 数据收集流程代码 |
| {DATETIME} | 运行例程或 ETL 作业的日期和时间。格式:MMDDYYYYHHMMSSLLL(MM 月,DD 日,YYYY 年,HH 小时,MM 分钟,SS 秒,LLL 毫秒) |
| {DATE} | 运行例程或 ETL 作业的日期。格式:MMDDYYYY(MM 月,DD 日,YYYY 年) |
| {TIME} | 运行例程或 ETL 作业的时间。格式:HHMMSSLLL(HH 小时,MM 分钟,SS 秒,LLL 毫秒) |
| {DATE_YYYY} | 运行例程或 ETL 作业的年份(4 位数字) |
| {DATE_YY} | 运行例程或 ETL 作业的年份(2 位数字) |
| {DATE_MM} | 运行例程或 ETL 作业的月份(2 位数字) |
| {DATE_DD} | 运行例程或 ETL 作业的日期(2 位数字) |
| {TIME_HH} | 运行例程或 ETL 作业的小时(2 位数字) |
| {TIME_MI} | 运行例程或 ETL 作业的分钟(2 位数字) |
| {TIME_SS} | 运行例程或 ETL 作业的秒(2 位数字) |
| {TIME_ML} | 运行例程或 ETL 作业的毫秒(2 位数字) |
| {codice_parametro_ETl} | 参数值。示例:假设我们定义了一个参数 "PARAM_AZIENDA",其类型为 "来自导入数据",它取 ETL 维度的值并包含要为其提取数据的实体(例如 A01、A02、A03),您只需编写 COD_AZIENDA IN ({PARAM_AZIENDA}),因为系统会将该指令转换为 COD_AZIENDA IN ('A01', 'A02', 'A03') |
| {sigla_dimensione_ETL} | 系统从 ETL 维度表中确定具有指定缩写的维度类型。系统还可以自动将维度元素中包含的值转换为相同的维度类型。示例:如果我们有一个缩写为 {IMP1} 的数字类型 ETL 维度,假设我们需要将该维度的值乘以 -1,并且考虑到暂存表的所有列均为字符串类型,您只需编写 {IMP1}*-1,而无需编写 TO_NUMBER(IMP1) *-1 |
| {AW | [workspace code] |
| {AW | [workspace code] |
| {AW | [workspace code] |
| {AW | [workspace code] |
| {AW | [workspace code] |
注意:可以使用语法 #{}# 来防止系统在转换某些关键字时将值限定在单引号之间。
例如,语法 {PROCESS} 被转换为 'BUGDET';而语法 #{PROCESS}# 被转换为 BUDGET。
例如,当您希望将参数语法用作表名的一部分或存储过程中的参数时,这非常有用。
注意:还可以使用 统一 SQL 语法。
警告¶
- 每当需要在 ETL 筛选器或 SQL 查询中引用 ETL 维度时,不得使用自定义名称。而必须使用 Tagetik 应用程序数据库中定义的暂存表列的字段名称——例如 CAMPO1、CAMPO2 等
- 每当需要编写应用于暂存表的筛选器以引用其字段时,必须使用它们在 Tagetik 应用程序数据库上的名称,即 CAMPO1、CAMPO2 等
- 每当需要编写应用于数据加载目标表的筛选器以引用其字段时,必须使用它们在表所在数据库上的名称
- 在查询中不能按此顺序同时使用字符 '{' 和 '}',除非用于标识上述指定的参数。