使用Talend Open Studio将数据分步从oracle导入到hive中
生活随笔
收集整理的這篇文章主要介紹了
使用Talend Open Studio将数据分步从oracle导入到hive中
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
先使用Tos建立模型,將Oracle中的數(shù)據(jù)導(dǎo)入到本地:
build job后,形成獨(dú)立可以運(yùn)行的程序:
將生成的zip文件,上傳到hadoop集群上,有hive環(huán)境的機(jī)器上:
[hive@h1 work]$ ls file.zip jobInfo.properties join lib [hive@h1 work]$ cd join/ [hive@h1 join]$ ls bigdatademo items join_0_1.jar join_run.bat join_run.sh src user_activity2 [hive@h1 join]$ pwd /home/work/join [hive@h1 join]$ ls bigdatademo items join_0_1.jar join_run.bat join_run.sh src user_activity2 [hive@h1 join]$ pwd /home/work/join [hive@h1 join]$ ./join_run.sh > user_activity2 2>&1 &這樣就得到了SQL語(yǔ)句執(zhí)行的結(jié)果,存放在user_activity2中。
hive建表語(yǔ)句:
?
hive> show create table user_activity2; OK CREATE TABLE `user_activity2`(`user_id` string, `user_name` string, `sex` string, `age` string, `reg_hosp` string, `reg_community` string, `type` string, `disease_code` string, `disease` string, `doctor` string, `hosp_name` string, `service_id` string, `drug_id` string, `drug_name` string, `antibiotic` string, `hormone` string, `source` string, `base_drug` string, `community` string, `date` string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION'hdfs://h1:8020/apps/hive/warehouse/cyw.db/user_activity2' TBLPROPERTIES ('transient_lastDdlTime'='1435547544') Time taken: 0.288 seconds, Fetched: 31 row(s)將數(shù)據(jù)導(dǎo)入到hive表中:load data local inpath './user_activity2' into table user_activity2;
hive> show tables; OK Time taken: 0.794 seconds hive> use cyw; OK Time taken: 0.256 seconds hive> show tables; OK user_activity user_activity2 Time taken: 0.136 seconds, Fetched: 2 row(s) hive> load data local inpath './user_activity2' into table user_activity2; Loading data to table cyw.user_activity2 Table cyw.user_activity2 stats: [numFiles=1, totalSize=216927483] OK Time taken: 10.898 seconds hive> select * from user_activity2; OK F805418B-335F-4CA3-A209-7C9655148146 余澤英 2 47 成都高新區(qū)合作社區(qū)衛(wèi)生服務(wù)中心 合作 1 急性支氣管炎 譚萬(wàn)龍 成都高新區(qū)合作社區(qū)衛(wèi)生服務(wù)中心 1E972231-C65A-4CE3-9233-8EA1B18058DE 滅菌注射用水 d875aacf-4723-4777-91ec-12d63732b58f 0 0 其他 合作 2014-02-27 F805418B-335F-4CA3-A209-7C9655148146 余澤英 2 47 成都高新區(qū)合作社區(qū)衛(wèi)生服務(wù)中心 合作查詢語(yǔ)句:
select a.個(gè)人id,b.姓名,b.性別,round((sysdate - b.出生日期) / 365) as fage,b.建檔單位,replace(replace(replace(b.建檔單位, '高新區(qū)'), '社區(qū)衛(wèi)生服務(wù)中心'),'成都') 建檔社區(qū),1 as ftype,a.問(wèn)題編碼,a.問(wèn)題名稱,a.處理醫(yī)生,c.機(jī)構(gòu)名,a.服務(wù)記錄id,f.名稱,f.id 藥品ID ,f.抗生素, f.激素類藥,case when f.藥品來(lái)源 is null then '其他' else f.藥品來(lái)源 end 藥品來(lái)源, f.基藥分類,replace(replace(replace(c.機(jī)構(gòu)名, '高新區(qū)'), '社區(qū)衛(wèi)生服務(wù)中心'),'成都') 診療社區(qū), to_char(a.發(fā)現(xiàn)日期, 'yyyy-mm-dd') 診療日期from ZLCHS.個(gè)人問(wèn)題列表 a,ZLCHS.個(gè)人信息 b,ZLCHS.服務(wù)活動(dòng)記錄 c,(select d.事件id, e.名稱, e.id, h.藥品來(lái)源, h.基藥分類, g.抗生素, g.激素類藥from ZLCHS.個(gè)人費(fèi)用記錄 d, ZLCHS.收費(fèi)項(xiàng)目目錄 e, ZLCHS.藥品規(guī)格 h, ZLCHS.藥品特性 gwhere d.收費(fèi)項(xiàng)目id = e.idand d.收據(jù)費(fèi)目 in ('西藥費(fèi)', '中草藥費(fèi)', '中成藥費(fèi)')and h.藥品id(+) = e.idand h.藥名id = g.藥名id) f where a.個(gè)人id = b.id(+)and a.服務(wù)記錄id = c.id(+)and a.服務(wù)記錄id = f.事件id(+)?
加入分區(qū)字段:
CREATE TABLE `user_activity`(`user_id` string, `user_name` string, `sex` string, `age` string, `reg_hosp` string, `reg_community` string, `type` string, `disease_code` string, `disease` string, `doctor` string, `hosp_name` string, `service_id` string, `drug_id` string, `drug_name` string, `antibiotic` string, `hormone` string, `source` string, `base_drug` string, `community` string, `date` string) PARTITIONED BY ( `dt` string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION'hdfs://h1:8020/apps/hive/warehouse/cyw.db/user_activity' TBLPROPERTIES ('transient_lastDdlTime'='1435559269') Time taken: 0.252 seconds, Fetched: 33 row(s)?
默認(rèn)的字段分隔符為ascii碼的控制符\001,建表的時(shí)候用fields terminated by '\001',如果要測(cè)試的話,造數(shù)據(jù)在vi 打開(kāi)文件里面,用ctrl+v然后再ctrl+a可以輸入這個(gè)控制符\001。按順序,\002的輸入方式為ctrl+v,ctrl+b。以此類推。
?
?
總結(jié)
以上是生活随笔為你收集整理的使用Talend Open Studio将数据分步从oracle导入到hive中的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 瀚思推出国内首个企业级大数据安全分析平台
- 下一篇: 举例说,在命令模式(Command Pa