hive架构介绍、SQL引擎与NoSQL引擎的对比

2023-05-16

hive架构介绍、SQL引擎与NoSQL引擎的对比

  • 什么是hive?
  • 什么是数据仓库?
  • 数据仓库的构建过程
  • OLTP应用和OLAP应用
  • 数据仓库中的数据模型
  • 什么是hive
  • HIVE的体系结构
    • hive的体系结构之元数据
    • hive的体系结构之HQL的执行过程
    • hive的体系结构
  • 什么是SQL引擎?
  • SQL与NoSQL的典型引擎和区别
  • hive on
  • Hive on Spark和Spark on Hive之间的SQL和计算引擎是一模一样的,如果区分?
  • Spark-SQL、Hive on Spark、Spark on Hive使用场景
  • Hive
  • 参考

什么是hive?

hive构建在hadoop hdfs 上的数据仓库。

什么是数据仓库?

数据仓库是一个面向主题的,集成的,不可更新的,随时间不变化的数据集合,
它主要用于支持企业或组织的决策分析处理。
数据仓库实际上就是一个数据库,数据仓库的特点:引入冗余,分析数据;
数据库的特点:避免冗余,捕获数据。

数据仓库的构建过程

1、数据源 (业务数据系统、文档资料、其他数据)
2、数据存储及管理-ETL (抽取Extract、转换Transform、装载Load)
3、数据仓库引擎 (服务器)
4、前端展示 (数据查询、数据报表、数据分析、各类应用)

OLTP应用和OLAP应用

1.OLTP(on-line transaction processing) 联机事务处理
例:银行转账
2.OLAP(on-line analytical processing) 联机分析处理
例:商品推荐系统

数据仓库中的数据模型

1、星型模型——强调大范围的维度,冗余少
在这里插入图片描述

2、雪花模型——强调具体指标,有较多冗余,用起来方便
在这里插入图片描述

什么是hive

hive是建立在hadoop hdfs 上的数据仓库基础架构。
hive可以用来进行数据提取转化加载(ETL)。
hive提供了简单的类似SQL的查询语言(HQL),它允许熟悉SQL的用户查询数据。
hive允许熟悉MapReduce的开发者,
开发自定义的mapper和Reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。
hive是SQL引擎,它将SQL语句转移成M/R job, 然后在Hadoop上执行。
hive表其实就是HDFS的目录/文件

HIVE的体系结构

hive的体系结构之元数据

hive的元数据

  • hive将元数据存储在数据库中(metastore),支持mysql、derby等数据库(mysql、derby、oracle)
  • hive中的元数据包括表的名字、表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

hive的体系结构之HQL的执行过程

解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。
生成的查询计划存储在HDFS中,并在随后又MapReduce调用生成。
在这里插入图片描述

hive的体系结构

hadoop

  • 用HDFS进行存储,利用MapReduce进行计算
    元数据存储 (MetaStore)
  • 通常是存储在关系数据库 mysql,derby等

在这里插入图片描述

什么是SQL引擎?

对关系型数据来说,数据库引擎 (或“存储引擎”)是DBMS用于从数据库增删查改(CRUD)数据的底层软件组件。
部署了最基本的数据存取(包括B+树以及索引)以后,还可以实现一些高级功能。
(1)SQL语言是数据库通用操作语言,所以需要一个SQL解析器,将SQL命令解析为对应的ISAM操作。

(2)数据库连接(join)是指数据库的两张表通过"外键",建立连接关系。你需要对这种操作进行优化。

(3)数据库事务(transaction)是指批量进行一系列数据库操作,只要有一步不成功,整个操作都不成功。所以需要有一个"操作日志",以便失败时对操作进行回滚。

(4)备份机制:保存数据库的副本。

(5)远程操作:使得用户可以在不同的机器上,通过TCP/IP协议操作数据库。

对于非关系型数据,主要在sql解析上区别。对比关系型与非关系型数据库如下;

SQL与NoSQL的典型引擎和区别

数据库类型SQLNoSQL
举例Oracle、SqlServer、MySQL、PostgreSQL等MongoDB、Redis、HBase等
存储结构采用结构化表来存储数据采用半结构化数据集存储数据
存储规范化 &存储代价通过更加规范化逻辑表来避免重复,获得最精简的空间,但数据操作往往涉及多个表,数据管理复杂。将数据存储在数据集中,数据经常可能存储重复,但数据更容易读写。
横向扩容能力较弱较强
事务性 &纯扩展性非常好的支持事务性不支持或半支持

关系型数据库特征及适用场景

数据库特征适用场景
MySQL最广泛、流行的开源数据库,支持多插件式存储引擎、灵活、多平台,支持水平拆分。支持高并发,简单的绝大部分 OLTP场景,单实例数量级不易过大,非常适合大规模数据库场景相对简单的互联网行业。
SQL Server与微软体系紧密结合的商业关系型数据库,大多数操作通过图形界面完成,支持共享存储方式的数据库集群,可通过硬件进行垂直升级。适用于应用端采用微软体系的大多数 OLTP场景。
Oracle目前市面上功能最强大、最复杂的商业数据库,有一套完整监控管理体系,支持多种高可用方案。适用于稳定性、安全性要求非常高的 OLTP场景,如银行、金融行业。
PostgreSQL目前功能最强大的开源数据库,支持多平台、多种高可用方案,但国内社区活跃度有待进一步增强。易用性介于 mysql与oracle中间。支持绝大多数高并发 OLTP场景,国内大规模应用的案例相对较少,适合作为oracle与mysql之间的折中方案。

