数据湖工厂 DLF
数据湖工厂 DLF
- 最新动态
- 产品介绍
-
用户指南
- 环境准备
- IAM权限管理
- 数据管理
- 数据集成
- 数据开发
- 解决方案
- 运维调度
- 配置管理
- 配置
- 使用教程
-
参考
-
节点
- 节点概述
- CDM Job
- DIS Stream
- DIS Dump
- DIS Client
- Rest Client
- Import GES
- MRS Kafka
- Kafka Client
- CS Job
- DLI SQL
- DLI Spark
- DWS SQL
- MRS SparkSQL
- MRS Hive SQL
- MRS Presto SQL
- MRS Spark
- MRS Spark Python
- MRS Flink Job
- MRS MapReduce
- CSS
- Shell
- RDS SQL
- ETL Job
- OCR
- Create OBS
- Delete OBS
- OBS Manager
- Open/Close Resource
- Data Quality Monitor
- Sub Job
- SMN
- Dummy
- For Each
- 表达式
-
节点
- 修订记录
- API参考
- 常见问题
- 产品术语
- 通用参考
链接复制成功!
表达式使用示例
通过本示例,用户可以了解数据开发模块 EL表达式的如下应用:
- 如何在数据开发模块的SQL脚本中使用变量?
- 作业如何传递参数给SQL脚本变量?
- 在参数中如何使用EL表达式?
背景信息
使用数据开发模块的作业编排和作业调度功能,每日通过统计交易明细表,生成日交易统计报表。
本示例涉及的数据表如下所示:
- trade_log:记录每一笔交易数据。
- trade_report:根据trade_log统计产生,记录每日交易汇总。
前提条件
- 已建立DLI的数据连接,以“dli_demo”数据连接为例。
如未建立,请参考创建数据连接进行操作。
- 已在DLI中创建数据库,以“dli_db”数据库为例。
如未创建,请参考新建数据库进行操作。
- 已在“dli_db”数据库中创建数据表trade_log和trade_report。
如未创建,请参考新建数据表(可视化模式)或新建数据表(DDL模式)进行操作。
操作步骤
- 新建和开发SQL脚本。
- 在数据开发模块控制台的左侧导航栏,选择“数据开发 > 脚本开发”。
- 进入右侧区域页面,选择“新建SQL脚本 > DLI”。
- 进入SQL脚本开发页面,在脚本属性栏选择“数据连接”、“数据库”、“资源队列”。
图1 脚本属性
- 在脚本编辑器中输入以下SQL语句。
INSERT OVERWRITE TABLE trade_report SELECT sum(trade_count), '${yesterday}' FROM trade_log where date_format(trade_time, 'yyyy-MM-dd') = '${yesterday}'
- 单击
,将脚本的名称设置为“generate_trade_report”。
- 新建和开发作业。
- 在数据开发模块控制台的左侧导航栏,选择“数据开发 > 作业开发”。
- 进入右侧区域页面,单击“新建作业”,新建一个名称为“job”的空作业。
图2 新建作业02
- 进入作业开发页面,将DLI SQL节点拖至画布中,单击其图标并配置“节点属性”。
图3 节点属性
关键属性说明:
- SQL脚本:关联1中开发完成的SQL脚本“generate_trade_report”。
- 数据库名称:自动填写SQL脚本“generate_trade_report”中选择的数据库。
- 队列名称:自动填写SQL脚本“generate_trade_report”中选择的资源队列。
- 脚本参数:显示SQL脚本“generate_trade_report”中的参数“yesterday”,输入以下EL表达式作为其参数值。
#{Job.getYesterday("yyyy-MM-dd")}
EL表达式说明:Job为作业对象,通过getYesterday方法获取作业计划执行时间前一天的时间,时间格式为yyyy-MM-dd。
假设作业计划执行时间为2018/9/26 01:00:00,这个表达式计算结果是2018-09-25,该计算结果将替换SQL脚本中的${yesterday}参数。替换后的SQL内容如下:
INSERT OVERWRITE TABLE trade_report SELECT sum(trade_count), '2018-09-25' FROM trade_log where date_format(trade_time, 'yyyy-MM-dd') = '2018-09-25'
- 单击
,测试运行作业。
- 作业测试无问题后,单击
,保存作业配置。
父主题: 表达式