Hive 实战(1)--hive数据导入/导出基础
前沿:
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 实战(1)--hive数据导入/导出基础的更多相关文章
- Hive常用操作之数据导入导出
一.Hive数据导入导出 1.hive数据导出 很多时候,我们在hive中执行select语句,希望将最终的结果保存到本地文件或者保存到hdfs系统中或者保存到一个新的表中,hive提供了方便的关键词 ...
- Hive(四)【DML 数据导入导出】
目录 一.数据导入 1.1 [load]--向数据中装载数据 案例 1.2 [insert]--查询语句向表中插入数据 案例 1.3 [as select]--查询语句中创建表且加载数据 案例 1.4 ...
- 从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上
阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并 ...
- 数据仓库Hive数据导入导出
Hive库数据导入导出 1.新建表data hive (ebank)> create table data(id int,name string) > ROW FORMAT DELIMIT ...
- 如何利用sqoop将hive数据导入导出数据到mysql
运行环境 centos 5.6 hadoop hive sqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具. 上海尚学堂 ...
- 利用sqoop将hive数据导入导出数据到mysql
一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令 # sqoop list-databases --connect jdbc:mysql://localhost:3306 ...
- 2.11 Hive中数据导入导出Import和Export使用
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ImportExport 一.Export.Import Export ...
- hive之数据导入导出
hive数据导入导出 一.导入数据4种方式 建表语句 create table test( name string, friends array, children map<string, in ...
- Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件
一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...
随机推荐
- ASP.Net系列教程
Getting Started with ASP.NET MVC This is a beginner tutorial that introduces the basics of ASP.NET M ...
- 深入浅出设计模式——解释器模式(Interpreter Pattern)
模式动机 如果在系统中某一特定类型的问题发生的频率很高,此时可以考虑将这些问题的实例表述为一个语言中的句子,因此可以构建一个解释器,该解释器通过解释这些句子来解决这些问题.解释器模式描述了如何构成一个 ...
- HTML5/CSS3hack
以下兼容技术我只测试了IE8+ Media Query 媒体查询 <script src="respond.min.js"></script> respon ...
- 跨站脚本 XSS<一:介绍>
*XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任 跨站脚本(Cross-site scripting,通常简称为XSS)是一种网站应用程序的安全漏洞攻击,是代码注入 ...
- hdu3247Resource Archiver(ac自动机+spfa)
链接 这题没想到怎么做,问了下p队长,大悟.. 先求出任意两串的在trie树上的最短距离,期间是不能走到不合法的地方,我是用spfa求得,在更新和加入节点时判断一下是不是合法位置. 求出最短距离之后, ...
- [教程] 离线封装原版WIN7系统 100%纯净
raymond 发表于 2015-11-28 18:54:15 https://www.itsk.com/thread-360376-1-4.html 对于之前我用母盘封装的系统,纯粹是为了体积而折腾 ...
- SPSS数据分析—非线性回归
线性回归的首要满足条件是因变量与自变量之间呈线性关系,之后的拟合算法也是基于此,但是如果碰到因变量与自变量呈非线性关系的话,就需要使用非线性回归进行分析. SPSS中的非线性回归有两个过程可以调用,一 ...
- java的concurrent用法详解
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便.而当针对高质量Java ...
- python练习题代码
1.打印出相应规则的字母 zm='ABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> for i in range(0,len(zm)): if i==0: print ...
- iOS开发Swift篇—(四)运算符
iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...