检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
如何使用表达式方式获取当前时间? 问题描述 如何使用表达式方式获取当前时间? 解决方案 您可以在字段映射界面使用DateUtils.format(${timestamp()},"yyyy-MM-dd HH:mm:ss")表达式获取当前时间,更多表达式设置方式可以参考表达式转换。 父主题:
统,且“文件格式”必须选择“CSV格式”。 图1 正则表达式参数 在迁移CSV格式的文件时,CDM支持使用正则表达式分隔字段,并按照解析后的结果写入目的端。正则表达式语法请参考对应的相关资料,这里举例下面几种日志文件的正则表达式的写法: Log4J日志 Log4J审计日志 Tomcat日志
统,且“文件格式”必须选择“CSV格式”。 图1 正则表达式参数 在迁移CSV格式的文件时,CDM支持使用正则表达式分隔字段,并按照解析后的结果写入目的端。正则表达式语法请参考对应的相关资料,这里举例下面几种日志文件的正则表达式的写法: Log4J日志 Log4J审计日志 Tomcat日志
table_name")}”,如图1所示。 表达式说明如下: 获取作业中“get_cluster”节点的执行结果(“Job.getNodeOutput("get_cluster")”),执行结果是一个JSON字符串。 通过JSON路径(“tables[0].table_name”),获取JSON字符串中字段的值。 图1
EL表达式参考 表达式概述 基础操作符 日期和时间模式 Env内嵌对象 Job内嵌对象 StringUtil内嵌对象 DateUtil内嵌对象 JSONUtil内嵌对象 Loop内嵌对象 OBSUtil内嵌对象 常用EL表达式样例合集 EL表达式使用实例 父主题: 数据开发
规则类型选择“自定义”,呈现此参数,支持正则表达式。 当选择“无”,表示关联了该规则的敏感数据发现任务不生效。无法自动为数据资产分类,需要您手动添加分类。 *正则表达式 识别规则选择“正则表达式”时,呈现此参数。 内容识别:勾选此项后输入自定义正则表达式,该表达式将用于数据内容识别。内容识别正则表达式举例:“^男$|^女&”。
#{Job.getYesterday("yyyy-MM-dd")} EL表达式说明:Job为作业对象,通过getYesterday方法获取作业计划执行时间前一天的时间,时间格式为yyyy-MM-dd。 假设作业计划执行时间为2018/9/26 01:00:00,这个表达式计算
基础操作符 EL表达式支持大部分Java提供的算术和逻辑操作符。 操作符列表 表1 基础操作符 操作符 描述 . 访问一个Bean属性或者一个映射条目 [] 访问一个数组或者链表的元素 () 组织一个子表达式以改变优先级 + 加 - 减或负 * 乘 / 或 div 除 % 或 mod
"city3", "areaCode": "3000" }] } 获取city1的电话区号,EL表达式如下: #{JSONUtil.path(str,"cities[0].areaCode")} 举例 字符串变量str的内容如下:
其中,子作业的关键配置为IF条件设置,本例使用表达式${result}获取作业参数的值。 此处不能使用EL表达式#{Job.getParam("job_param_name")} ,因为此表达式只能直接获取当前作业里配置的参数的value,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。
op.current[0]},循环获取输出结果,详见获取SQL节点的输出结果值。 String getParam(String key) 获取作业参数。 注意此方法只能直接获取当前作业里配置的参数值,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。
日期和时间模式一般在DateUtil内嵌对象和Job内嵌对象中使用,更多日期和时间模式的使用举例,请参见DateUtil内嵌对象和Job内嵌对象。 举例 获取作业计划调度时间的前一天日期,EL表达式如下: #{DateUtil.format(DateUtil.addDays(Job.planTime
getDay(Date date) 从date获取天,例如:date为2018-09-14,则返回14。 从作业调度计划获取具体的天。 #{DateUtil.getDay(Job.planTime)} int getMonth(Date date) 从date获取月,例如:date为2018-09-14,则返回9。
举例3 当前一节点的输出结果是一个字段时,输出结果如[["000"]]所示。第二个节点引用第一个节点的输出,此时可通过EL表达式分割字符串结果,获取前一节点输出的字段值。 #{StringUtil.split(StringUtil.split(StringUtil.split(Job.
Env内嵌对象 Env内嵌对象提供了获取环境变量值的方法。 方法 表1 方法说明 方法 描述 示例 String get(String name) 获取指定名称环境变量值。 获取环境变量名称为test的参数值: #{Env.get("test")} 举例 获取环境变量名称为test的参数值,EL表达式如下:
dataArray[Loop.offset] = Loop.current。 获取For Each循环当前的偏移量,即遍历次数,从0开始。 #{Loop.offset} 举例 For Each节点的子作业参数,获取当前处理到的某行数据的第2个值,EL表达式如下: #{Loop.current[1]}
通过Shell节点执行用户指定的Shell脚本。 Shell节点的后续节点可以通过EL表达式#{Job.getNodeOutput()},获取Shell脚本最后4000字符的标准输出。 使用示例: 获取某个Shell脚本(脚本名称为shell_job1)输出值包含“<name>jack<name1>”的内容,EL表达式如下所示:
op.current[0]},循环获取输出结果,详见获取SQL节点的输出结果值。 String getParam(String key) 获取作业参数。 注意此方法只能直接获取当前作业里配置的参数值,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。
通过内置的正则表达式规则,校验数据表中指定字段的合法情况(如果数据为空,则视为非法字段)。 邮箱校验 通过内置的正则表达式规则,校验数据表中指定字段的合法情况。 正则表达式校验 通过输入自定义的正则表达式,校验数据表中指定字段的合法情况。 IP地址校验 通过内置的正则表达式规则,校验数据表中指定字段的合法情况。
连接的名称,根据连接的数据源类型,用户可自定义便于记忆、区分的连接名。 dm_link 数据库服务器 配置为要连接的数据库的IP地址或域名。 单击输入框后的“选择”,可获取用户的DWS、RDS等实例列表。 192.168.0.1 端口 配置为要连接的数据库的端口。 不同的数据库端口不同,请根据具体情况配置。