本文将介绍HiveQL的概述、数据模型、DDL(Data Definition Language)命令和DML(Data Manipulation Language)命令。同时还会涵盖常用字符串函数、数值函数、日期函数以及聚合函数等内容。
HiveQL提供了一组数据定义语言(DDL)命令,用于创建、修改和删除表、分区和分桶等数据库对象。
以下是一些常用的DDL命令:
使用CREATE TABLE
命令创建表,并指定表的列、数据类型和存储格式等信息。
例如:
CREATE TABLE my_table (
id INT,
name STRING,
age INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
在上面的示例中,我们创建了一个名为my_table
的表,它包含了id
、name
和age
三个列,数据以逗号分隔(默认以制表符\t
作为字段分隔符),并以文本文件的形式存储。
使用CREATE TABLE
命令创建分区表,并指定分区列。
例如:
CREATE TABLE my_partitioned_table (
id INT,
name STRING,
age INT
)
PARTITIONED BY (country STRING)
STORED AS PARQUET;
在上面的示例中,我们创建了一个名为my_partitioned_table
的分区表,它包含了id
、name
和age
三个列,以及一个分区列country
。数据以Parquet
格式存储。
使用ALTER TABLE
命令添加新的分区。
例如:
ALTER TABLE my_partitioned_table ADD PARTITION (country='USA');
在上面的示例中,我们向my_partitioned_table
表添加了一个名为USA
的分区。
使用DROP TABLE
命令删除表。
例如:
DROP TABLE my_table;
在上面的示例中,我们删除了名为my_table
的表。
HiveQL提供了一组数据操作语言(DML)命令,用于查询和操作表中的数据。以下是一些常用的DML命令:
使用INSERT INTO
命令将数据插入表中。
例如:
INSERT INTO my_table (id, name, age) VALUES (1, 'Alice', 25);
在上面的示例中,我们向my_table
表插入了一条数据。
使用SELECT
命令查询表中的数据。
例如:
SELECT * FROM my_table;
在上面的示例中,我们查询了my_table
表中的所有数据。
使用UPDATE
命令更新表中的数据。
例如:
UPDATE my_table SET age = 30 WHERE id = 1;
在上面的示例中,我们将my_table
表中id
为1的记录的age
字段更新为30。
使用DELETE
命令删除表中的数据。
例如:
DELETE FROM my_table WHERE id = 1;
在上面的示例中,我们删除了my_table
表中id
为1的记录。
字符串函数在HiveQL中提供了丰富的操作和处理文本数据的功能。以下是一些常用的字符串函数:
CONCAT
函数用于将多个字符串拼接成一个新的字符串。它可以接受任意数量(至少两个)的参数,并按照参数顺序将它们连接起来。
示例代码:
SELECT CONCAT('Hello', ' ', 'World') AS concatenated_string;
-- 输出结果: Hello World
SUBSTRING
函数用于截取指定位置和长度的子串。它需要三个参数:源字符串、起始位置和要截取子串长度。
示例代码:
SELECT SUBSTRING('Hello World', 7, 5) AS substring_result;
-- 输出结果: World
LOWER
和 UPPER
函数分别将给定字符转换为小写或大写形式。
示例代码:
SELECT LOWER('HELLO') AS lower_case_string;
--输出 结果 : hello
SELECT UPPER ('world' ) as upper_case_string ;
--输出 结果 : WORLD
数值函数可以对数字进行各种计算和转换操作,方便处理数值型数据 。以下是一些常见的数值函数:
返回给 定数字 表达 式 ( 或 列) 绝对值 。
示例代码:
SELECT ABS(-10) AS absolute_value;
-- 输出结果: 10
ROUND
函数用于将数字四舍五入到指定的位数。它接受两个参数:要进行四舍五入的数字表达式(或列)和保留小数点后几位。
示例代码:
SELECT ROUND(3.14159, 2) as rounded_number;
--输出 结果 : 3 .14
FLOOR
函数返回不大于给定参数表达式(或列)最大整数。
示例代码:
SELECT FLOOR(4.9 ) as floor_number;
--输出 结果 : 4
日期函数提供了处理和计算日期类型数据的功能。以下是一些常用的日期函数:
从给定日期中提取年份 。
示例代码:
SELECT YEAR('2021-09-01') AS extracted_year;
-- 输出结果:2021
从给定日历中提取月份。
示例如下 :
SELECT MONTH ('2021 -09 -01' ) as extracted_month ;
--输出 结 果 :9
从给定日历中提取天数 。
示例如下 :
SELECT DAY ('2021 -09 -01' )as extracted_day ;
--输 出结 果 :1
聚合函数在HiveQL中用于对数据进行汇总计算,常见的聚合函数包括:
SUM
函数用于计算指定列或表达式的总和。
示例代码:
CREATE TABLE sales (
product_id INT,
quantity INT,
price DECIMAL(10,2)
);
INSERT INTO sales VALUES (1,10,100),(2,5 ,200),(1 ,20 ,50 );
SELECT SUM(quantity) as total_quantity FROM sales;
-- 输出结果: 35
AVG
函数用于计算指定列或表达式的平均值。
示例代码:
SELECT AVG(price) as average_price FROM sales ;
-- 输出结果:116 .67
返回指定列或表达式的最大值。
示例代 码:
SELECT MAX(quantity) as max_quantity FROM sales ;
--输出 结果 : 20
HiveQL是Hive的查询语言,它提供了类似于SQL的语法,用于在Hadoop集群上进行数据分析和处理。本文详细介绍了HiveQL的概述、数据模型、DDL和DML命令、数据转换函数。通过学习和使用HiveQL,您可以更方便地利用Hadoop进行大数据处理和分析。
希望通过阅读本文能够对您理解和使用 HiveQL 有所帮助。
参考链接: