Hive期末总结

hive的概念,谁开发的

Apache Hive 是一个Apache 软件基金会维护的开源项目 Facebook贡献
hive是一个基于hadoop的数据仓库工具(对数据汇总查询和分析的工具)

hive执行原理

Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。

hive的优势劣势

优点

操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
避免了去写MapReduce,减少开发人员的学习成本。
Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。
Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。
可延展:Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

缺点

1.Hive的HQL表达能力有限

(1)迭代式算法无法表达

(2)数据挖掘方面不擅长

2.Hive的效率比较低

(1)Hive自动生成的MapReduce作业,通常情况下不够智能化

(2)Hive调优比较困难,粒度较粗

hive的元数据和关系型数据库的关系

hive与关系型数据库的关系主要体现在Hive使用关系型数据库来存储其元数据。

Hive的存储

使用HDFS进行存储,使用MapReduce进行计算。

hive的数据存储格式,元数据和真实数据怎么存的(简单了解)

数据存储格式(TEXTFILE\SEQUENCEFILE\RCFILE\ORCFILE)

Hive中的数据通常存储在Hadoop分布式文件系统(HDFS)或其他分布式文件系统中。Hive表可以配置为不同的存储格式,常见的包括:

文本文件:数据以文本形式存储,每行代表一条记录,字段之间通过特定的分隔符分隔。
SequenceFile:Hadoop提供的一种二进制格式,用于存储键值对,适合于存储大量数据。
ORC(Optimized Row Columnar):一种高效的列式存储格式,优化了读写性能,支持复杂的数据类型和压缩。
Parquet:另一种列式存储格式,与Hive和Spark等大数据工具兼容,支持压缩和编码优化。

元数据存储

Hive的元数据包括表结构、分区信息、数据类型、表之间的关系等。这些元数据存储在关系型数据库中,例如:

内嵌式元数据存储:Hive可以使用内嵌式的Derby数据库作为元数据存储,适用于开发和测试环境。
外部关系型数据库:在生产环境中,Hive通常使用外部关系型数据库(如MySQL、PostgreSQL)来存储元数据,以提供更好的性能和可扩展性。

真实数据存储

真实数据即Hive表中的数据,它们存储在Hadoop的HDFS或与其他存储系统兼容的文件中。数据可以分布在集群的多个节点上,以实现高可用性和容错性。Hive表可以是:

内部表:数据存储在Hive的数据仓库目录下,当表被删除时,数据也会被删除。
外部表:数据存储在指定的外部位置,即使表被删除,数据也不会被删除。

Metastore服务

Hive的Metastore服务是一个独立的守护进程,负责存储和管理Hive的元数据。客户端通过Metastore服务与元数据交互,而Metastore服务则与底层的关系型数据库进行通信。这种架构允许多个Hive客户端共享同一个元数据存储,同时提高了元数据的安全性和可管理性。

总结来说,Hive的元数据存储在关系型数据库中,而真实数据存储在分布式文件系统(hdfs)中。Hive提供了多种数据存储格式以适应不同的查询和存储需求,并通过Metastore服务来统一管理和访问元数据。

表是怎么构成的,表里面的分区和分桶(列划分)

表由列构成
hive数据存储结构模型:

Database
└── Table├── Partition (optional)│   ├── Bucket│   │   └── File│   ││   └── Bucket│       └── File│└── Partition (optional)├── Bucket│   └── File└── Bucket└── File

hive数据类型怎么分

基本数据类型:整数、小数、文本、布尔、二进制、时间
复杂数据类型:数组、映射、结构体、联合体

hive的ddl操作

数据库的:

create database empdb;
show databases;
use empdb;

drop与cate的区别:
drop是删除 cate是清空

建表的分隔符是“|”

怎么加载数据加载到表中

load命令和insert命令
load只直接复制或移动数据 insert执行mapreduce作业插入HIVE表中

元数据存到数据库中的三种模式

单用户模式、多用户模式、远程服务模式

关联查询语句是怎么用的

select * from 要查的表 where 字段名的约束条件

窗口函数是怎么分类的,窗口函数概念(简答?)

分类:排序类、聚合类、分析类、
概念:能够扫描多个输入行计算各输出值,可以为每行数据分别生成一行结果记录。

hive与RDBMS对比表(简答?)

请添加图片描述

hadoop启动时的五个进程

NameNode、Secondary NameNode、DataNode、ResourceManager 、NodeManager

hiveserver

HiveServer 是 Hive 的一个关键组件,它是一个守护进程(Daemon),用于处理来自客户端的查询请求。
元数据访问:HiveServer 通过 Metastore 服务访问 Hive 的元数据,这些元数据包括表结构、分区信息等。

