美文网首页大数据开发
HQL操作之数据操作

HQL操作之数据操作

作者: 奋斗的蛐蛐 | 来源:发表于2021-02-03 23:28 被阅读0次

HQL操作之数据操作

数据导入

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
  • LOCAL :
    • load data local :从本地加载数据,本地文件会拷贝到Hive表指定的位置
    • load data :从HDFS加载数据,移动到Hive表指定位置。
  • inpath : 数据路径
  • overwirte:是否覆盖数据。没有就是追加
  • partition:将数据加载到指定分区。
  • 创建表的时候,也可以直接加载数据,但此时数据文件必须在HDFS中。
CREATE TABLE tabB (
  id INT,
  name string,
  area string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
Location '/user/hive/tabB';

插入数据

-- 创建分区表
CREATE TABLE tabC (
  id INT
 ,name string
 ,area string
)
partitioned by (month string);
-- 插入数据
insert into table tabC partition(month='202001') values (5, 'wangwu', 'BJ'), (4, 'lishi', 'SH'), (3, 'zhangsan', 'TJ');
-- 插入查询的结果数据
insert into table tabC partition(month='202002') select id, name, area from tabC where month='202001';
-- 多表(多分区)插入模式
from tabC
insert overwrite table tabC partition(month='202003') select id, name, area where month='202002'
insert overwrite table tabC partition(month='202004') select id, name, area where month='202002';


-- 根据查询结果创建表,tabD 不是分区表
create table if not exists tabD as select * from tabC;

数据导出

--将查询数据导出到本地
insert overwrite local directory '/mnd/hadoop/data/tabC' select * from tabC;
-- 格式化输出
insert overwrite local directory '/mnd/hadoop/data/tabC'
row format delimited fields terminated by ' '
select * from tabC;

-- 输出到HDFS
insert overwrite directory '/hive-test/tabC'
row format delimited fields terminated by ' '
select * from tabC;

-- dfs 命令导出数据到本地。本质是执行数据文件的拷贝
dfs -get /user/hive/warehouse/mydb.db/tabc/month=202001 /home/hadoop/data/tabC4


-- hive 命令导出数据到本地。执行查询将查询结果重定向到文件 
hive -e "select * from mydb.tabC" > a.log

-- export 导出数据到HDFS。使用export导出数据时,不仅有数还有表的元数据信息 
export table tabC to '/user/hadoop/data/tabC4';


-- 使用 like tname创建的表结构与原表一致但是没数据。create ... as select ... 有数据到那时结构可能不一致
create table tabE like tabc;
-- export 导出的数据,可以使用 import 命令导入到 Hive 表中,HDFS路径
import table tabE from '/user/hadoop/data/tabC4';

-- 截断表,清空数据。(注意:仅能操作内部表) 
truncate table tabE;
-- 以下语句报错,外部表不能执行 truncate 操作
alter table tabC set tblproperties("EXTERNAL"="TRUE");
truncate table tabC;

导入数据:

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

小结:

导入数据:

  • load data
  • insert
  • create table....as select ....
  • Import table

数据导出

  • Insert overwrite .... diretory
  • hdfs dfs -get
  • Hive -e "select..." > a.log
  • Export table..

相关文章

  • HQL操作之数据操作

    HQL操作之数据操作 数据导入 LOCAL :load data local :从本地加载数据,本地文件会拷贝到H...

  • HQL操作之-DML命令

    HQL操作之-DML命令 数据操纵语言DML(Data Manipulation Language),DML主要有...

  • hibernate几种查询方式以及hql使用

    对象导航查询和OID查询代码实现: 2、hql语句查询 普通的sql语句操作数据表和字段,hql操作实体类和属性 ...

  • HQL操作之-DDL命令

    HQL操作之-DDL命令 参考:https://cwiki.apache.org/confluence/displ...

  • HQL操作之CLI命令

    题记 本文资料来自于拉钩教育大数据高薪训练营 数据库操作 Hive有一个默认的数据库default,在操作HQL时...

  • HQL操作之DQL命令

    HQL操作之DQL命令 基本查询 where 子句 Where 子句不能使用列的别名 备注:通常情况下NULL不参...

  • HQL操作之DQL命令

    题记 本文部分资料来源于拉钩大数据高薪训练营 select 语法: SQL语句书写注意事项: SQL语句对大小写不...

  • hive hql操作

    创建内部表 注:hive默认创建的是内部表此时,会在hdfs上新建一个employees表的数据存放地 会将hdf...

  • Hibernate配置文件HQL、QBC查询详解(四)

    HQL简介 HQL(Hibernate Query Language)描写对象操作的一种查询语言,Hibernat...

  • hibernate操作sql面试

    hibernate操作sql面试 一、利用hql,但hql有局限 不支持insert;开发用createQuery...

网友评论

    本文标题:HQL操作之数据操作

    本文链接:https://www.haomeiwen.com/subject/clohlktx.html