Hive期末总结

打印 上一主题 下一主题

主题 653|帖子 653|积分 1959

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数据存储布局模子:
  1. Database
  2. └── Table
  3.     ├── Partition (optional)
  4.     │   ├── Bucket
  5.     │   │   └── File
  6.     │   │
  7.     │   └── Bucket
  8.     │       └── File
  9.     │
  10.     └── Partition (optional)
  11.         ├── Bucket
  12.         │   └── File
  13.         └── Bucket
  14.             └── File
复制代码
hive数据类型怎么分

根本数据类型:整数、小数、文本、布尔、二进制、时间
复杂数据类型:数组、映射、布局体、联合体
hive的ddl操纵

数据库的:
  1. create database empdb;
  2. show databases;
  3. 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 的元数据,这些元数据包括表布局、分区信息等。
关联查询

  1. 内连接(INNER JOIN)
  2. 假设有两个表:employees 和 departments,它们通过 department_id 字段关联。
  3. SELECT e.employee_name, d.department_name
  4. FROM employees e
  5. INNER JOIN departments d ON e.department_id = d.department_id;
  6. 这个查询将返回所有员工及其对应的部门名称,只包括那些在 departments 表中也有对应 department_id 的员工。
  7. 左外连接(LEFT OUTER JOIN)
  8. 如果我们要获取所有员工的列表,即使某些员工没有分配到部门,可以使用左外连接:
  9. SELECT e.employee_name, d.department_name
  10. FROM employees e
  11. LEFT OUTER JOIN departments d ON e.department_id = d.department_id;
  12. 这个查询将返回所有员工的列表,如果员工没有分配到部门,department_name 将显示为 NULL。
  13. 右外连接(RIGHT OUTER JOIN)
  14. 右外连接在Hive中不常用,因为Hive目前不支持原生的右外连接。但是,可以通过左外连接和UNION ALL来模拟右外连接的效果:
  15. SELECT e.employee_name, d.department_name
  16. FROM employees e
  17. LEFT OUTER JOIN departments d ON e.department_id = d.department_id
  18. UNION ALL
  19. SELECT e.employee_name, d.department_name
  20. FROM departments d
  21. LEFT OUTER JOIN employees e ON d.department_id = e.department_id
  22. WHERE e.employee_name IS NULL;
  23. 这个查询将返回所有部门的列表,即使某些部门没有员工,员工信息将显示为 NULL。
  24. 笛卡尔积(CROSS JOIN)
  25. 虽然不是典型的关联查询,但笛卡尔积可以用于生成两个表所有可能的组合:
  26. SELECT e.employee_name, d.department_name
  27. FROM employees e
  28. CROSS JOIN departments d;
  29. 这个查询将返回所有员工与所有部门的组合,不考虑任何关联条件。
  30. 多表连接
  31. 有时,你可能需要根据多个表的多个字段进行连接:
  32. SELECT o.order_id, c.customer_name, e.employee_name
  33. FROM orders o
  34. INNER JOIN customers c ON o.customer_id = c.customer_id
  35. INNER JOIN employees e ON o.employee_id = e.employee_id;
复制代码
联合查询UNION

  1. 假设有两个表:table1 和 table2,它们具有相同的列结构。
  2. SELECT column1, column2 FROM table1
  3. UNION
  4. SELECT column1, column2 FROM table2;
  5. 这个查询将返回table1和table2中所有不同的行。默认情况下,UNION查询会去除重复的行。
  6. UNION ALL查询
  7. 如果需要包含重复的行,可以使用UNION ALL。
  8. SELECT column1, column2 FROM table1
  9. UNION ALL
  10. SELECT column1, column2 FROM table2;
  11. 跨多个表的UNION查询
  12. 可以跨多个表进行联合查询,只要每个SELECT语句的列数和类型匹配。
  13. SELECT column1, column2 FROM table1
  14. UNION
  15. SELECT column1, column2 FROM table2
  16. UNION
  17. 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 加密等。
数据仓库构建过程和步骤

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表