关联查询

内连接(INNER JOIN)
假设有两个表:employees 和 departments,它们通过 department_id 字段关联。SELECT e.employee_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;
这个查询将返回所有员工及其对应的部门名称,只包括那些在 departments 表中也有对应 department_id 的员工。左外连接(LEFT OUTER JOIN)
如果我们要获取所有员工的列表,即使某些员工没有分配到部门,可以使用左外连接:SELECT e.employee_name, d.department_name
FROM employees e
LEFT OUTER JOIN departments d ON e.department_id = d.department_id;
这个查询将返回所有员工的列表,如果员工没有分配到部门,department_name 将显示为 NULL。右外连接(RIGHT OUTER JOIN)
右外连接在Hive中不常用,因为Hive目前不支持原生的右外连接。但是,可以通过左外连接和UNION ALL来模拟右外连接的效果:SELECT e.employee_name, d.department_name
FROM employees e
LEFT OUTER JOIN departments d ON e.department_id = d.department_id
UNION ALL
SELECT e.employee_name, d.department_name
FROM departments d
LEFT OUTER JOIN employees e ON d.department_id = e.department_id
WHERE e.employee_name IS NULL;
这个查询将返回所有部门的列表,即使某些部门没有员工,员工信息将显示为 NULL。笛卡尔积(CROSS JOIN)
虽然不是典型的关联查询,但笛卡尔积可以用于生成两个表所有可能的组合:SELECT e.employee_name, d.department_name
FROM employees e
CROSS JOIN departments d;
这个查询将返回所有员工与所有部门的组合,不考虑任何关联条件。多表连接
有时,你可能需要根据多个表的多个字段进行连接:SELECT o.order_id, c.customer_name, e.employee_name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id
INNER JOIN employees e ON o.employee_id = e.employee_id;

联合查询UNION

假设有两个表:table1 和 table2,它们具有相同的列结构。SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
这个查询将返回table1和table2中所有不同的行。默认情况下,UNION查询会去除重复的行。UNION ALL查询
如果需要包含重复的行,可以使用UNION ALL。SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;跨多个表的UNION查询
可以跨多个表进行联合查询,只要每个SELECT语句的列数和类型匹配。SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2
UNION
SELECT column1, column2 FROM table3;

数据etl过程与作用(随便记一点)

ETL过程的作用包括:

数据集成:
将来自不同数据源的数据(如关系型数据库、日志文件、NoSQL数据库等)集成到Hadoop生态系统中。

数据清洗:
清洗原始数据,去除错误、重复或不完整的记录,确保数据的质量和一致性。

数据转换:
将数据转换成适合分析的格式,包括数据类型转换、字段重命名、数据聚合等。

数据聚合:
对数据进行汇总和聚合操作,以支持快速查询和报表生成。

数据验证:
验证数据的完整性和准确性,确保ETL过程没有引入错误。

数据优化:
通过分区、桶(Bucketing)和索引等技术优化数据存储,提高查询性能。

数据加载:
将处理后的数据加载到Hive表中,这些表可以用于后续的分析和报告。

数据血缘:
记录数据的来源和转换过程,帮助理解数据的上下文和历史。

数据治理:
应用数据治理策略,包括数据安全、访问控制和合规性。

数据服务:
为业务用户提供数据服务,支持决策制定和运营活动。

在Hive中执行ETL操作通常涉及以下步骤:

使用HiveQL编写ETL脚本。
使用Hive的LOAD语句将数据从外部源加载到HDFS。
使用Hive的SELECT语句进行数据提取和转换。
使用Hive的INSERT语句将转换后的数据加载到目标表。
使用Hive的分区和桶技术优化数据存储。
使用Hive的元数据管理功能来维护数据血缘和治理信息。

数据库ETL过程中Hive的作用(随便记一点)

数据存储: 作为Hadoop生态系统的一部分,Hive用于存储大规模数据集。

数据提取: 从不同数据源导入数据到Hive。

数据清洗和转换: 使用HiveQL进行数据清洗、转换和标准化。

数据加载: 将处理后的数据加载到Hive表中,支持动态分区等高级特性。

数据优化: 利用分区、桶和索引提高查询效率。

元数据管理: 记录数据的来源和转换过程,支持数据血缘分析。

数据访问: 提供统一的数据访问接口,简化数据访问。

数据治理: 支持数据安全、访问控制和合规性要求。

hive架构组成

维度

数据模型维度:Hive 支持传统的关系型数据库的数据模型,如表(Tables)、分区(Partitions)、桶(Buckets)等。

