前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive简述

Hive简述

作者头像
搬砖俱乐部
发布2019-11-06 15:52:47
6420
发布2019-11-06 15:52:47
举报
文章被收录于专栏:BanzClubBanzClubBanzClub

数据仓库(Data Warehouse),可简写为 DW 或 DWH,数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告和决策支持目的而创建。

数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。

数据仓库是面向主题的(Subject-Oriented)、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )数据集合,用以支持管理决策。与数据库最大的区别也就是OLTP和OLAP的区别。

按照数据流入流出的过程,数据仓库架构可分为三层——源数据数据仓库数据应用

数据仓库的数据来源于不同的源数据,并提供多样的数据应用,数据自下而上流入数据仓库后向上层开放应用,而数据仓库只是中间集成化数据管理的一个平台。

源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。

数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。

数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。

数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra, 转化Transfer, 装载Load)的过程,ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。

Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件转化成数据库的表,这样对数据的操作可以转化成我们熟悉的SQL语句来实现,其底层本质是将SQL转化成MapReduce的任务进行运算,数据持久存储在HDFS上,定义表的结构也叫元数据是存储在MySQL表中。

操作Hive需要Client,通常包括:

  • CLI:命令行工具
  • JDBC/ODBC:可以通过编程语言通过JDBC驱动连接到hive,执行对应的SQL语句
  • WEBUI:通过hiveserver2提供的WEBUI工具,包括配置hive自带的webui和HUE工具

Hive架构流程

通过客户端将HQL,发送给Driver;

Driver的解析器会解析HQL语句,并检查语法;

Driver的编译器会与元数据的存储交互,拿到元数据信息,并生成执行计划;

Dirver的优化器会对执行计划进行优化;

Dirver的执行器将执行计划转化成MapReduce的任务;

最后将结果输出到指定位置,如果客户端是命令行模式,就会直接输出到客户端显示;

Hive的数据类型

Hive支持多种不同长度的整形和浮点型数据类型,支持布尔类型,也支持无长度限制的字符串类型。还支持时间戳数据类型timestamp和二进制数组数据类型binary。

Hive中的列支持struct、map和array集合数据类型。这样可能会增大冗余字段的风险,不过减少表关联操作。数据冗余也是数据库与数据仓库的一大区别。 Hive表的类型

Hive表的类型分为内部表和外部表,

内部表和外部表最大的区别就是,表删除之后,内部表会将元数据和真实数据都删除掉;外部表仅仅是把元数据删除掉了,而真实数据还在HDFS中。

我们通过查看表信息语句:desc formatted table_name;

外部表的 Table Type: EXTERNAL_TABLE;

内部表的 Table Type: MANAGED_TABLE;

通常情况下我们都会使用外部表保证数据安全性,但是像中间表,结果表这种我们就会考虑使用内部表。

建表语句时,外部表需要有”EXTERNAL“修改,内部表不需要。

create external table table_name(id string,name string); //外部表
create table table_name(id string,name string);// 内部表

1、《Hive编程指南》

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BanzClub 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档