前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(三)Hive基本操作命令

(三)Hive基本操作命令

作者头像
wolf
发布2020-09-20 19:46:48
1.2K0
发布2020-09-20 19:46:48
举报
文章被收录于专栏:大数据分享大数据分享

二,Hive操作

1.DML(DataManipulationLanguage):数据操作语言,用来定义数据库记录; 2.DCL(DataControlLanguage):数据控制语言,用来定义访问权限和安全级别; 3.DQL(DataQueryLanguage):数据查询语言,用来查询记录; 4.DDL(DataDefinitionLanguage):数据定义语言,用来定义数据库对象 -- 库、表、列等。

1.DDL

创建表、表名、权限、创建数据库等操作 cereate database;.... create table test( name string, friends array<string>, children map<string, int>, address struct<street:string, city:string> ) row format delimited fields terminated by ',' collection items terminated by '_' map keys terminated by ':' lines terminated by '\n';

desc test; desc formatted test;

rz // 上传

hadoop fs -mkdir -p /data/test/RAW/ hdfs dfs -put ./test.txt /data/test/RAW/ load data inpath '/data/test/RAW/test.txt' into table test; select friends[1],children['xiao song'],address.city from test where name="songsong";

0: jdbc:hive2://bd1603:10000> show create table test; +-----------------------------------------------------------------+--+ | createtab_stmt | +-----------------------------------------------------------------+--+ | CREATE TABLE test( | | name string, | | friends array<string>, | | children map<string,int>, | | address struct<street:string,city:string>) | | ROW FORMAT DELIMITED | | FIELDS TERMINATED BY ',' | | COLLECTION ITEMS TERMINATED BY '_' | | MAP KEYS TERMINATED BY ':' | | LINES TERMINATED BY '\n' | | STORED AS INPUTFORMAT | | 'org.apache.hadoop.mapred.TextInputFormat' | | OUTPUTFORMAT | | 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' | | LOCATION | | 'hdfs://bdp/bdp/hive/metastore/warehouse/bdp.db/test' | | TBLPROPERTIES ( | | 'COLUMN_STATS_ACCURATE'='true', | | 'numFiles'='1', | | 'totalSize'='144', | | 'transient_lastDdlTime'='1593673125') | +-----------------------------------------------------------------+--+

REPLACE COLUMNS

alter table test replace columns (name string,friends array<string>, children map<string,int>,address struct<street:string,city:string>,age varchar(100));

2.DML

增删改查: 表变更,数据更新,数据加载,数据删除,对数据的操作等

alter table:变更结构时使用 insert overwrite:插入 load:对表进行数据的加载

查看库:show databases; 建立库:create database 库名; 进入库:use 库名; 查看表:show tables; 切换库:use + 表名; 查看表的信息:desc 表名; 查看表的格式:desc formatted 表名; 查看表的分区(有分区才能查看):show partitions 表名;

在shell中将数据文件先上传到hdfs上的目录下,如:hdfs dfs -put 文件名 /xxxx 加载数据到表中:load data inpath '/hdfs目录名/文件名全称' into table 表名; (执行命令后,原数据文件被移动到了hive的目录下面) 查看数据:select * from 表名; 将一个库中表内的数据,copy到另一个库的表中:insert overwrite table 库1.表名 select * from 库2.表名;

清空表数据:truncate table 表名; 删除表结构:drop table if exists 表名; 删除库:drop database if exists 库名; 删除分区:alter table 表名 drop partition (区名='分区名') 例:hive> alter table tablename drop partition(load_date='2019-01-01'); 保留非空字段,删除其余: insert overwrite table 表名 select * from 表名 where 字段名 is not null;

进入hive cli后,使用本地模式,不使用集群,提高测试速度: set hive.exec.mode.local.auto=true;

3.内部表

create table test:存储想被删除的数据(用过就要删除的敏感信息等) tips:应用场景不多

4.外部表

  • 创建dept表
代码语言:javascript
复制
CREATE EXTERNAL TABLE IF NOT EXISTS dept (
  DEPTNO int,
  DNAME varchar(255),
  LOC varchar(255)
) row format delimited fields terminated by '\t'
location '/data/inner/ODS/01/dept';
  • 创建emp表
代码语言:javascript
复制
CREATE EXTERNAL TABLE IF NOT EXISTS emp (
  EMPNO int,
  ENAME varchar(255),
  JOB varchar(255),
  MGR int,
  HIREDATE date,
  SAL decimal(10,0),
  COMM decimal(10,0),
  DEPTNO int
) row format delimited fields terminated by '\t'
location '/data/inner/ODS/01/emp';
  • 创建salgrade表
代码语言:javascript
复制
CREATE EXTERNAL TABLE IF NOT EXISTS salgrade (
  GRADE int,
  LOSAL int,
  HISAL int
) row format delimited fields terminated by '\t'
location '/data/inner/ODS/01/salgrade';

hadoop fs -mkdir -p /data//inner/RAW//01/test/ /data/inner/RAW/01/salgrade/ /data/inner/RAW/01/dept /data/inner/RAW/01/emp /data//inner/ODS//01/test/ /data/inner/ODS/01/salgrade/ /data/inner/ODS/01/dept /data/inner/ODS/01/emp

rz // 上传

hadoop fs -put emp.txt /data/inner/RAW/01/emp hadoop fs -put dept.txt /data/inner/RAW/01/dept hadoop fs -put salgrade.txt /data/inner/RAW/01/salgrade

load data inpath '/data/inner/RAW/01/emp/emp.txt' into table emp; load data inpath '/data/inner/RAW/01/dept/dep.txt' into table dept; load data inpath '/data/inner/RAW/01/salgrade/salgrade.txt' into table salgrade;

5.加载数据

load data inpath '' load data inpath '/data/inner/RAW/01/emp/emp.txt' into table emp;//新增 load data inpath '/data/inner/RAW/01/emp/emp.txt' overerite into table emp;//覆盖 create table t_user1(name string) row format delimited fields terminated by ',' lines terminated by '\n'; create table t_user2(friends array<string>) row format delimited fields terminated by ',' collection items terminated by '-' lines terminated by '\n';

from test insert overwrite table t_user1 select name insert overwrite table t_user2 select friends;

CREATE TABLE IF NOT EXISTS t_user_test ( GRADE int, LOSAL int, HISAL int ) partitioned by (day string) row format delimited fields terminated by '\t' location '/data/inner/ODS/01/t_user_test';

load data local inpath '/data/test/ftp/test.txt' into table t_user_test partition(day='99990101'); insert into table t_user_test partition(day='101000101') values(11,111,111); insert overwrite table t_user_test partition(day='10100101') select count(1),count(2),count(3) from t_user ;

6,数据导出与备份

导出: insert overwrite local directory '/data/ftp/01/user' select * from t_user; insert overwrite local directory '/data/ftp/01/user' ROW FORMAT DELIMITED fields terminated by ',' collection items terminated by '-' map keys terminated by ':' lines terminated by '\n' select * from t_user;

备份: export table t_user to '/data/ftp/01/user'; import from '/data/ftp/01/user';

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二,Hive操作
    • 1.DDL
      • 2.DML
        • 3.内部表
          • 4.外部表
            • 5.加载数据
              • 6,数据导出与备份
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档