Hive数据库基本操作

Hive数据库基本操作

Hive 是基于 Hadoop 的开源数据仓库工具,它提供了类似于 SQL 的 HQL 语句作为数据访问接口。本文将介绍 Hive 数据库的基本操作,包括数据库的创建、删除,以及表的创建、数据导入和查询等操作。

创建数据库

在 Hive 中,可以使用以下语法创建数据库:

CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];

创建一个带有属性的数据库示例:

create database testdb WITH DBPROPERTIES ('creator' = 'tp', 'date' = '2024-06-12');

显示创建语句和所有数据库:

show create database testdb;
show databases;

删除数据库

删除数据库的语法如下:

DROP DATABASE [IF EXISTS] database_name [RESTRICT|CASCADE];
  • RESTRICT:严格模式,若数据库不为空,则会删除失败,默认为该模式。
  • CASCADE:级联模式,若数据库不为空,则会将库中的表一并删除。

Hive表操作

建表语法

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) 
[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format] 
[STORED AS file_format] 
[LOCATION hdfs_path];

表分类

  1. 内部表:删除时,文件系统上的数据和元数据都会被删除。

    CREATE TABLE inner_test(word string, num int);
    
  2. 外部表:使用 EXTERNAL 关键字创建,删除时,只删除元数据,不删除数据。

    CREATE EXTERNAL TABLE book(id int, name string)
    PARTITIONED BY (country string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
    

分区表

分区表可以提高查询效率,防止全表扫描。每个分区对应一个目录。

CREATE EXTERNAL TABLE book
PARTITIONED BY (country string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

添加分区:

alter table book add partition(country='cn');

分桶表

桶是比表或分区更细粒度的数据范围划分。分桶表可以提高查询效率。

CREATE TABLE emp_bucket(
  empno int,
  ename string,
  job string,
  mgr int,
  hiredate string,
  sal double,
  comm double,
  deptno int
)CLUSTERED BY(deptno) INTO 4 BUCKETS 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

导入数据到表中

  • 追加数据到表:

    load data local inpath '/root/data/emp.txt' into table emp;
    
  • 覆盖表中数据:

    load data local inpath '/root/data/emp.txt' overwrite into table emp;
    

分组查询

分组查询可以对数据进行汇总统计。

select deptno, avg(sal) from emp group by deptno;

结语

Hive 提供了丰富的数据操作功能,包括数据库和表的创建、数据的导入导出,以及复杂的查询操作等。掌握这些基本操作对于大数据分析至关重要。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值