2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > HUE WorkFlow Schedule 调用Hive参数传递 外部参数传递 时间参数传递

HUE WorkFlow Schedule 调用Hive参数传递 外部参数传递 时间参数传递

时间:2019-11-16 02:26:03

相关推荐

HUE WorkFlow Schedule 调用Hive参数传递 外部参数传递 时间参数传递

目录

WorkFlow传静态参数

Schedule 传动态参数

oozie常用的系统常量

场景:HUE执行任务需要从外部传入参数,不能在脚本写死,比较麻烦

WorkFlow传静态参数

执行的脚本代码如下

CREATE EXTERNAL TABLE ${hivevar:database}.${hivevar:tableName}${pt_tab}(key string ,comments_count int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'WITH SERDEPROPERTIES ( "hbase.columns.mapping"=":key,fn:comments_count" )TBLPROPERTIES("hbase.table.name" = "${hivevar:database}:${hivevar:tableName}${pt_tab}");

在hue中添加的参数

tableName=artcile_tableNamedatebase=ods_temp

脚本中调用方式为

${hivevar:tableName}${hivevar:ods_temp}

Schedule 传动态参数

在WorkFlow中添加的参数pt_tab是从Schedule传入的,

脚本中使用方式为

${pt_tab}

注意: pt_tab 参数命名时不要使用数字开头的变量,所有Schedule无法识别、引用,要以字母开头或者下划线开头

Schedule配置为

${coord:formatTime(coord:dateOffset(coord:nominalTime(), -7, 'DAY'), 'yyyyw')}

pt_tab传入调用时间的七天前所在的年周(如第10周:10)

问题:为什么不使用hive中设置参数

答:之前设置过下面代码配置,但是调用时无法当作表名来使用,只能当作条件来使用,比如(date='${zh.wk}')

set zh.wk= CONCAT(year(date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7)) ,weekofyear(date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7)));

问题:hivevar和hiveconf区别

答:hiveconf:hive相关配置,变量取值必须要使用hiveconf作为前缀参数,具体格式如下:${hiveconf:key}

hivevar:用户自定义变量,取值可以不使用前缀hivevar,具体格式如下:

使用前缀:

${hivevar:key}

不使用前缀:

${key}

oozie常用的系统常量

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。