【Hive】(六)Hive DML 数据操纵语言详解

简介: 【Hive】(六)Hive DML 数据操纵语言详解

文章目录


一、数据导入

1.1 向表中装载数据(Load)

1.2 通过查询语句向表中插入数据(Insert)

1.3 查询语句中创建表并加载数据(As Select)

1.4 创建表时通过Location指定加载数据路径

1.5 Import数据到指定Hive表中


二、数据导出

2.1 Insert导出

2.2 Hadoop命令导出到本地

2.3 Hive Shell 命令导出

2.4 Export导出到HDFS上


三、清除表中数据(Truncate)


一、数据导入


1.1 向表中装载数据(Load)


1.语法

hive> load data [local] inpath '/opt/module/datas/student.txt' overwrite | into table student [partition (partcol1=val1,…)];


load data:表示加载数据

local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表

inpath:表示加载数据的路径

overwrite:表示覆盖表中已有数据,否则表示追加

into table:表示加载到哪张表

student:表示具体的表

partition:表示上传到指定分区


2.实操案例


(0)创建一张表

hive (default)> create table student(id string, name string) row format delimited fields terminated by '\t';


(1)加载本地文件到hive

hive (default)> load data local inpath '/opt/module/datas/student.txt' into table default.student;


(2)加载HDFS文件到hive中


上传文件到HDFS

hive (default)> dfs -put /opt/module/datas/student.txt /user/atguigu/hive;


加载HDFS上数据

hive (default)> load data inpath '/user/atguigu/hive/student.txt' into table default.student;


(3)加载数据覆盖表中已有的数据

上传文件到HDFS

hive (default)> dfs -put /opt/module/datas/student.txt /user/atguigu/hive;


加载数据覆盖表中已有的数据

hive (default)> load data inpath '/user/atguigu/hive/student.txt' overwrite into table default.student;


1.2 通过查询语句向表中插入数据(Insert)


1.创建一张分区表

hive (default)> create table student(id int, name string) partitioned by (month string) row format delimited fields terminated by '\t';


2.基本插入数据

hive (default)> insert into table  student partition(month='201709') values(1,'wangwu');


3.基本模式插入(根据单张表查询结果)

hive (default)> insert overwrite table student partition(month='201708')
             select id, name from student where month='201709';


4.多插入模式(根据多张表查询结果)

hive (default)> from student
              insert overwrite table student partition(month='201707')
              select id, name where month='201709'
              insert overwrite table student partition(month='201706')
              select id, name where month='201709';


1.3 查询语句中创建表并加载数据(As Select)


根据查询结果创建表(查询的结果会添加到新创建的表中)

create table if not exists student3
as select id, name from student;


1.4 创建表时通过Location指定加载数据路径


1.创建表,并指定在hdfs上的位置

hive (default)> create table if not exists student5(
              id int, name string
              )
              row format delimited fields terminated by '\t'
              location '/user/hive/warehouse/student5';


2.上传数据到hdfs上

hive (default)> dfs -put /opt/module/datas/student.txt
/user/hive/warehouse/student5;


3.查询数据

hive (default)> select * from student5;


1.5 Import数据到指定Hive表中


注意:先用export导出后,再将数据导入。

hive (default)> import table student2 partition(month='201709') from
 '/user/hive/warehouse/export/student';


二、数据导出


2.1 Insert导出


1.将查询的结果导出到本地

hive (default)> insert overwrite local directory '/opt/module/datas/export/student'
            select * from student;


2.将查询的结果格式化导出到本地

hive(default)>insert overwrite local directory '/opt/module/datas/export/student1'
           ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'             
           select * from student;


3.将查询的结果导出到HDFS上(没有local)

hive (default)> insert overwrite directory '/user/atguigu/student2'
             ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
             select * from student;


2.2 Hadoop命令导出到本地

hive (default)> dfs -get /user/hive/warehouse/student/month=201709/000000_0
/opt/module/datas/export/student3.txt;


2.3 Hive Shell 命令导出


基本语法:(hive -f/-e 执行语句或者脚本 > file)

[atguigu@hadoop102 hive]$ bin/hive -e 'select * from default.student;' >
 /opt/module/datas/export/student4.txt;


2.4 Export导出到HDFS上

(defahiveult)> export table default.student to
 '/user/hive/warehouse/export/student';


三、清除表中数据(Truncate)


注意:Truncate只能删除管理表,不能删除外部表中数据

hive (default)> truncate table student;



目录
相关文章
|
3天前
|
SQL 分布式计算 Hadoop
创建hive表并关联数据
创建hive表并关联数据
38 0
|
3天前
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
90 0
|
7月前
|
SQL Java 大数据
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
249 1
|
8月前
|
SQL 分布式计算 算法
大数据Hive数据查询语言DQL
大数据Hive数据查询语言DQL
61 0
|
8月前
|
SQL 存储 分布式计算
大数据Hive数据操纵语言DML
大数据Hive数据操纵语言DML
106 0
|
8月前
|
SQL 存储 大数据
大数据Hive数据定义语言DDL
大数据Hive数据定义语言DDL
82 0
|
7月前
|
SQL 存储 分布式数据库
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
117 0
|
3天前
|
SQL 数据采集 存储
Hive实战 —— 电商数据分析(全流程详解 真实数据)
关于基于小型数据的Hive数仓构建实战,目的是通过分析某零售企业的门店数据来进行业务洞察。内容涵盖了数据清洗、数据分析和Hive表的创建。项目需求包括客户画像、消费统计、资源利用率、特征人群定位和数据可视化。数据源包括Customer、Transaction、Store和Review四张表,涉及多个维度的聚合和分析,如按性别、国家统计客户、按时间段计算总收入等。项目执行需先下载数据和配置Zeppelin环境,然后通过Hive进行数据清洗、建表和分析。在建表过程中,涉及ODS、DWD、DWT、DWS和DM五层,每层都有其特定的任务和粒度。最后,通过Hive SQL进行各种业务指标的计算和分析。
43 1
Hive实战 —— 电商数据分析(全流程详解 真实数据)
|
3天前
|
SQL 消息中间件 Kafka
Flink部署问题之hive表没有数据如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
3天前
|
SQL 消息中间件 存储
案例:Flume消费Kafka数据保存Hive
案例:Flume消费Kafka数据保存Hive
78 0

热门文章

最新文章