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

Hadoop生态之hive

一 概述与特点
        之所以把Hive放在Hadoop生态里面去写,是因为它本身依赖HadoopHive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能。 其本质是将 SQL 转换为 MapReduce/Spark 的任务进行运算,底层由 HDFS 来提供数据的存储,说白了 hive 可以理解为一个将 SQL 转换为 MapReduce/Spark 的任务的工具。

二 架构
        Hive架构如下图所示:
        1.用户接口(Thrift用来RPC的服务器):hive自带shell命令、ODBC、JDBC和web页面访问
        2.Hive Sql(解析、编译、优化、执行):语法与sql类似内部原理也基本一致,不过最后执行物理计划的是MapReduce
        3.元数据库:通常是存储在关系数据库如 mysql/derby 中。Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
        4.执行引擎:MR、TEZ、Spark
        

三 原理
        1.表类型:
                1):分区表:分区表的意思就是将一张表中的数据放在不同的存储目录中进行存放,这样可以有效对数据进行解藕,使使用者更快速的访问分区中的内容,举个例子:一张订单表有几千万的订单数据,而我只想访问其中某一天或者某几天的数据,如果使用订单日期作为分区,每天一个分区,那么我可以直接:

#创建分区表
create table order(id string, price int) partitioned by (order_date date);
#加载数据到分区
load data local inpath '/export/servers/hivedatas/order.csv' into table order partition (order_date='2023-08-30');
#查询分区数据
select * from order where order_date = '2023-08-30'

这样会直接命中分区数据使数据响应速度大大提升。                

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

相关文章:

  • AWS DynamoDB浅析
  • Linux安装ffmpeg
  • (18)不重启服务动态停止、启动RabbitMQ消费者
  • 数据仓库的流程
  • MyBatis-Plus深入 —— 条件构造器与插件管理
  • C语言结构体的初始化方式
  • Vue生成多文件pdf准考证
  • Rust的derive思考
  • Python常用模块
  • Java“牵手”京东商品评论数据接口方法,京东商品评论接口,京东商品评价接口,行业数据监测,京东API实现批量商品评论内容数据抓取示例
  • 算法leetcode|75. 颜色分类(rust重拳出击)
  • 网络安全(黑客)自学笔记学习路线
  • NoSQL:非关系型数据库分类
  • 【Eclipse】Project interpreter not specified 新建项目时,错误提示,已解决
  • OPENCV实现图像查找
  • vue仿企微文档给页面加水印(水印内容可自定义,超简单)
  • “金融级”数字底座:从时代的“源启”,到“源启”的时代
  • zabbix自动发现linux系统挂载的nas盘,并实现读写故障的监控告警
  • 无涯教程-JavaScript - DAYS函数
  • 48、springboot 的国际化之让用户在程序界面上弄个下拉框,进行动态选择语言
  • FPGA可重配置原理及实现(1)——导论
  • Ubuntu系统下使用宝塔面板实现一键搭建Z-Blog个人博客的方法和流程
  • 数据结构 | 第一章 绪论
  • python爬虫入门教程(非常详细):如何快速入门Python爬虫?
  • ElementUI浅尝辄止21:Tree 树形控件
  • 插入排序,选择排序,交换排序,归并排序和非比较排序(C语言版)
  • 【每日一题】1041. 困于环中的机器人
  • C# 采用3DES-MAC进行签名 base64解码与编码
  • AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)
  • python excel 读取及写入固定格式