Hive数据库及表操作

一、Hive的数据类型

1、基本数据类型

整数: TINYINT、SMALLINT、INT、BIGINT

小数: FLOAT、DOUBLE、DECIMAL

文本: STRING、CHAR、VARCHAR

布尔: BOOLEAN

二进制: BINARY

时间: DATE、TIMESTAMP、INTERVAL

2、复杂的数据类型

1、数组(ARRAY)

ARRAY是具有相同类型变量的集合,这些变量称为数组的元素,每个数组元素都有一个索引编号,编号从零开始。

数据格式:['Apple','Orange','Mongo']

定义示例:array<string>

使用示例:a[0]='Apple'

2、映射(MAP)

MAP是一组键值对集合,key只能是基本类型,值可以是任意类型。

数据格式:{'A':'Apple','O':'Orange'}

定义示例:map<string,string>

使用示例:b['A']='Apple'

3、结构体(STRUCT)

STRUCT封装了一组有名字的字段,类型可以是任意的基本类型,结构体内的元素使用“.”来访问。

数据格式:{'Apple':2}

定义示例:struct<fruit:string,weight:int>

使用示例:c.weight=2

4、联合体(UNIONTYPE)

在给定的任何一个时刻 ,UNIONTYPE类型可以保存指定数据类型中的任意一种。

定义示例:uniontype<data_type,data_type......>

例如:

hive>create table union_test(

       >foo UNIONTYPE<int,double,array<string>,struct<a:int,b:string>>);

在foo字段上支持如下文本输入:

0^B1

1^B2.0

2^Bthree^Cfour

3^B5^Csix

其中^B为集合元素分隔符,^C为MAP键分隔符。

将上述文本另存为文件“data.txt”,再加载至表union_test中。

hive>load data local inpath'/home/hadoop/data.txt' overwrite into table union_test;

      >select *from union_test

输出结果为:

{0:1}

{1:2.0}

{2:['three','four']}

{3:{'a':5,'b':'six'}}

二、Hive DDL操作

  1. 创建数据库:CREATE DATABASE database_name;
  2. 删除数据库:DROP DATABASE database_name;
  3. 切换数据库:USE database_name;
  4. 创建表:CREATE TABLE table_name (column1 data_type, column2 data_type, ...);
  5. 删除表:DROP TABLE table_name;
  6. 查看表结构:DESCRIBE table_name;
  7. 查看表数据:SELECT * FROM table_name;
  8. 复制表结构:CREATE TABLE new_table_name LIKE existing_table_name;
  9. 向表中添加分区:ALTER TABLE table_name ADD PARTITION (partition_column=value);
  10. 删除表中的分区:ALTER TABLE table_name DROP PARTITION (partition_column=value);
  11. 修改表名:ALTER TABLE table_name RENAME TO new_table_name;
  12. 修改表结构(添加列):ALTER TABLE table_name ADD COLUMN new_column data_type;
  13. 修改表结构(修改列):ALTER TABLE table_name CHANGE column_name new_column_name new_data_type;
  14. 修改表结构(删除列):ALTER TABLE table_name DROP COLUMN column_name;
  15. 修改表属性:ALTER TABLE table_name SET TBLPROPERTIES ('key'='value');

三、Hive DML操作

  1. INSERT INTO: 将查询结果插入到表中。
  2. INSERT OVERWRITE: 将查询结果覆盖到表中。
  3. UPDATE: 更新表中的数据(Hive 0.14.0及更高版本支持)。
  4. DELETE: 删除表中的数据(Hive 0.14.0及更高版本支持)。
  5. MERGE INTO: 将数据从一个表合并到另一个表中(Hive 3.0.0及更高版本支持)。
  6. LOAD DATA: 从本地文件系统或HDFS加载数据到表中。
  7. EXPORT/IMPORT: 将表数据导出到HDFS或本地文件系统,或从HDFS或本地文件系统导入数据到表中。
  8. CTAS (CREATE TABLE AS SELECT): 创建新表并将查询结果插入其中。
  9. CREATE VIEW: 创建视图。
  10. DROP TABLE: 删除表。
  11. TRUNCATE TABLE: 清空表中的数据但保留表结构。
  12. ALTER TABLE: 修改表的属性,如更改列名、添加列、更改列类型等。
  13. MSCK REPAIR TABLE: 修复分区表的元数据信息。
  14. SHOW PARTITIONS: 显示表的分区信息。
  15. SHOW TABLES: 显示数据库中的表列表。
  16. DESCRIBE: 显示表的结构信息。
  17. ANALYZE TABLE: 收集表的统计信息,用于优化查询性能。
  18. CACHE TABLE/UNCACHE TABLE: 缓存/取消缓存表的数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值