网站设计要如何做支付功能,网站建设实训报告收获,公司网站建设方案详细,设计友好的网站目录
WorkFlow传静态参数
Schedule 传动态参数
oozie常用的系统常量 场景#xff1a;HUE执行任务需要从外部传入参数#xff0c;不能在脚本写死#xff0c;比较麻烦
WorkFlow传静态参数 执行的脚本代码如下
CREATE EXTERNAL TABLE ${hivevar:database}.${hivevar:table…
目录
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中添加的参数
tableNameartcile_tableNamedatebaseods_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传入调用时间的七天前所在的年周如2019年第10周201910 问题为什么不使用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区别
答hiveconfhive相关配置变量取值必须要使用hiveconf作为前缀参数具体格式如下: ${hiveconf:key}
hivevar用户自定义变量取值可以不使用前缀hivevar具体格式如下
使用前缀: ${hivevar:key}
不使用前缀: ${key} oozie常用的系统常量
常量表示形式含义说明${coord:minutes(int n)}返回日期时间从一开始周期执行n分钟${coord:hours(int n)}返回日期时间从一开始周期执行n * 60分钟${coord:days(int n)}返回日期时间从一开始周期执行n * 24 * 60分钟${coord:months(int n)}返回日期时间从一开始周期执行n * M * 24 * 60分钟M表示一个月的天数${coord:endOfDays(int n)}返回日期时间从当天的最晚时间即下一天开始周期执行n * 24 * 60分钟${coord:endOfMonths(1)}返回日期时间从当月的最晚时间开始即下个月初周期执行n * 24 * 60分钟${coord:current(int n)}返回日期时间从一个Coordinator动作Action创建时开始计算第n个dataset实例执行时间${coord:dataIn(String name)}在输入事件input-events中解析dataset实例包含的所有的URI${coord:dataOut(String name)}在输出事件output-events中解析dataset实例包含的所有的URI${coord:offset(int n, String timeUnit)}表示时间偏移如果一个Coordinator动作创建时间为Tn为正数表示向时刻T之后偏移n为负数向向时刻T之前偏移timeUnit表示时间单位选项有MINUTE、HOUR、DAY、MONTH、YEAR${coord:hoursInDay(int n)}指定的第n天的小时数n0表示向后数第n天的小时数n0表示当天小时数n0表示向前数第n天的小时数${coord:daysInMonth(int n)}指定的第n个月的天数n0表示向后数第n个月的天数n0表示当月的天数n0表示向前数第n个月的天数${coord:tzOffset()}ataset对应的时区与Coordinator Job的时区所差的分钟数${coord:latest(int n)}最近以来当前可以用的第n个dataset实例${coord:future(int n, int limit)}当前时间之后的dataset实例n0当n0时表示立即可用的dataset实例limit表示dataset实例的个数${coord:nominalTime()}nominal时间等于Coordinator Job启动时间加上多个Coordinator Job的频率所得到的日期时间。例如start”2009-01-01T24:00Z”end”2009-12-31T24:00Z”frequency”${coord:days(1)}”frequency”${coord:days(1)}则nominal时间为2009-01-02T00:00Z、2009-01-03T00:00Z、2009-01-04T00:00Z、…、2010-01-01T00:00Z${coord:actualTime()}Coordinator动作的实际创建时间。例如start”2011-05-01T24:00Z”end”2011-12-31T24:00Z”frequency”${coord:days(1)}”则实际时间为2011-05-012011-05-022011-05-03…2011-12-31${coord:user()}启动当前Coordinator Job的用户名称${coord:dateOffset(String baseDate, int instance, String timeUnit)}计算新的日期时间的公式newDate baseDate instance * timeUnit如baseDate’2009-01-01T00:00Z’instance’2′timeUnit’MONTH’则计算得到的新的日期时间为’2009-03-01T00:00Z’。${coord:formatTime(String timeStamp, String format)}格式化时间字符串format指定模式