大数据开发:基于Hadoop的数仓设计
企业级的大数据平台,Hadoop至今仍然占据重要的地位,而基于Hadoop去进行数据平台的架构设计,是非常关键且重要的一步,在实际工作当中,往往需要有经验的开发工程师或者架构师去完成。今天我们就来讲讲,基于Hadoop的数仓设计。
数据仓库,是数据存储管理的重要一环,基于Hadoop的数据仓库工具Hive,提供类SQL语言,HiveQL去实现基本的查询。但是Hive并非唯一的选择,从实际业务出发,需要综合考量。
大数据背景下的数据仓库
在企业应用场景下,大数据规模是越来越大的,而且一旦涉及到需要启用Hadoop,那么所面临的数据是传统数仓无法稳固支撑的。
首先,传统数据仓库基于关系型数据库,横向扩展性较差,纵向扩展有限,无法满足快速增长的海量数据存储需求;
其次,传统数据仓库只能存储结构化数据,无法处理不同类型的数据,企业业务发展,数据源的格式越来越丰富。
并且,传统数据仓库建立在关系型数据仓库之上,计算和处理能力不足,当数据量达到TB级后基本无法获得好的性能。
大数据数仓体系结构
数据仓库体系结构通常分为四个层次:数据源、数据存储和管理、数据服务、数据应用。
数据源:是数据仓库的数据来源,含外部数据、现有业务系统和文档资料等;
数据集成:完成数据的抽取、清洗、转换和加载任务,数据源中的数据采用ETL(Extract-Transform-Load)工具以固定的周期加载到数据仓库中。
数据存储和管理:此层次主要涉及对数据的存储和管理,含数据仓库、数据集市、数据仓库检测、运行与维护工具和元数据管理等。
数据服务:为前端和应用提供数据服务,可直接从数据仓库中获取数据供前端应用使用,也可通过OLAP(OnLine Analytical Processing,联机分析处理)服务器为前端应用提供负责的数据服务。
数据应用:此层次直接面向用户,含数据查询工具、自由报表工具、数据分析工具、数据挖掘工具和各类应用系统。
基于Hadoop的数仓设计
①Hive
基于Hadoop的数据仓库,首先考虑的肯定是Hive,因为Hive本身就是建立在Hadoop之上的数据仓库
Hive在某种程度上可以看成是用户编程接口,本身并不存储和处理数据,依赖于HDFS存储数据,依赖MR处理数据。有类SQL语言HiveQL,不完全支持SQL标准,如不支持更新操作、索引和事务,其子查询和连接操作也存在很多限制。
Hive把HQL语句转换成MR任务后,采用批处理的方式对海量数据进行处理。数据仓库存储的是静态数据,很适合采用MR进行批处理。Hive还提供了一系列对数据进行提取、转换、加载的工具,可以存储、查询和分析存储在HDFS上的数据。
②Pig
Pig可作为Hive的替代工具,是一种数据流语言和运行环境,适合用于在Hadoop平台上查询半结构化数据集,用于与ETL过程的一部分,即将外部数据装载到Hadoop集群中,转换为用户需要的数据格式。
③Impala
Impala作为新一代开源大数据分析引擎,最初参照Dremel(由Google开发的交互式数据分析系统),支持实时计算,提供与Hive类似的功能,在性能上高出Hive3~30倍。
Impala采用与商用并行关系数据库类似的分布式查询引擎,可直接从HDFS、HBase中用SQL语句查询数据,不需把SQL语句转换成MR任务,降低延迟,可很好地满足实时查询需求。
但是Impala不能替换Hive,可提供一个统一的平台用于实时查询。Impala的运行依赖于Hive的元数据(Metastore)。Impala和Hive采用相同的SQL语法、ODBC驱动程序和用户接口,可统一部署Hive和Impala等分析工具,同时支持批处理和实时查询
注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!此页面下方声明无效!

猜你喜欢LIKE
相关推荐HOT
更多>>
HDFS架构演进之路
当active Namenode出现故障或者宕机的时候,standby会自动切换为新的active Namenode对外提供服务,并且HA对外提供了统一的访问名称,对于用户...详情>>
2022-12-09 15:44:00
大数据开发:Hive小文件合并
Hadoop生态技术体系下,负责大数据存储管理的组件,涉及到HDFS、Hive、Hbase等。Hive作为数据仓库工具,最初的存储还是落地到HDFS上,这其中就...详情>>
2022-12-09 15:42:00
HDFS的故障恢复和高可用
客户端读取文件时,会先校验该信息文件与读取的文件,如果校验出错,便请求到另一DataNode读取数据,同时向NameNode汇报,以删除和复制这个数据...详情>>
2022-12-09 15:41:00
大数据开发:Flink on Yarn原理
这个Container通过Application Master启动进程,Application Master里面运行的是Flink程序,即Flink-Yarn ResourceManager和JobManager。详情>>
2022-12-09 15:39:00
大数据开发基础:Java基础数据类型
在Java基础入门学习阶段,Java基础数据类型无疑是基础当中的重点,掌握基础数据类型,对于后续去理解和掌握更深入的理论,是有紧密的关联性的。...详情>>
2022-12-09 15:38:13大数据培训问答更多>>
新大数据都学什么?5大核心知识必学内容有哪些
新大数据报班多少钱?如何选择培训机构
新人工智能学什么?自学可以成才吗
新数据处理包括哪些内容?是不是所有课程需要分别报课
新大数据分析需要学什么?怎么学比较好
新人工智能专业学什么?人工智能有哪些课程
新大数据数据分析师要学什么?好就业吗
大数据面试题库 更多>>
大数据的五个V是什么?
数据及集群管理(三)
数据及集群管理(二)
数据及集群管理(一)
大数据之hbase的优化读数据方面
大数据之hbase的优化写入数据方面
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区