查询语言维度:Hive 提供了类似于 SQL 的查询语言,称为 HiveQL,用户可以使用它来执行数据查询、数据定义和数据操纵操作。

存储维度:Hive 支持多种数据存储格式,包括文本文件、SequenceFile、ORC、Parquet 等。

计算引擎维度:Hive 可以与不同的计算引擎集成,如 MapReduce、Tez、Spark 等,以执行查询。

组件

Hive CLI:Hive 的命令行界面,允许用户执行 HiveQL 命令。

HiveServer2:Hive 的守护进程,用于处理客户端的查询请求。

Metastore:Hive 的元数据服务,存储关于 Hive 表、分区、数据库等的元数据。

Hive Web Interface (HWI):Hive 的 Web 界面,允许用户通过浏览器执行 HiveQL 查询。

HCatalog:Hive 的表和存储管理服务,允许其他 Hadoop 组件访问 Hive 表。

Hive JDBC/ODBC Driver:允许用户通过 JDBC 或 ODBC 连接 HiveServer2 并执行查询。

架构

数据层:数据存储在 Hadoop 的 HDFS 或其他兼容的分布式文件系统中。

元数据层:Hive 的元数据存储在 Metastore 中,通常是一个关系型数据库,如 MySQL 或 PostgreSQL。

接口层:Hive 提供多种接口,如 Hive CLI、JDBC/ODBC 驱动程序、HWI 等,供用户提交查询。

查询层:HiveServer2 接收查询请求,编译和优化 HiveQL 语句。

执行层:Hive 将查询转换为 MapReduce、Tez 或 Spark 作业,并在 Hadoop 集群上执行。

服务层:包括 Hive 的守护进程和辅助服务,如 Metastore 服务。

集成层:Hive 可以与其他数据处理工具和平台集成,如 Pig、Spark、HBase 等。

安全层:Hive 提供了安全机制,包括访问控制、Kerberos 认证、SSL 加密等。
数据仓库构建过程和步骤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/360276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDS Gaia-X Catena-X Manufacturing-X的关系

来源:小盟科普丨Catena-X数据空间在汽车领域落地https://mp.weixin.qq.com/s/Ftp0UGAohsh4ltLn3DylAw

Linux常用基本命令

linux目录 1.查看linux本机ip ip addr 2.新建文件夹 mkdir 文件夹名 3.新建文件 touch 文件名.后缀 4.删除文件 rm 文件名.后缀 5.删除文件 rm -r 文件名 6.不询问直接删除 rm -rf 文件名/文件名/ 7.显示目录下文件,文件夹 作用:显示指定目…

【Apache Doris】如何实现高并发点查?(原理+实践全析)

【Apache Doris】如何实现高并发点查?(原理实践全析) 一、背景说明二、原理介绍三、环境信息四、Jmeter初始化五、参数预调六、用例准备七、高并发实测八、影响因素九、总结 本文主要分享 Apache Doris 是如何实现高并发点查的,以…

【论文阅读】-- Attribute-Aware RBFs:使用 RT Core 范围查询交互式可视化时间序列颗粒体积

Attribute-Aware RBFs: Interactive Visualization of Time Series Particle Volumes Using RT Core Range Queries 摘要1 引言2 相关工作2.1 粒子体渲染2.2 RT核心方法 3 渲染彩色时间序列粒子体积3.1 场重构3.1.1 密度场 Φ3.1.2 属性字段 θ3.1.3 优化场重建 3.2 树结构构建…

Pinia详解

文章目录 简介特点用法1. 安装Pinia2. 注册Pinia Store3. 创建Pinia Store4. 使用Pinia Store 区别 Vuex详解 Pinia是一个基于Vue 3的状态管理库,专为Vue 3设计。它提供了一种简单、直观且可扩展的方式来组织和访问应用程序的状态。Pinia的设计灵感来源于Vuex&#…

199.罗马数字转整数(力扣)

