Hive数仓操作(一)

Hive 介绍

Hive 是一个基于 Hadoop 的数据仓库工具,旨在简化大规模数据集的管理和分析。它将结构化数据文件映射为表,并提供类似 SQL 的查询功能。Hive 的数据存储在 Hadoop 分布式文件系统(HDFS)中,使用 Hive 查询语言(HQL)进行数据处理。

1. Hive 的本质: HQL转化为MapReduce

  1. 数据存储:Hive 的数据存储在 HDFS 中。
  2. 底层实现:Hive 通过 MapReduce 框架处理数据,适合大数据量的分析任务。
  3. 执行延迟:Hive 的执行延迟较高,适合于对实时性要求不高的数据分析场景。

在这里插入图片描述


2. Hive 的优点

  1. 简单易用:采用类 SQL 语法,快速开发能力强。
  2. 低学习成本:避免手动编写 MapReduce 程序,减少开发人员的学习成本。
  3. 大数据处理:优势在于处理大规模数据,对于小数据量没有明显优势。
  4. 自定义扩展:支持用户自定义函数,能够满足特定需求。

3. Hive 和关系型数据库的比较

尽管 Hive 采用了类似 SQL 的查询语言 HQL,使得它在表面上看起来像一个数据库,但实际上,Hive 和数据库除了拥有类似的查询语言,再无类似之处,数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的工具。

特性Hive关系型数据库(如 Oracle,Mysql)
存储HDFS 分布式文件存储系统服务器本地的文件系统(如 DBF)
计算MapReduce专用的计算执行引擎
时间高延迟低延迟
数据量适用于 PB/TB 级别的大数据通常处理 GB 级别的数据
主键不支持主键支持主键
索引高版本才有位图索引,索引支持有限有丰富的索引支持
可扩展性与 Hadoop 的可扩展性一致,支持大规模集群由于 ACID 语义的限制,扩展性有限
数据规模支持大规模数据的并行计算支持的数据规模相对较小
  1. 查询语言:Hive 提供了针对其特性设计的类 SQL 查询语言 HQL,熟悉 SQL 的开发者可以快速上手。

  2. 数据存储位置:Hive 的数据都存储在 HDFS 中,而关系型数据库则可以保存在本地文件系统或块设备中。

  3. 数据更新:Hive 主要用于读多写少的场景,不建议频繁更新数据,而关系型数据库的设计则支持频繁的 CRUD 操作。

  4. 索引:Hive 在数据加载过程中不会自动创建索引,因此查询时可能需要全表扫描,这会导致较高的延迟。相对而言,关系型数据库通常会为重要字段创建索引,查询效率较高。

  5. 执行:Hive 查询通过 Hadoop 的 MapReduce 来实现,而关系型数据库则通常有自己的执行引擎,处理速度更快。

  6. 执行延迟:由于缺乏索引和使用 MapReduce,Hive 的查询延迟较高,因此不适合在线实时查询。

  7. 可扩展性:Hive 的可扩展性与 Hadoop 一致,能够在集群上水平扩展,支持大规模数据的处理。而传统关系型数据库在 ACID 语义的严格限制下,扩展性相对有限。

  8. 数据规模:Hive 利用 MapReduce 进行并行计算,能够支持 PB/TB 级别的数据规模。相比之下,关系型数据库的处理能力通常较小,适合 GB 级别的数据。

  9. 应用场景:Hive 是为数据仓库设计的,适用于数据分析和批处理,而关系型数据库更适合在线事务处理(OLTP)和实时数据查询。


4. Hive 的元数据存储

元数据是描述数据的数据,Hive 需要有一个地方来存储元数据,它包括以下内容:

  • 数据库的名称
  • 表的名称
  • 表的列名
  • 表的类型
  • 列的类型
  • 表的数据在 HDFS 上的位置

为了管理这些元数据,Hive 一般使用 关系型数据库如MySQL 作为存储后端。

相关操作

1. 登录 MySQL 数据库

在命令行中使用以下命令登录到 MySQL:

mysql -h 127.0.0.1 -u root -p123456

这里,-h 指定主机地址,-u 指定用户名,-p 后跟密码。

2. 查看 MySQL 中的数据库

登录后,可以显示 MySQL 中现有的数据库:

SHOW DATABASES;

会看到多个数据库,其中有一个名为 hive 的数据库,用来存储 Hive 的元数据。

3. 切换到 Hive 数据库

使用以下命令切换到 hive 数据库:

USE hive;

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

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

相关文章

12.梯度下降法的具体解析——举足轻重的模型优化算法

引言 梯度下降法(Gradient Descent)是一种广泛应用于机器学习领域的基本优化算法,它通过迭代地调整模型参数,最小化损失函数以求得到模型最优解。 通过阅读本篇博客,你可以: 1.知晓梯度下降法的具体流程 2.掌握不同梯度下降法…

数据仓库简介(一)

数据仓库概述 1. 什么是数据仓库? 数据仓库(Data Warehouse,简称 DW)是由 Bill Inmon 于 1990 年提出的一种用于数据分析和挖掘的系统。它的主要目标是通过分析和挖掘数据,为不同层级的决策提供支持,构成…

云服务架构与华为云架构

目录 1.云服务架构是什么? 1.1 云服务模型 1.2 云部署模型 1.3 云服务架构的组件 1.4 云服务架构模式 1.5 关键设计考虑 1.6 优势 1.7 常见的云服务架构实践 2.华为云架构 2.1 华为云服务模型 2.2 华为云部署模型 2.3 华为云服务架构的核心组件 2.4 华…

【C++】STL标准模板库容器set

🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 📌关联式容器set(集合)简介 📌set(集合)的使用 🎏set(集合)的模板参数列表 🎏set(集合)的构造函数 🎏set(集合)的迭代…

翔云 OCR:发票识别与验真

在数字化时代,高效处理大量文档和数据成为企业和个人的迫切需求。翔云 OCR 作为一款强大的光学字符识别工具,在发票识别及验真方面表现出色,为我们带来了极大的便利。 一、翔云 OCR 简介 翔云 OCR 是一款基于先进的人工智能技术开发的文字识别…

搭建k8s集群服务(kubeadm方式)

准备工作 操作系统版本:CentOS Linux release 7.9.2009 (Core) 虚拟机硬件配置:2核8G内存(最低2G),硬盘最低25G; linux内核版本(3.10版本尝试失败):5.4.268-1.el7.elr…

基于Java+VUE+echarts大数据智能道路交通信息统计分析管理系统

大数据智能交通管理系统是一种基于Web的系统架构,通过浏览器/服务器(B/S)模式实现对城市交通数据的高效管理和智能化处理。该系统旨在通过集成各类交通数据,包括但不限于车辆信息、行驶记录、违章情况等,来提升城市管理…

【Python】AudioLazy:基于 Python 的数字信号处理库详解

AudioLazy 是一个用于 Python 的开源数字信号处理(DSP)库,设计目的是简化信号处理任务并提供更直观的操作方式。它不仅支持基础的滤波、频谱分析等功能,还包含了滤波器、信号生成、线性预测编码(LPC)等高级…

两个向量所在平面的法线,外积,叉积,行列式

偶尔在一个数学题里面看到求两向量所在平面的法线,常规方法可以通过法线与两向量垂直这一特点,列两个方程求解;另外一种方法可以通过求解两个向量的叉积,用矩阵行列式 (determinant) 的方式,之前还没见过,在…

【计算机网络】传输层UDP和TCP协议

目录 再谈端口号端口号范围划分认识知名端口号查看知名端口号两个问题 UDP协议UDP特点UDP的缓冲区基于UDP的应用层协议 TCP协议TCP协议格式确认应答机制超时重传机制连接管理机制(三次握手与四次挥手)理解TIME_WAIT状态理解CLOSE_WAIT状态滑动窗口快重传…

【C++】迭代器失效问题解析

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 一、迭代器失效的概念 迭代器的作用…

【PyTorch】生成对抗网络

生成对抗网络是什么 概念 Generative Adversarial Nets,简称GAN GAN:生成对抗网络 —— 一种可以生成特定分布数据的模型 《Generative Adversarial Nets》 Ian J Goodfellow-2014 GAN网络结构 Recent Progress on Generative Adversarial Networks …

Python | Leetcode Python题解之第450题删除二叉搜索树中的节点

题目: 题解: class Solution:def deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:cur, curParent root, Nonewhile cur and cur.val ! key:curParent curcur cur.left if cur.val > key else cur.rightif cur i…

解决Excel时出现“被保护单元格不支持此功能“的解决办法,详细喂饭级教程

今天有个朋友发过来一个excel文件,本来想修改表格的内容,但是提示,被保护单元格不支持此功能,对于这个问题,找到一个解决方法,现记录下来,分享给有需要的朋友。 表格文件名为aaa.xls,以WPS为例。…

什么是转义字符

1.什么是转义字符 转义字符是一组特殊的字符&#xff0c;转义字符顾名思义就是&#xff1a;转变原来的意思。 比如&#xff1a;我们有一组字符&#xff0c;其中的n能完整的打印出来&#xff0c;如下&#xff1a; #include <stdio.h> int main() { printf("asnfd&…

Typora解决图片复制到其他博客平台,解决图片显示转存失败(CSDN除外)

目录 一、Typora这个Markdown编辑器的确好用1.1 安装 二、 问题“图片转存失败”2.1 问题具体显示如下&#xff1a;2.2 问题分析&#xff1a;其实就是图片在typora里面是使用的本地路径&#xff0c;因此不显示&#xff0c; 三、解决方案3.1打开Typora&#xff0c;按下述图片显示…

【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL74

异步复位同步释放 描述 题目描述&#xff1a; 请使用异步复位同步释放来将输入数据a存储到寄存器中&#xff0c;并画图说明异步复位同步释放的机制原理 信号示意图&#xff1a; clk为时钟 rst_n为低电平复位 d信号输入 dout信号输出 波形示意图&#xff1a; 输入描…

网络原理-数据链路层

在这一层中和程序员距离比较遥远&#xff0c;除非是做交换机开发&#xff0c;否则不需要了解数据链路层 由AI可知&#xff1a; 数据链路层&#xff08;Data Link Layer&#xff09;是OSI&#xff08;Open Systems Interconnection&#xff09;七层网络模型中的第二层&#xff0…

Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持

作者&#xff1a;来自 Elastic Jeff Vestal 我们很高兴地宣布 Elasticsearch 的开放推理 API 支持 Gemini 开发者 API。使用 Google AI Studio 时&#xff0c;开发者现在可以与 Elasticsearch 索引中的数据进行聊天、运行实验并使用 Google Cloud 的模型&#xff08;例如 Gemin…

用网络分析仪测试功分器驻波的5个步骤

在射频系统中&#xff0c;功分器的驻波比直接关系到信号的稳定性和传输效率。本文将带您深入了解驻波比的测试方法和影响其结果的因素。 一、功分器驻波比 驻波(Voltage Standing Wave Ratio)&#xff0c;简称SWR或VSWR&#xff0c;是指频率相同、传输方向相反的两种波&#xf…