Hive 实战(1)--hive数据导入/导出基础
2014-07-02 16:14
447 查看
前沿:
Hive也采用类SQL的语法, 但其作为数据仓库, 与面向OLTP的传统关系型数据库(Mysql/Oracle)有着天然的差别. 它用于离线的数据计算分析, 而不追求高并发/低延时的应用场景. 最显著的特别是, Hive的数据是Schema On Read, 对数据的写入非常的自由和松散, 而对数据的读取则作了各种限制. 而RMDBS则是Schema On Write, 对数据写入限制非常的严苛.
*). 数据导入/导出
让我们体验以下Hive中数据如何导入:
1). 创建数据库 db_hive_test;
CREATE DATABASE db_hive_test;
则在HDFS的目录/user/hive/warehouse下
[<username>@<hostname> ~]# sudo -u hdfs hdfs dfs -ls /user/hive/warehouse
drwxrwxrwt - root hive 0 2014-07-02 10:49 /user/hive/warehouse/db_hive_test.db
2). 创建数据表 tb_user
3). 数据准备
在本地编辑data.txt, 内容如下所示:
4). 导入数据入hive
LOAD DATA LOCAL INPATH '/path/to/data.txt' INTO TABLE db_hive_test.tb_user;
5). 数据验证
select * from tb_user;
是不是很简单? 但为何不使用Insert Into单行插入数据, 实际上hive的定位, 其并不支持单行的数据插入(insert)和修改(update).
数据的导入可以借助
#) LOAD DATA语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
#) INSERT SELECT语法
INSERT OVERWRITE/INTO TABLE <table_name> [PARTITION(partcol1=val1, partclo2=val2 ...)] SELECT_STATEMENT
注: OVERWRITE重写,INTO追加。
6). 创建数据表tb_newuser;
7). INSERT SELECT
INSERT INTO TABLE tb_newuser SELECT * FROM tb_user;
8). 数据验证
SELECT * FROM tb_newuser;
数据表结构复制
CREATE TABLE tb_newuser02 LIKE tb_user;
创建表时导入
CREATE TABLE tb_newuser01 SELECT * FROM tb_user;
数据如何导出
导出语法: INSERT OVERWRITE/INTO LOCAL DIRECTORY '<directory>' SELECT_STATEMENT
INSERT OVERWRITE LOCAL DIRECTORY '/path/to/data' SELECT * FROM tb_user;
cat /path/to/data/000000_0
INSERT OVERWRITE DIRECTORY '/path/to/data' SELECT * FROM tb_user;
Local的有无, 其区别在于, 一个存放在本地, 另一个存放在hdfs上
Hive也采用类SQL的语法, 但其作为数据仓库, 与面向OLTP的传统关系型数据库(Mysql/Oracle)有着天然的差别. 它用于离线的数据计算分析, 而不追求高并发/低延时的应用场景. 最显著的特别是, Hive的数据是Schema On Read, 对数据的写入非常的自由和松散, 而对数据的读取则作了各种限制. 而RMDBS则是Schema On Write, 对数据写入限制非常的严苛.
*). 数据导入/导出
让我们体验以下Hive中数据如何导入:
1). 创建数据库 db_hive_test;
CREATE DATABASE db_hive_test;
则在HDFS的目录/user/hive/warehouse下
[<username>@<hostname> ~]# sudo -u hdfs hdfs dfs -ls /user/hive/warehouse
drwxrwxrwt - root hive 0 2014-07-02 10:49 /user/hive/warehouse/db_hive_test.db
2). 创建数据表 tb_user
CREATE TABLE tb_user ( user_id int, username string, age int, phone string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
3). 数据准备
在本地编辑data.txt, 内容如下所示:
[<username>@<hostname> ~]# cat data.txt 1001 lilei 17 13800001111 1002 hanmm 16 13800001112 1003 lily 16 13800001113 1004 lucy 16 13800001114
4). 导入数据入hive
LOAD DATA LOCAL INPATH '/path/to/data.txt' INTO TABLE db_hive_test.tb_user;
5). 数据验证
select * from tb_user;
是不是很简单? 但为何不使用Insert Into单行插入数据, 实际上hive的定位, 其并不支持单行的数据插入(insert)和修改(update).
数据的导入可以借助
#) LOAD DATA语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
#) INSERT SELECT语法
INSERT OVERWRITE/INTO TABLE <table_name> [PARTITION(partcol1=val1, partclo2=val2 ...)] SELECT_STATEMENT
注: OVERWRITE重写,INTO追加。
6). 创建数据表tb_newuser;
CREATE TABLE tb_newuser ( user_id int, username string, age int, phone string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
7). INSERT SELECT
INSERT INTO TABLE tb_newuser SELECT * FROM tb_user;
8). 数据验证
SELECT * FROM tb_newuser;
数据表结构复制
CREATE TABLE tb_newuser02 LIKE tb_user;
创建表时导入
CREATE TABLE tb_newuser01 SELECT * FROM tb_user;
数据如何导出
导出语法: INSERT OVERWRITE/INTO LOCAL DIRECTORY '<directory>' SELECT_STATEMENT
INSERT OVERWRITE LOCAL DIRECTORY '/path/to/data' SELECT * FROM tb_user;
cat /path/to/data/000000_0
INSERT OVERWRITE DIRECTORY '/path/to/data' SELECT * FROM tb_user;
Local的有无, 其区别在于, 一个存放在本地, 另一个存放在hdfs上
相关文章推荐
- Hive基础一(数据库,表,分区表,视图,导入导出数据)
- 大数据基础(二)hadoop, mave, hbase, hive, sqoop在ubuntu 14.04.04下的安装和sqoop与hdfs,hive,mysql导入导出
- docker实战1 (docker-toolbox的安装,docker基础命令详解[运行,容器导入/导出,镜像导入/导出,数据卷,网络],构建100个docker实例的测试环境)
- 利用sqoop将hive数据导入导出数据到mysql
- 利用sqoop将hive数据导入导出数据到mysql
- Hive 实战练习(一)—按照日期将每天的数据导入Hive表中
- Sqoop_详细总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- Hadoop数据工具sqoop,导入HDFS,HIVE,HBASE,导出到oracle
- Oracle数据库创建表空间、用户及数据的导入、导出【源自于实战】
- Hive常用操作之数据导入导出
- 利用sqoop将hive数据导入导出数据到mysql
- 利用sqoop将hive数据导入导出数据到mysql
- 利用sqoop将hive数据导入导出数据到mysql
- hive 导入导出数据
- hive导入导出数据案例
- MySQL基础day03_数据的导入、导出-MySQL 5.6
- Hive数据导入和导出
- hive导入和导出数据
- HIVE入门_3_数据导入导出
- Hive常用数据导入导出总结