简介
此文档完成的操作是:将oracle的数据导入到hive上进行查询统计类的工作
Oracle数据导出
使用PLSQL工具查询导出tsv文件。导出时使用‘#’来讲列拼接起来,用于hive表加载数据文件用
将文件上传至装了Hive的slave1服务器。
连接hive数据仓库
首先ssh登录到master服务器
输入一下命令:(hive装在了slave1节点上所以注意连接jdbc连接字符串 服务器是slave1)
beeline -u 'jdbc:hive2://slave1:10000/default'
创建hive数据库,切换到 hive数据库
create database hive;
use hive;
创建内部表
这里创建的表的列与oracle需要一致。
创建语法 create table 表名 (列名 数据类型,列名 数据类型,) row format delimited fileds terminated by '文本数据的字段间隔符' LINES TERMINATED BY '文本数据的行标识符' ;
Hive的数据类型
Bigint– 主要用于状态,类别,数量的字段, 如status/option/type/quantity
Double– 主要用于金额的字段, 如fee/price/bid
String– 除上述之外的字段基本都使用String, 尤其是id和日期时间这样的字段
需要将创建Oracle或mysql表的语句数据类型对应进行修改,尾部添加row format delimited fileds terminated by '文本数据的字段间隔符' LINES TERMINATED BY '文本数据的行标识符' 就是hive创建表的语句了。
注意在执行创建语句时要将其整理成一行,再复制到终端执行。
加载本地数据
语法
LOAD DATA LOCAL INPATH '数据文件地址/文件' INTO TABLE 要加载的表;
加载HDFS数据将local去掉,不过加载后的HDFS文件数据文件会移动到对应的hive目录,原来的路径将不存在该文件。加载本地的是复制操作。
HIVE表保存的默认路径在${HIVE_HOME}/conf/hive-site.xml配置文件的hive.metastore.warehouse.dir属性指定。
执行一个简单的sql进行测试
select count(*) from prpcmain;
如果sql较长,返回的结果集也较多,可以将sql保存成sql文本文件,将结果集保存到本地为文本文件
在bash上执行以下命令
hive -f XXX/XX.sql > /root/data.txt