通常hive etl工程師,寫好hql語句後,是乙個檔案,如何把檔案組織起來整體執行呢?
這時就需要乙個工具來工程化地執行hql檔案。
根據etl的特性,想了下目前需要提供的功能列舉如下:
1.傳參
2.寫**注釋
3.自定義hiveconf(set ***=***)
hive提供的service比較多,具體可以通過hive --help(注意不是hive -h),這裡主要針對cli(也是default service)進行,
我們使用hive --service cli -h來看看以上功能是否可以得到解決
[dcli@gd6g12s146-hadoop-namenode2 sql]$ hive --service cli -h
missing argument for option: h
usage: hive
commands. e.g. -d a=b or --define a=b
--database specify the database to use
-e sql from command line
-f sql from files
-h,--help print help information
-h connecting to hive server on remote host
--hiveconf use value for given property
-i initialization sql file
-p connecting to hive server on port number
-s,--silent silent mode in interactive shell
-v,--verbose verbose mode (echo executed sql to the console)
嘗試使用hive自帶功能,實現以上需求
一、測試自定義傳參有效
[dcli@gd6g12s146-hadoop-namenode2 sql]$ hive -f test.sql --hivevar num='2'
slf4j: found binding in [jar:file:/home/vipshop/platform/hive-0.11.0-build/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/staticloggerbinder.class]
slf4j: see for an explanation.
ok_c0
2time taken: 6.141 seconds, fetched: 1 row(s)
[dcli@gd6g12s146-hadoop-namenode2 sql]$ cat test.sql
select '$' from default.dual;
二、測試自定義設定有效
[dcli@gd6g12s146-hadoop-namenode2 sql]$ hive -f test.sql --hivevar num='2'
slf4j: found binding in [jar:file:/home/vipshop/platform/hive-0.11.0-build/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/staticloggerbinder.class]
slf4j: see for an explanation.ok2
time taken: 8.25 seconds, fetched: 1 row(s)
[dcli@gd6g12s146-hadoop-namenode2 sql]$ cat test.sql
set hive.cli.print.header=false;
select '$' from default.dual;
三、測試注釋 設定有效,支援'--'注釋方法,但是不支援'#'(如果不是**座,似乎也就夠了。。。)
[dcli@gd6g12s146-hadoop-namenode2 sql]$ hive -f test.sql --hivevar num='2'
slf4j: see for an explanation.
ok_c0
2time taken: 4.639 seconds, fetched: 1 row(s)
[dcli@gd6g12s146-hadoop-namenode2 sql]$ cat test.sql
--author: tony.li
--desc: test hive service(cli) conf
--select '$' from default.dual;
如上,我們就可以實現對hql指令碼的工程化執行了(當然外面可以包裝乙個指令碼,實現對常用引數的配置),然後配合排程系統進行排程執行。
前端工程化
為什麼出現了前端工程化?09年之前,我們學習的css,div,js只是對頁面設計進行乙個打輔助的功能,當時只能勉強的成為頁面設計師,為什麼會出現前端工程師 1.突然間前端的需求逐漸增多,使用者對介面的要求越來越高,前端範疇越來越大。2.前後端總是保持一致才能進行開發,不能分開開發,提出前端工程化,也...
前端工程化
一 什麼是前端工程化 根據業務特點,將前端開發流程規範化 標準化 包括開發流程 技術選型,規範,構建發布等用於提公升前端工程師開發效率和 質量,提高產品的質量。實現前端工程化的目的 就是通過流程規範 自動化工具來提公升前端的開發效率 效能 質量 多人協作能力以及開發體驗。前端工程化體系分為 元件化 ...
前端工程化
老大考慮到團隊成員學習的曲線,最終選擇thunk 為了更方便團隊人員使用,封裝直接的thunk,和cobinereducer 1 專案分為四大塊,服務治理,資源治理,診斷除錯,分析管理 幾十個元件,不可能將所有的狀態解除安裝乙個reducer裡面來管理 不利於維護 然後因為封裝了元件thunk所以要...