Hive——DML(Data Manipulation Language)数据操作语句用法详解

DML

1.Load

Load语句可将文件导入到Hive表中。

sql 复制代码
hive> 
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)];

关键字说明:

  • local表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表
  • overwrite表示覆盖表中已有数据,否则表示追加。
  • partition表示上传到指定分区,若目标是分区表,需指定分区

1.加载本地文件到hive

本地文件路径:

执行load语句:
load data local inpath '/opt/module/hive-3.1.3/datas/student.txt' into table student;

查询数据(select * from student):

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

load data local inpath '/opt/module/hive-3.1.3/datas/student.txt' overwrite into table student;

3.加载HDFS文件到hive

上传文件到HDF根目录:

执行加载文件语句:
load data inpath '/student.txt' into table student;

从本地加载是copy的过程,从HDFS加载是move的过程。


2.Insert

1.将查询结果插入表中

INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement;

  • INTO将结果追加到目标表
  • OVERWRITE用结果覆盖原有数据

(1)新建一张表

sql 复制代码
hive (default)> 
create table student1(
    id int, 
    name string
) 
row format delimited fields terminated by '\t';

(2)根据查询结果插入数据

sql 复制代码
hive (default)> insert overwrite table student2 
select 
    id, 
    name 
from student;

2.将给定Values插入表中

INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1[=val1], partcol2[=val2] ...)] VALUES values_row [, values_row ...]

sql 复制代码
hive (default)> insert into table  student1 values(1,'wangwu'),(2,'zhaoliu');



3.将查询结果写入目标路径

INSERT OVERWRITE [LOCAL] DIRECTORY directory [ROW FORMAT row_format] [STORED AS file_format] select_statement;

sql 复制代码
insert overwrite local directory '/opt/module/datas/student' ROW FORMAT S ERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
select id,name from student;



3.Export&Import

  • Export导出语句可将表的数据和元数据信息一并导出到HDFS的路径
  • Import可将Export导出的内容导入Hive,表的数据和元数据信息都会恢复
  • ExportImport可用于两个Hive实例之间的数据迁移。
sql 复制代码
--导出
EXPORT TABLE tablename TO 'export_target_path'

--导入
IMPORT [EXTERNAL] TABLE new_or_original_tablename FROM 'source_path' [LOCATION 'import_target_path']

示例:

sql 复制代码
--导出
hive>
export table default.student to '/user/hive/warehouse/export/student';



sql 复制代码
--导入
hive>

import table student2 from '/user/hive/warehouse/export/student';
相关推荐
武子康4 小时前
大数据-264 实时数仓-MySQL Binlog配置详解:从原理到实践|数据恢复与主从复制实战
大数据·hadoop·后端
武子康5 小时前
大数据-265 实时数仓-Canal MySQL Binlog配置详解:从原理到实践|数据恢复与主从复制实战
大数据·hadoop·后端
晓纪同学5 小时前
WPF-03 第一个WPF程序
大数据·hadoop·wpf
2501_9333295511 小时前
技术深度剖析:Infoseek 字节探索舆情处置系统的全链路架构与核心实现
大数据·数据仓库·人工智能·自然语言处理·架构
xiaoyaohou1113 小时前
024、大数据技术栈概览:Hadoop、Spark与Flink
大数据·hadoop·spark
虚幻如影14 小时前
Hive 中“STRING类型无需显式指定长度
数据仓库·hive·hadoop
荒川之神1 天前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
RestCloud1 天前
2026年企业级ETL工具选型指南:从开源DataX到商业化ETLCloud的演进
数据仓库·开源·etl·datax·数据处理·数据集成·数据传输
荒川之神1 天前
Oracle 数据仓库星座模型(Galaxy Model)设计原则
数据库·数据仓库·oracle
瀚高PG实验室1 天前
ETL中,分区表子表未及时收集统计信息,导致sql执行耗时很长
数据库·数据仓库·sql·etl·瀚高数据库