hive数据库操作大全
1.操作库
基本语法
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_name=property_value, ...)];
说明:
- IF NOT EXISTS:如果不存在则创建
- COMMENT:注释
- LOCATION:数据库存放目录
- WITH DBPROPERTIES:拓展信息,key/value
例子:
CREATE DATABASE database_name;
//创建数据库如果数据库不存在则创建数据库
CREATE DATABASE IF NOT EXISTS database_name;
//创建数据库并添加注释
CREATE DATABASE COMMENT'zhushi;
//创建数据库,添加扩展信息
create database testdb_otherinfo WITH DBPROPERTIES('creator'='zhangcheng','date'='2015-11-30');
(2)显示数据库
show databases;
(3) 切换数据库
use database_name;
(4) //如果数据库存在就删除数据库
drop database if exists traffic;
drop database traffic cascade;
2.操作表
(1) 创建表
a. 基本语法
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [COMMENT col_comment], …)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], …)]
[[ROW FORMAT row_format]
[STORED AS file_format]]
[LOCATION hdfs_path]
[AS select_statement];
说明:
- EXTERNAL:外部表
- IF NOT EXISTS:表不存在创建
- db_name:表所属数据库
- COMMENT col_comment:列注释
- COMMENT table_comment:表注释
- PARTITIONED BY:分区字段
- ROW FORMAT row_format:行的数据格式
- STORED AS file_format:文件存储格式
- STORED AS file_format
- LOCATION hdfs_path:存放路径
- AS select_statement:查询语句为结果集
建表支持的数据类型
基本数据类型
tinyint / smalint / int /bigint
float / double
boolean
string
复杂数据类型
Array/Map/Struct
没有date /datetime
列子:
CREEATE TABLE IF NOT EXISTS testdb.pepole(id int COMMENT 'user id',name string COMMENT 'user name',phone string COMMENT 'user phone')COMMENT 'pepele info'ROW FORMAT DELIMITED FIELDS TERMINATED BY','STORED AS textfile;
b.语法:
CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
LIKE existing_table_or_view_name
[LOCATION hdfs_path];
说明:
- IF NOT EXISTS:表不存在创建
- db_name:表所属数据库
- existing_table_or_view_name:结果集为存在的表或者师徒
- LOCATION hdfs_path:存放路径
列子:
create table if not exists testdb.pepole_like like testdb.pepole;
create table if not exists testdb.pepole_select as select id,name from testdb.pepole;
c.创建表时指定的partition的分区空间
功能在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。分区表指的是在创建表时指定的partition的分区空间。
创建
CREATE TABLE IF NOT EXISTS testdb.emp_partition(empno int,ename string,job string,mgr int,hiredate string,sal double,comm double,deptno int
)
PARTITIONED BY(monthstring,daystring)
ROW FORMAT DELIMITED FIELDS TERMINATED BY'\t'
STORED AS textfile;
(2) 查看有那些表
show tables;
show tables in database_name;
(3) 查看表结构
desc table_name;
(4) 查看表详细属性
desc formatted test;
(5)查询数据
select*from emp_partition where month='201512' and day='02';
(6)修改表
a.修改表名称
alter table person rename to student;
b.修改表分区
hive>alter table hive.logs add partition (dt='2018-9-1',country='beijng');
hive>alter table hive.logs drop partition (dt='2018-9-1',country='beijng');
c.添加列
hive>alter table hive.logs add columns(id int,name string);
d.删除和替换列
hive>alter table hive.logs replace columns (id int,name string);
(7) 向管理表装载数据
a.装载数据
hive>load data [local] inpath '/data/hive' [overwrite] into table tbname;
说明:含local关键字:加载本地目录数据到warehouse下;如果不含local关键字,加载数据目录默认为hdfs路径。
b.通过查询语句向表中插入数据:在原始数据的基础上,进行业务分析后生成的表数据
hive>insert overwrite table new_table select [column字段] from 原始数据表 where 条件;
或
hive> from 原始数据表 别名 insert overwrite table new_table select [column字段] where 条件;
c.创建表时,也可以执行插入数据
hive>create table new_table as select id,name,age from student where age>23;
d.导出数据
hive>insert overwrite directory '/data/stocks/2009-6-23' select * from stocks where ymd ='2009-6-23';
(8)查询
a.对array查询
hive>select name,subordinates[1] from hive.employees where name='John Doe';
b.对map查询
hive>select name,deductions['State Taxes'] from hive.employees where name = 'John Doe';
c.对struct查询
hive>select name,address.state from hive.employees where name ='John Doe';
d.支持运算符
e.内置函数,比如sum(),count(),avg()等。
f.limit
hive>select upper(name),salary,deductions['Federal Taxes'],round(salary*(1-deductions['Federal Taxes'])) from hive.employees limit 6;
g.列别名
hive>select upper(name),salary,deductions['Federal Taxes'] as Taxes,round(salary*(1-deductions['Federal Taxes'])) as sal from hive.employees limit 6;
h.嵌套
hive>from (select upper(name) as name,salary,deductions['Federal Taxes'] as Taxes,round(salary*(1-deductions['Federal Taxes'])) as sal from hive.employees) e select e.name,e.Taxes,e.sal where e.sal >70000;
(9) 分组查询
hive>select year(ymd),avg(price_close) from stocks where exchange1='NASDAQ' and symbol = 'AAPL' group by year(ymd);
说明:分组属性列在mysql中一定要出现在select子句之后;但在hive中不需要。
(10) 删除表
DROP TABLE [IF EXISTS] table_name ;
(11)清空表
TRUNCATE TABLE table_name [PARTITION partition_spec];
EXTERNAL不管删除内部表(管理表)还是外部表(托管表)都会删除元数据 ,删除外部表(托管表)不会删除数据文件。内部表(管理表)反之。共用数据时使用外部表(创建表时加上 LOCATION hdfs_path 参数)。
CREATE EXTERNAL TABLE IF NOT EXISTS testdb.emp_ext(empno int,ename string,job string,mgr int,hiredate string,sal double,comm double,deptno int)
ROW FORMAT DELIMITED FIELDS TERMINATED BY'\t'
STORED AS textfile;
调优方案:建议将hive.exec.mode.local.auto=true;加入到hive的环境变量(.hiverc)
hive数据库操作大全相关推荐
- oracle的操作大全,Oracle数据库操作大全(六)Oracle中操作数据
Java连接数据库方法2,(方法1见:Oracle数据库操作大全(五)) 使用jdbc连接Oracle( 可远程连接 ) ***1.加载驱动 Class.forName("oracle.jd ...
- asp数据库操作大全 [网站网页]
什么叫活动服务器组件(Active Server Compontents)?组件是基于Activex技术的代码片断,通过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象 ...
- sqlserver数据库操作大全——常用语句/技巧集锦/经典语句
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ ☆ ☆ sql 宝 典 ☆ ☆ ☆ 2012年-8月 修订版 ☆ ☆ 修订人:情谊续写经典 ☆ ☆ 郑重 ...
- 2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive数据库和表操作 一.数据库操作 1.创建数据库 2.创建 ...
- 大数据学习笔记34:Hive - 数据库与表操作
文章目录 一.准备工作 1.启动Hadoop 2.启动Hive 二.数据库操作 1.创建数据库 2.查询数据库 (1)显示全部数据库 (2)查询满足条件的数据库 3.修改数据库信息 (1)给数据库添加 ...
- mysql设备台账_mysql数据库操作语句大全.pdf
mysql数据库操作语句大全.pdf mysql数据库操作语句大全(常用操作指令)一 . 常用mysql命令行命令1.启动MYSQL服务 netstartmysql停止MYSQL服务 stat na| ...
- python操作hive数据库代码_python导出hive数据表的schema实例代码
本文研究的主要问题是python语言导出hive数据表的schema,分享了实现代码,具体如下. 为了避免运营提出无穷无尽的查询需求,我们决定将有查询价值的数据从mysql导入hive中,让他们使用H ...
- mysql操作数据库语句大全_常用的Mysql数据库操作语句大全整理
一.用户管理: 1.新建用户: >create user name identified by 'ssapdrow'; 2.更改密码: >set password for name=pas ...
- python操作数据库语句大全_sql语句大全
数据库操作 1.查看所有数据库 1 show databases; 2.查看当前使用的数据库 1 select database(); 3.创建数据库 1 create databases 数据库名 ...
最新文章
- DINO:目标检测benchmark COCO屠榜的正确姿势
- 电脑音响怎么插_【图片】汽车音响改装案例本田CRV改装德国HELIX汽车音响_汽车音响改装吧...
- 性能测试:服务器配置清单分析
- 50:树中两个结点的最低公共祖先
- 为此计算机上的所有用户安装此加载项,activex 安装给所有计算机用户
- Springboot瘦身(lib和程序分开打包)
- 开发之前需要哪些文档_为什么在开发之前总是应该做文档
- 华为麦芒9正式亮相:6400万三摄,2199元起
- pyrcc5和pyuic5.exe文件放在scripts文件夹下
- 高校大数据专业教学实训资源解决方案
- 点滴记录,与技术无关
- python bar图 百分比_matplotlib bar()实现百分比堆积柱状图
- EXCEL设置下拉框,根据不同选项变换颜色
- B端产品设计:价值主张与需求对应的价值
- 【小记】steam 神奇软件
- 计算机二级python编程题笔记(基础题)(自用)
- dsp2812 pmsm foc之速度环电流环
- 垃圾清理软件CCleaner 规则下载软件CCEnhancer
- undefined symbol: _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringEv 问题
- MyEclipse注册码及官方下载地址