📜  Hive-放置数据库(1)

📅  最后修改于: 2023-12-03 15:01:08.695000             🧑  作者: Mango

Hive-放置数据库

Hive是一个数据仓库基础设施,它能够通过类SQL语言(HiveQL)将结构化的数据映射到Hadoop的分布式文件系统上进行处理。Hive能够建立在Hadoop的MapReduce处理之上,可以将HiveQL语句转换成MapReduce任务并进行分布式处理。

Hive的优势
  1. 灵活性:Hive可以处理以及转换大型数据集,具有非常强的数据灵活性,可以处理多种格式的数据。

  2. 易用性:通过类SQL语言可以描述要执行的操作,避免了许多复杂的MapReduce编程。

  3. 扩展性:Hive可以与Hadoop生态系统中的其他工具集成,例如HBase等。

HiveQL语法

HiveQL提供了与SQL类似的语法,是一门基于Hadoop的SQL语言。以下是HiveQL的一些关键字:

SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN, LEFT OUTER/RIGHT OUTER/FULL OUTER JOIN, UNION, ORDER BY, LIMIT, TABLE, DATABASE

以下是一个示例HiveQL查询:

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s)
LIMIT number;
Hive的使用

以下是Hive的一些常见用法:

1. 创建数据库
CREATE DATABASE IF NOT EXISTS database_name;
2. 使用数据库
USE database_name;
3. 创建表
CREATE TABLE IF NOT EXISTS table_name (
   column1 datatype1,
   column2 datatype2,
   .....
   columnN datatypeN,
) [COMMENT 'table_comment']
   [PARTITIONED BY (col_name datatype, ...)]
   [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']
   [TBLPROPERTIES (property_name=property_value, ...)]
4. 加载数据
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE table_name [PARTITION (partcol1=val1, partcol2=val2 ...)];
5. 查询数据
SELECT column_name(s) FROM table_name [WHERE condition] [LIMIT number];
6. 插入数据
INSERT INTO TABLE table_name [PARTITION (partcol1=val1, partcol2=val2 ...)] VALUES (value1, value2, ...);
7. 更新数据
UPDATE table_name SET column_name = value [WHERE condition];
8. 删除数据
DELETE FROM table_name [WHERE condition];
总结

Hive是一个十分强大的数据仓库基础设施,能够通过类SQL语言将结构化的数据映射到Hadoop的分布式文件系统上进行处理,并能够建立在Hadoop的MapReduce处理之上。通过HiveQL语言能够方便地处理大量庞大且不规则的数据集。