当前位置: 首页 > news >正文

[Hive高级特性与 DDL和DML语法]

目录

🎇前言:

🎇 HiveQL语言的基本语法,包括DDL和DML两个方面。

   🎇DDL(数据定义语言):

   🎇DML(数据操作语言):

   🎇 Hive高级特性

多种内置函数:

分区和桶:

索引:

视图:

UDF:


🎇前言:

   🎇此文章在阿为的刺激之下,奋笔疾书而作

🎇 HiveQL语言的基本语法,包括DDL和DML两个方面。

   🎇DDL(数据定义语言):

  1. 创建数据库:CREATE DATABASE database_name;

  2. 删除数据库:DROP DATABASE database_name;

  3. 创建表:CREATE TABLE table_name (column1 data_type, column2 data_type, ...);

  4. 删除表:DROP TABLE table_name;

  5. 修改表结构:ALTER TABLE table_name ADD COLUMN column_name data_type;

  6. 查看表结构:DESCRIBE table_name;

   🎇DML(数据操作语言):

  1. 插入数据:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

  2. 查询数据:SELECT column1, column2, ... FROM table_name WHERE condition;

  3. 更新数据:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

  4. 删除数据:DELETE FROM table_name WHERE condition;

  5. 聚合函数:SUM、AVG、COUNT、MAX、MIN等。

   🎇 Hive高级特性

Hive的多种内置函数、Hive的分区和桶、Hive的索引、Hive的视图、Hive的UDF等高级特性。

  • 多种内置函数:

Hive提供了多种内置函数,包括数学函数、字符串函数、日期函数、聚合函数等。例如,ABS、CONCAT、FROM_UNIXTIME、SUM等。

-- 字符串函数
SELECT CONCAT(name,' is ',age,' years old') FROM mytable;-- 日期函数
SELECT DATE_SUB('2022-01-01', 365) FROM mytable;-- 数学函数
SELECT ABS(score) FROM mytable;
  • 分区和桶:

Hive支持对表进行分区和桶操作,可以提高查询效率。分区是按照某个列的值进行分区,而桶是按照哈希值进行分区。例如,CREATE TABLE table_name (column1 data_type, column2 data_type, ...) PARTITIONED BY (partition_column data_type) CLUSTERED BY (bucket_column) INTO num_buckets BUCKETS;

分区是Hive中管理数据的一种方式,它可以加快数据查询的速度。桶则与分区类似,但桶是在分区内再次划分的,可以让查询更加快速。

-- 创建分区表
CREATE TABLE mytable(id INT,name STRING
)
PARTITION BY (age INT, gender STRING);-- 加载数据到分区表
INSERT INTO mytable PARTITION(age=25, gender='Female') VALUES(1,'Amy');-- 创建桶表
CREATE TABLE mytable(id INT,name STRING,age INT,color STRING
)
CLUSTERED BY (age) INTO 3 BUCKETS;

 

  • 索引:

Hive支持对表进行索引操作,可以提高查询效率。可以使用CREATE INDEX语句创建索引,例如,CREATE INDEX index_name ON table_name (column_name);

-- 创建B-Tree索引
CREATE INDEX myindex ON TABLE mytable(age) AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';-- 创建Bitmap索引
CREATE INDEX myindex ON TABLE mytable(age) AS 'org.apache.hadoop.hive.ql.index.bitmap.BitmapIndexHandler';
  • 视图:

Hive支持创建视图,可以简化查询操作。可以使用CREATE VIEW语句创建视图,例如,CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;

-- 创建视图
CREATE VIEW myview AS SELECT id, name FROM mytable;-- 查询视图
SELECT * FROM myview;-- 删除视图
DROP VIEW myview;
  • UDF:

Hive支持自定义函数,可以根据需要编写自己的函数。可以使用CREATE FUNCTION语句创建UDF,例如,CREATE FUNCTION function_name AS 'class_name' USING JAR 'jar_file_path';          Hive支持用户自定义函数(UDF),可以根据需要编写自己的函数来处理数据。使用方法为编写Java或Python代码并打包为JAR文件,然后将该文件上传到Hive中,并注册UDF函数供使用。

-- 创建UDF
ADD JAR /path/to/udf.jar;
CREATE TEMPORARY FUNCTION myudf AS 'com.example.udf.MyUDF';

-- 使用UDF
SELECT myudf(id, name) FROM mytable;
 

http://www.lryc.cn/news/93866.html

相关文章:

  • Web服务器群集:Web基础与HTTP协议
  • cmd命令常用速记
  • Python网络爬虫基础进阶到实战教程
  • 树莓派使用VNC、SSH、Xrdp等方式进行远程控制的方法和注意事项
  • C++ 第二弹封装-类和对象
  • 浅析 GeoServer CVE-2023-25157 SQL注入
  • 1001router6-react
  • 前端Vue自定义支付密码输入键盘Keyboard和支付设置输入框Input
  • VB+ACCESS超市管理系统设计(源代码+系统)
  • 【机器学习】十大算法之一 “神经网络”
  • 【MarkDown】CSDN Markdown之流程图graphflowchart详解
  • Git下:Git命令使用-详细解读
  • 一条SQL语句的前世今生
  • 各种架构比较
  • scapy定制数据包探测主机
  • 【Java】Java核心要点总结70
  • 如何把一个 Git 仓库的分支加入另一个无关的 Git 仓库
  • 深蓝学院C++基础与深度解析笔记 第 4 章 表达式
  • CLION开发STM32之W5500系列(一)
  • Web3通过ganache运行起一个本地虚拟区块链
  • 01 背包问题解析与代码 python 实现
  • Vue实现前端视频展示列表及特征提取、笔记、删除、文件夹组织功能
  • 多传感器时频信号处理:多通道非平稳数据的分析工具(Matlab代码实现)
  • 数据结构算法 -分而治之算法
  • 涉密信息系统口令管理制度
  • UML与流程图
  • 音视频开发Level0: 入门级20~25k的工作
  • Git第一章、Git的原理与使用
  • 软件开发流程
  • 编程语言的优劣评选标准与未来发展趋势——探索最佳编程语言选择