关系型数据库特征及适用场景

数据库特征适用场景
MongoDB主流的文档型 NoSQL数据库,开源,多平台。适用于更新迭代快、需求变更多、以对象为主的网站应用、小文件系统、日志分析系统等。
Redis主流的内存数据库,性能高,稳定性好。适用于对命令响应速度要求高,热点数据规模小、读取频繁的场景。
Hbase主流的海量列式存储型 NoSQL数据库。适用于简单数据写入和海量、简单数据查询的业务场景,多用于 OLAP场景。

hive on

spark及spark on hive,spark sql的区别:sql引擎和计算引擎
Spark-SQL:Spark SQL引擎 + SparkRDD引擎

Hive on Spark:Hive SQL引擎+ SparkRDD引擎

Spark on Hive: Hive SQL引擎+ SparkRDD引擎

Hive on Spark和Spark on Hive之间的SQL和计算引擎是一模一样的,如果区分?

Hive on Spark 是在Hive中配置Spark,运行方式入口是通过Hive,底层是有第三方的hive on spark中间包自动转换MR引擎,变为SparkRDD引擎。

Spark on Hive 是在Spark中配置Hive,运行方式入口是通过Spark,底层通过配置Hive的hive-site.xml,hdfs-site.xml等配置文件来直接操作hive SQL,其实是Hive的语法规则,但是计算还是本身的SparkRDD引擎。

Spark-SQL、Hive on Spark、Spark on Hive使用场景

从计算引擎上来看,三者都是SparkRDD计算引擎。从计算性能上来看,其实不会差非常多,都是取决于SparkRDD计算引擎。

Spark-SQL更多是开发Code中进行计算任务比较多,同时Saprk-SQL可以持久化到库表中方便第二次使用。

Hive on Spark,常规的数仓查询任务的,对外接口服务之类的。因为Hadoop生态群中的WEBUI界面非常丰富,所以直接通过HiveSQL查询将会非常方便。

Spark on Hive,使用Spark作为开发架构的,Hive作为数仓存储的场景中使用。

Hive

计算引擎的切换方法
1、配置mapreduce计算引擎
set hive.execution.engine=mr;
2、配置spark计算引擎
set hive.execution.engine=spark;
3、配置tez 计算引擎

set hive.execution.engine=tez;

参考

HIVE入门(概述、hive的体系结构): https://zhuanlan.zhihu.com/p/46210633
从 Hive 迁移到 SparkSQL,有赞的大数据实践:https://www.infoq.cn/article/I0ogpB7hMY4r4-4dFDDI

Hive计算引擎的切换方法:https://blog.csdn.net/u014236468/article/details/80927783

主流开源SQL引擎总结,不断改进的Hive始终遥遥领先 :https://www.sohu.com/a/127616590_470008

如何开发一个大数据SQL引擎:
https://geek-docs.com/hive/hive-tutorial/how-to-develop-a-large-data-sql-engine.html

大学生如何实现一个数据库?:https://www.zhihu.com/question/35382593

数据库的最简单实现:
https://www.ruanyifeng.com/blog/2014/07/database_implementation.html