代码解决 class Solution { public:// 定义一个哈希表来存储罗马数字符号及其对应的整数值unordered_map<char, int> res {{I, 1},{V, 5},{X, 10},{L, 50},{C, 100},{D, 500},{M, 1000},};// 将罗马数字字符串转换为整数的函数int romanToInt(string s) {int num 0; …

keepalive+nginx高可用架构

目录 一.keepalive简要介绍 1.keepalive相关文件 2.keepalive配置组成 3.keepalive全局配置 4.配置虚拟路由器 5.抢占模式和非抢占模式 抢占模式&#xff08;Preemptive Mode&#xff09; 使用方法&#xff1a; 非抢占模式&#xff08;Non-preemptive Mode&#xff09;…

vue3-openlayers 轨迹回放(历史轨迹)(ol-animation-path实现)

本篇介绍一下使用vue3-openlayers轨迹回放&#xff08;历史轨迹&#xff09;&#xff08;ol-animation-path实现&#xff09; 1 需求 轨迹回放&#xff08;历史轨迹&#xff09;实时轨迹 2 分析 轨迹回放&#xff08;历史轨迹&#xff09;&#xff0c;一般是一次性拿到所有…

LabVIEW在核磁共振实验室的应用

​核磁共振&#xff08;NMR&#xff09;实验室在进行复杂的核磁共振实验时&#xff0c;需要一个高效、灵活且易于操作的实验控制和数据采集系统。传统的NMR实验系统往往使用专门的硬件和软件&#xff0c;存在系统封闭、扩展性差、维护成本高等问题。为了解决这些问题&#xff0…

fastadmin框架修改前端时间戳格式的时区

一、上传文件 将 moment-timezone-with-data.js 和 moment-timezone-with-data.min.js 文件上传到项目的 \public\assets\libs\moment\ 文件夹中。 二、配置中引入文件 在 \public\assets\js\require-backend.js 文件中增加所引入文件的配置: moment-timezone-with-data: …

计算机方向国际学术会议推荐

*华中师范大学伍伦贡联合研究院与南京大学联合主办 第三届人工智能、物联网和云计算技术国际会议&#xff08;AIoTC 2024&#xff09; 大会官网&#xff1a;www.icaiotc.net 时间地点&#xff1a;2024年9月13-15日&#xff0c;中国武汉 收录检索&#xff1a;EI Compendex&a…

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测 目录 分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测&#xff0c;…

发动机燃烧仿真|CMCL填补CFD与0维/1维均质反应模型方法间的空白

发动机的研制涉及空气动力、燃烧传热、自动控制等多方面的问题。相比基于物理样机试验的传统涉及方法&#xff0c;数值模拟仿真设计方法大大地节约了研发成本、缩短了研发周期。 对于发动机一维概念设计&#xff0c;CMCL燃烧仿真解决方案可以帮助用户快速准确实现点火、熄火、…

什么是AI绘画?全网最细stable diffusion工作原理讲解!

前言 &#xff08;这篇文章是给那些打算接触AI绘画和还不太了解的人写的&#xff09;什么是AI绘画&#xff1f;什么配置才能AI绘画&#xff1f;要怎样部署文件、输入咒语&#xff1f;你是否有着这样的疑问&#xff0c;在这个系列我会写一下我近一个多月的学习成果&#xff0c;…

hypernetwork在SD中是怎么工作的

大家在stable diffusion webUI中可能看到过hypernetwork这个词&#xff0c;那么hypernetwork到底是做什么用的呢&#xff1f; 简单点说&#xff0c;hypernetwork模型是用于修改样式的小型神经网络。 什么是 Stable Diffusion 中的hypernetwork&#xff1f; Hypernetwork 是由…

JavaWeb系列十二: 服务器端渲染技术(JSP) 上

跟着韩老师学java 1. JSP基本介绍1.1 JSP快速入门1.2 JSP(Java Server Pages)运行原理1.3 page指令介绍1.4 JSP脚本1.4.1 声明脚本1.4.2 表达式脚本1.4.3 java代码脚本 1.5 jsp注释1.6 jsp内置对象1.7 JSP四大域对象1.7.1 域对象实例1.7.2 注意事项 1.8 JSP请求转发标签1.9 作业…

MYSQL 将某个字段赋值当前时间

如 我们需要将use_time 赋值为当前时间&#xff1a; 准备三条数据 &#xff1a; 执行sql &#xff0c;2种当前时间赋值函数&#xff0c;1种关键字赋值 &#xff1a; update test_info SET use_timeNOW() WHERE id 1; update test_info SET use_timeCURRENT_TIMESTAMP() …

基于飞腾腾云S2500的ATS部署及调优指南(反向代理篇)

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

场外期权一级交易商都有哪些?和二级交易商有什么区别?

今天带你了解场外期权一级交易商都有哪些&#xff1f;和二级交易商有什么区别&#xff1f;目前&#xff0c;个人投资者无法直接进行场外个股期权投资&#xff0c;而是需要通过专业机构进行询价交易下单。 场外期权业务一级交易商分别为&#xff0c;广发证券、国泰君安、华泰证…

Java学习笔记(一)Java内容介绍、程序举例、DOS命令、Java跨平台特性的本质、课后练习

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍Java内容介绍、程序举例、DOS命令、Java跨平台特性的本质还有几道课后练习详细介绍以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言 …