日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2024/8/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HUE WorkFlow Schedule 调用Hive参数传递,外部参数传递,时间参数传递 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

目錄

WorkFlow傳靜態(tài)參數(shù)

Schedule 傳動態(tài)參數(shù)

oozie常用的系統(tǒng)常量


  • ?場景:HUE執(zhí)行任務(wù)需要從外部傳入?yún)?shù),不能在腳本寫死,比較麻煩

WorkFlow傳靜態(tài)參數(shù)

?

?執(zhí)行的腳本代碼如下?

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中添加的參數(shù)

tableName=artcile_tableNamedatebase=ods_temp

腳本中調(diào)用方式為

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

Schedule 傳動態(tài)參數(shù)

在WorkFlow中添加的參數(shù)pt_tab是從Schedule傳入的,

腳本中使用方式為

${pt_tab}

注意: pt_tab 參數(shù)命名時不要使用數(shù)字開頭的變量,所有Schedule無法識別、引用,要以字母開頭或者下劃線開頭

Schedule配置為

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

pt_tab傳入調(diào)用時間的七天前所在的年周(如2019年第10周:201910)

?

問題:為什么不使用hive中設(shè)置參數(shù)

答:之前設(shè)置過下面代碼配置,但是調(diào)用時無法當作表名來使用,只能當作條件來使用,比如(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區(qū)別

答:hiveconf:hive相關(guān)配置,變量取值必須要使用hiveconf作為前綴參數(shù),具體格式如下:??????${hiveconf:key}??

hivevar:用戶自定義變量,取值可以不使用前綴hivevar,具體格式如下:

使用前綴:

???????${hivevar:key}

不使用前綴:

???????${key}
?

?

oozie常用的系統(tǒng)常量

常量表示形式含義說明
${coord:minutes(int n)}返回日期時間:從一開始,周期執(zhí)行n分鐘
${coord:hours(int n)}返回日期時間:從一開始,周期執(zhí)行n * 60分鐘
${coord:days(int n)}返回日期時間:從一開始,周期執(zhí)行n * 24 * 60分鐘
${coord:months(int n)}返回日期時間:從一開始,周期執(zhí)行n * M * 24 * 60分鐘(M表示一個月的天數(shù))
${coord:endOfDays(int n)}返回日期時間:從當天的最晚時間(即下一天)開始,周期執(zhí)行n * 24 * 60分鐘
${coord:endOfMonths(1)}返回日期時間:從當月的最晚時間開始(即下個月初),周期執(zhí)行n * 24 * 60分鐘
${coord:current(int n)}返回日期時間:從一個Coordinator動作(Action)創(chuàng)建時開始計算,第n個dataset實例執(zhí)行時間
${coord:dataIn(String name)}在輸入事件(input-events)中,解析dataset實例包含的所有的URI
${coord:dataOut(String name)}在輸出事件(output-events)中,解析dataset實例包含的所有的URI
${coord:offset(int n, String timeUnit)}表示時間偏移,如果一個Coordinator動作創(chuàng)建時間為T,n為正數(shù)表示向時刻T之后偏移,n為負數(shù)向向時刻T之前偏移,timeUnit表示時間單位(選項有MINUTE、HOUR、DAY、MONTH、YEAR)
${coord:hoursInDay(int n)}指定的第n天的小時數(shù),n>0表示向后數(shù)第n天的小時數(shù),n=0表示當天小時數(shù),n<0表示向前數(shù)第n天的小時數(shù)
${coord:daysInMonth(int n)}指定的第n個月的天數(shù),n>0表示向后數(shù)第n個月的天數(shù),n=0表示當月的天數(shù),n<0表示向前數(shù)第n個月的天數(shù)
${coord:tzOffset()}ataset對應(yīng)的時區(qū)與Coordinator Job的時區(qū)所差的分鐘數(shù)
${coord:latest(int n)}最近以來,當前可以用的第n個dataset實例
${coord:future(int n, int limit)}當前時間之后的dataset實例,n>=0,當n=0時表示立即可用的dataset實例,limit表示dataset實例的個數(shù)
${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動作的實際創(chuàng)建時間。例如:start=”2011-05-01T24:00Z”,end=”2011-12-31T24:00Z”,frequency=”${coord:days(1)}”,則實際時間為:2011-05-01,2011-05-02,2011-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指定模式

總結(jié)

以上是生活随笔為你收集整理的HUE WorkFlow Schedule 调用Hive参数传递,外部参数传递,时间参数传递的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。