大数据数仓

107 阅读4分钟

大数据数仓

数仓的搭建主要包括数据的接入,数据的存储,数据的计算。数据接入主要依赖基于业务库查询或者binlog日志的cdc组件,存储组件主要就是hadoop的hdfs、yarn三大组件以及hive,离线计算主要以mapReduce/spark为主。目前很多公司都使用平台进行管理运维,比如cdh/cdp、hdp、以及华为MRS、腾讯的产品等。

一、数据同步常用的cdc组件

juejin.cn/post/741394…

二、数仓的基础组件

1. HDFS架构概述

Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。

1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。 2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。 3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

2. YARN架构概述

yarn是 Hadoop 的资源管理器。

1)ResourceManager(RM):整个集群资源(内存、CPU等)的老大 2)NodeManager(NM):单个节点服务器资源老大 3)ApplicationMaster(AM):单个任务运行的老大 4)Container:容器,相当一台独立的服务器,里面封装了 任务运行所需要的资源,如内存、CPU、磁盘、网络等。

3. MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce 1)Map阶段并行处理输入数据 2)Reduce阶段对Map结果进行汇总。mapReduce 计算引擎经常和spark引擎作比较。

4. hive架构介绍

Hive作为Hadoop之上的数据仓库处理工具,它所有的数据都是存储在Hadoop兼容的文件系统中。Hive在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS中Hive设定的目录下。因此,Hive不支持对数据的修改和添加,所有的数据都是在加载的时候确定的。

  • Hive 最大的特点是通过类 SQL 来分析大数据,而避免了写 MapReduce 程序来分析数据,这样使得分析数据更容易。
  • 数据是存储在 HDFS 上的,Hive 本身并不提供数据的存储功能
  • Hive 是将数据映射成数据库和一张张的表,库和表的元数据信息一般存在关系型数据库上(比如 MySQL)。
  • 数据存储方面:它能够存储很大的数据集,并且对数据完整性、格式要求并不严格。
  • 数据处理方面:不适用于实时计算和响应,使用于离线分析.

4.1 hive架构以及角色功能

image.png

  • 用户接口:包括CLI,JDBC/ODBC,WebUI等方式。

  • 元数据Metastore:通常存储在关系数据库如mysql,derby中。元数据包括:表名,表所属的数据库,表的列/分区字段,表的属性(是否为外部表等),表的数据所在目录等信息。

  • Driver:包括解释器、编译器、优化器、执行器。HiveQL查询语句从词法分析。语法分析、编译、优化以及查询计划生成。生成的查询计划存储在HDFS中,并在后面的MapReduce中进行调用执行。

    • 解析器:将SQL转换成抽象的语法树AST。
    • 编译器:将抽象语法树AST编译生成逻辑执行计划。
    • 优化器:将逻辑执行计划进行优化。
    • 执行器:把逻辑执行计划转换成可以运行的物理执行计划。
  • Hadoop:使用HDFS进行存储,利用MapReduce进行计算。

4.2 hive核心功能:

  • 解析hive sql将其转化成mapReduce程序(如果引擎是spark则是spark程序)。
  • 提供metastore服务,其他的分布式sql查询组件比如impala、presto 都是通过metastore获取表的一系列元数据,拉取数据到内存进行加工。

4.3 Hive与关系数据库的区别

image.png

三、数仓建模理论

如果详细了解数据建模可以通过该视频进行深入了解,个人看完感觉挺不错的。 www.bilibili.com/video/BV1cS…