数据库入门之3张表对比关系型与非关系型数据库:http://blog.itpub.net/31556022/viewspace-2638924/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hive架构介绍、SQL引擎与NoSQL引擎的对比 的相关文章

  • CSCSWek12 B-Happy 消消乐

    题目描述 Q老师是个很老实的老师 xff0c 最近在积极准备考研 Q老师平时只喜欢用Linux系统 xff0c 所以Q老师的电脑上没什么娱乐的游戏 xff0c 所以Q老师平时除了玩Linux上的赛车游戏SuperTuxKart之外 xff0
  • ubuntu中各个文件夹的作用

    Ubuntu的根目录的文件夹各个含义 home xff1a 家目录 xff0c 所有普通用户都有一个以自己名字命名的文件夹存放在这个目录中 普通用户登录ubuntu默认进入的就是家目录中自己的文件夹 xff0c 可用pwd命令查看 xff0
  • 【CUDA】Ubuntu系统如何安装CUDA保姆级教程(2022年最新)

    本期目录 Linux安装CUDA Linux安装CUDA 输入以下命令 xff0c 查看 GPU 支持的最高 CUDA 版本 笔者这里显示的是 11 6 xff0c 这意味着 xff0c 安装的 CUDA 版本必须 lt 61 11 6 n
  • AVI视频格式分析-封装格式

    AVI视频封装格式分析 使用的工具RIFF块CHUNK块LIST块hdrl LISTavih CHUNKstrl LISTstrh CHUNKstrf CHUNK JUNK CHUNKmovi LISTidx1 CHUNK 使用的工具 el
  • 2014.10.10

    1 主要是制作了suse镜像 xff0c 但是还存在很多问题 xff0c 没有加上默认网关 xff0c 我很不开心 xff0c 根目录没有扩展 2 了解了下 boot from image 通过glance上传一个镜像 xff0c 然后通过
  • 2014.10.11

    我只想骂csdn xff01 截图直接粘过来居然不能直接显示出来 xff01 xff01 xff01 妈蛋 xff01 xff01 1 suse镜像制作完善 xff0c 根目录未扩展这是个大问题 xff0c 默认网关没加上 所谓的根目录扩展
  • 2014.10.12

    早晨8点就起了 xff0c 然后匆匆奔向wx xff0c 为了思念的人 xff0c 吃了个中午饭 xff0c 感觉还不错 xff0c 下午回来之后又去了wpj xff0c 胡扯一通 xff0c 而且发现现在家里人的注意力完全放在我的情感生活
  • vmware 下安装 red hat 9,dos 以及wmware tools

    1 安装vmware vmware 版本 7 11 282343 英文原版下载 xff1a http dl sh ctc 2 pchome net 03 lt VMware workstation full 7 1 1 282343 rar
  • 关于上财陈畅的俄罗斯方块的学习

    最近同学学习C xff0c 想做一个大练习 xff0c 于是选择了俄罗斯方块 xff0c 我 xff0c 计算机专业在校学生 xff0c 说实话理论还行 xff0c 实践动手能力很差 xff0c 同学让我先做 xff0c 然后给他讲讲怎样一
  • xrdp开源项目的代码分析

    最近我的博客将重新恢复更新 xff0c 从2012年3月份起 xff0c 我开始参与某公司的堡垒机项目的研发工作 xff0c 堡垒机又叫内控堡垒机 xff0c 运维审计系统 xff0c 相信不少人也听说过 xff0c 目前电信 xff0c
  • xrdp开源项目的代码分析-1

    首先要说明情况 xff0c 我分析的代码基于xrdp 2012 5 11日 xff0c 而不是最新的代码 xff0c 最新的代码稍有改动 xff0c 但是主体的思想没有变化 xrdp 2012 5 11日代码的下载地址 xff1a http
  • 穿山甲的投放小技巧(账户如何快速过冷启动期)

    1 300 xff08 出价 xff1a 目标成本的2 3倍出价 xff09 xff0c 看成本 2 600 xff08 出价 xff1a 300预算时的一半 xff09 xff0c 看成本 3 放到日满格预算 xff08 出价 xff1a
  • C++加入库dll

    加入头文件加入 include 34 MES inc MES2Interface h 34 pragma comment lib 34 MES lib MES2Interface lib 34 MES2Interface dll 复制到运行
  • 结构体的大小如何计算

    我们实际生活中 xff0c 保存的数据一般不会是同一种类型 xff0c 所以引入了结构体 而结构体的大小也不是成员类型大小的简单相加 需要考虑到系统在存储结构体变量时的地址对齐问题 由于存储变量地址对齐的问题 xff0c 结构体大小计算必须
  • flatpak安装的firefox视频播放卡顿的解决方案

    最近在debian系统中使用flatpak安装最新版的firefox后发现 xff0c firefox在播放视频时十分卡顿 xff0c 经过四处搜索 xff0c 终于找到了解决方案 How to use hardware accelerat
  • NodeBB 安装部署 Linux(阿里云 CentOS 6.3 Redis NodeJS)

    网上有很多 xff0c 写的都不完整 xff0c 我尽量给大家一个完整的 基于Linux 阿里云 CentOS 6 3 安装 NodeBB 论坛 1 先安装NodeJs 安装方式有多种 xff0c 有通过下载源代码编译的 xff0c 有下载
  • shell脚本使用字符串截取报Bad substitution错误的原因即解决方法

    shell脚本使用字符串截取报Bad substitution错误的原因即解决方法 绝大多是是因为解释器的问题 第一步 使用命令查看你指令那个解释器 span class token function ls span bin sh al 我
  • Android播放器(一) 通过FFmpeg解码为RGBA格式播放

    代码可以参考 xff1a Github地址 本文主要介绍如何通过FFmpeg将MP4格式的视频数据解码为一帧一帧的RGBA像素格式数据来播放 因为主要是视频的解码及播放 xff0c 对于音频只是解码出了音频对应的pcm数据 xff0c 并没
  • 终于把(白嫖)阿里ESC服务器搞到手了(方法会写在文章中)

    我这里就讲讲 我购买并搭建服务器的过程和这个过程让我疑惑的点和我最后解决的方案 什么是阿里云 一 阿里云包括什么 xff1f 二 什么是ESC服务器 xff1f 1 1 弹性计算1 1 1 弹性就是 嘿嘿嘿 xff0c 你懂的1 1 2 计
  • kube-flannel.yaml

    官网对kube flannel yml的解释 adds the cni version to the cni conf yaml inside the kube flannel cfg xff08 把cui版本加入kube flannel

随机推荐