使用Talend Open Studio将数据分步从oracle导入到hive中

时间:2022-02-16 22:39:32

先使用Tos建立模型,将Oracle中的数据导入到本地:

使用Talend Open Studio将数据分步从oracle导入到hive中

build job后,形成独立可以运行的程序:

使用Talend Open Studio将数据分步从oracle导入到hive中

使用Talend Open Studio将数据分步从oracle导入到hive中

将生成的zip文件,上传到hadoop集群上,有hive环境的机器上:

[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语句执行的结果,存放在user_activity2中。

hive建表语句:

使用Talend Open Studio将数据分步从oracle导入到hive中

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)

将数据导入到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 成都高新区合作社区卫生服务中心 合作 1 急性支气管炎 谭万龙 成都高新区合作社区卫生服务中心 1E972231-C65A-4CE3-9233-8EA1B18058DE 灭菌注射用水 d875aacf-4723-4777-91ec-12d63732b58f 0 0 其他 合作 2014-02-27
F805418B-335F-4CA3-A209-7C9655148146 余泽英 2 47 成都高新区合作社区卫生服务中心 合作

查询语句:

select a.个人id,
b.姓名,
b.性别,
round((sysdate - b.出生日期) / 365) as fage,
b.建档单位,
replace(replace(replace(b.建档单位, '高新区'), '社区卫生服务中心'),
'成都') 建档社区,
1 as ftype,
a.问题编码,
a.问题名称,
a.处理医生,
c.机构名,
a.服务记录id,
f.名称,
f.id 药品ID ,
f.抗生素,
f.激素类药,
case when f.药品来源 is null then '其他' else f.药品来源 end 药品来源,
f.基药分类,
replace(replace(replace(c.机构名, '高新区'), '社区卫生服务中心'),'成都') 诊疗社区,
to_char(a.发现日期,
'yyyy-mm-dd') 诊疗日期
from ZLCHS.个人问题列表 a,
ZLCHS.个人信息 b,
ZLCHS.服务活动记录 c,
(select d.事件id, e.名称, e.id, h.药品来源, h.基药分类, g.抗生素, g.激素类药
from ZLCHS.个人费用记录 d, ZLCHS.收费项目目录 e, ZLCHS.药品规格 h, ZLCHS.药品特性 g
where d.收费项目id = e.id
and d.收据费目 in ('西药费', '中草药费', '中成药费')
and h.药品id(+) = e.id
and h.药名id = g.药名id) f
where a.个人id = b.id(+)
and a.服务记录id = c.id(+)
and a.服务记录id = f.事件id(+)

加入分区字段:

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)

默认的字段分隔符为ascii码的控制符\001,建表的时候用fields terminated by '\001',如果要测试的话,造数据在vi 打开文件里面,用ctrl+v然后再ctrl+a可以输入这个控制符\001。按顺序,\002的输入方式为ctrl+v,ctrl+b。以此类推。

使用Talend Open Studio将数据分步从oracle导入到hive中

使用Talend Open Studio将数据分步从oracle导入到hive中的更多相关文章

  1. Talend 将Oracle中数据导入到hive中,根据系统时间设置hive分区字段

    首先,概览下任务图: 流程是,先用tHDFSDelete将hdfs上的文件删除掉,然后将oracle中的机构表中的数据导入到HDFS中:建立hive连接->hive建表->tJava获取系 ...

  2. 使用Sqoop,最终导入到hive中的数据和原数据库中数据不一致解决办法

            Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL , ...

  3. 把HDFS上的数据导入到Hive中

    1. 首先下载测试数据,数据也可以创建 http://files.grouplens.org/datasets/movielens/ml-latest-small.zip 2. 数据类型与字段名称 m ...

  4. 使用sqoop将mysql数据导入到hive中

    首先准备工具环境:hadoop2.7+mysql5.7+sqoop1.4+hive3.1 准备一张数据库表: 接下来就可以操作了... 一.将MySQL数据导入到hdfs 首先我测试将zhaopin表 ...

  5. 基于ASP.NET几十万数据几秒钟就可以导入到数据库中

    /// <summary> /// 一.构建模拟数据存放于DataTable /// </summary> /// <returns>DataTable</r ...

  6. 如何将数据导入到hive中

    可以通过多种方式将数据导入hive表 1.通过外部表导入 用户在hive上建external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表. ...

  7. sqlserver 中数据导入到mysql中的方法以及注意事项

    数据导入从sql server 到mysql (将数据以文本格式从sqlserver中导出,注意编码格式,再将文本文件导入mysql中): 1.若从slqserver中导出的表中不包含中文采用: bc ...

  8. hdfs数据到hive中,以及hdfs数据隐身理解

    hdfs数据到hive中: 假设hdfs中已存在好了数据,路径是hdfs:/localhost:9000/user/user_w/hive_g2park/user_center_enterprise_ ...

  9. oracle数据库中导入Excel表格中的数据

    1.点击[工具]-->[ODBC 导入器],如图: 2.在导入器里选择第一个[来自ODBC的数据],用户名/系统DSN-->填写[Excel Files],输入用户名和密码,点击 [连接] ...

随机推荐

  1. Cheap Hollister Clothing

    (link to hollisterco site), Spectacles don't simply take care of the eye area inside sun; Putting th ...

  2. GCD三种队列

    :dispatch_get_global_queue 后台执行队列 :dispatch_get_main_queue 主队列 :dispatch_queue_create("test&quo ...

  3. 如何在Linux中关闭apache服务&lpar;转&rpar;

    ??? 最近在写一个简单的http服务器,调试的时候发现apache服务器也在机器上跑着,所以得先把apache关掉.当时装apache的时候就是用了普通的sudo get,也不知道装到哪儿了.到网上 ...

  4. C语言位运算符:与、或、异或、取反,左移和右移

    C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | ...

  5. ACM——线性表操作

    线性表操作 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:2795            测试通过:589 描述 线性表是n个元素 ...

  6. 安装Discuz&excl;论坛时提示&OpenCurlyDoubleQuote;mysqli&lowbar;connect&lpar;&rpar; 不支持 advice&lowbar;mysqli&lowbar;connect”

    安装Discuz!论坛时提示“不支持Mysql数据库,无法安装论坛”的解决方法1,在系统的 system32(C:\windows\system32)目录下缺少libmysql.dll文件,解决方法是 ...

  7. 关于Apacheserver的訪问控制

    Apache的訪问控制指对不论什么资源的不论什么方式的訪问控制. 一.基于主机或者IP地址的控制 这样的訪问控制基于訪问者的主机名或者IP地址,通过使用 Deny 和 Allow 指令.实现同意或者禁 ...

  8. Spring Data(二)查询

    Spring Data(二)查询 接着上一篇,我们继续讲解Spring Data查询的策略. 查询的生成 查询的构建机制对于Spring Data的基础是非常有用的.构建的机制将截断前缀find-By ...

  9. Nginx &plus; Keepalived实现应用高可用负载均衡功能

    说明:此处仅介绍 Keepalived 实现nginx负载均衡器的高可用,关于nginx介绍和负载均衡实现可查看我的另两篇博文 Nginx负载均衡 和 Nginx配置了解 应用背景:实现高可用,避免单 ...

  10. 怎么安装Scrapy框架以及安装时出现的一系列错误(win7 64位 python3 pycharm)

    因为要学习爬虫,就打算安装Scrapy框架,以下是我安装该模块的步骤,适合于刚入门的小白: 一.打开pycharm,依次点击File---->setting---->Project---- ...