一、大数据架构技术体系

1 数据传输层

Sqoop:支持RDBMS和HDFS之间的双向数据迁移,通常用于抽取业务数据库(比如MySQL、SQLServer、Oracle)的数据到HDFS.
Cannal:阿里开源的数据同步工具,通过监听MySQL binlog,实现增量数据订阅和近实时同步。
Flume:用于海量日志采集、聚合和传输,将产生的数据保存到HDFS或者HBase中。
Flume + Kafka:满足实时流式日志的处理,后面再通过Spark Streaming等流式处理技术,可完成日志的实时解析和应用。

2 数据存储层

HDFS:分布式文件系统,它是分布式计算中数据存储管理的基础,是Google GFS的开源实现,可部署在廉价商用机器上,具备高容错、高吞吐和高扩展性。
HBase:分布式的、面向列的NoSQL KV数据库, 它是Google BigTable的开源实现,利用HDFS作为其文件存储系统,适合大数据的实时查询(比如:IM场景)。
Kudu:折中了HDFS和HBase的分布式数据库,既支持随机读写、又支持OLAP分析的大数据存储引擎(解决HBase不适合批量分析的痛点)。

3 资源管理层

Yarn:Hadoop的资源管理器,负责Hadoop集群资源的统一管理和调度,为运算程序(MR任务)提供服务器运算资源(CPU、内存),能支持MR、Spark、Flink等多种框架。
Kubernates:由Google开源,一种云平台的容器化编排引擎,提供应用的容器化管理,可在不同云、不同版本操作系统之间进行迁移。目前,Spark、Storm已经支持K8S

4 数据计算层

大数据计算引擎决定了计算效率,是大数据平台最核心的部分,它大致了经历以下4代的发展,又可以分成离线计算框架和实时计算框架。

4.1 离线计算框架

MapReduce:面向大数据并行处理的计算模型、框架和平台(将计算向数据靠拢、减少数据传输,这个设计思路非常巧妙)。
Hive:一个数据仓库工具,能管理HDFS存储的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能(实际运行时,是将Hive SQL翻译成了MapReduce任务),适用离线非实时数据分析。
Spark sql:引入RDD(弹性分布式数据集)这一特殊的数据结构,将SQL转换成RDD的计算,并将计算的中间结果放在内存中,因此相对于Hive性能更高,适用实时性要求较高的数据分析场景。

4.2 实时计算框架

Spark Streaming:实时流数据处理框架(按时间片分成小批次,s级延迟),可以接收Kafka、Flume、HDFS等数据源的实时输入数据,经过处理后,将结果保存在HDFS、RDBMS、HBase、Redis、Dashboard等地方。
Storm:实时流数据处理框架,真正的流式处理,每条数据都会触发计算,低延迟(ms级延迟)。
Flink:更高级的实时流数据处理框架,相比Storm,延迟比storm低,而且吞吐量更高,另外支持乱序和调整延迟时间。

5 多维分析层

Kylin:分布式分析引擎,能在亚秒内查询巨大的Hive表,通过预计算(用空间换时间)将多维组合计算好的结果保存成Cube存储在HBase中,用户执行SQL查询时,将SQL转换成对Cube查询,具有快速查询和高并发能力。
Druid:适用于实时数据分析的高容错、高性能开源分布式系统,可实现在秒级以内对十亿行级别的表进行任意的聚合分析。

二、大数据的通用处理流程

了解了大数据平台的通用架构和技术体系后,下面再看下针对离线数据和实时数据,是如何运用大数据技术进行处理的?一个通用的大数据处理流程,主要包括以下几个步骤:
数据采集:这是大数据处理的第一步,数据来源主要是两类,第一类是各个业务系统的关系数据库,通过Sqoop或者Cannal等工具进行定时抽取或者实时同步;第二类是各种埋点日志,通过Flume进行实时收集。
数据存储:收集到数据后,下一步便是将这些数据存储在HDFS中,实时日志流情况下则通过Kafka输出给后面的流式计算引擎。
数据分析:这一步是数据处理最核心的环节,包括离线处理和流处理两种方式,对应的计算引擎包括MapReduce、Spark、Flink等,处理完的结果会保存到已经提前设计好的数据仓库中,或者HBase、Redis、RDBMS等各种存储系统上。
数据应用:包括数据的可视化展现、业务决策、或者AI等各种数据应用场景。

三、数仓层级

数仓系统分成了4层:源数据层、数据仓库层、数据集市层、数据应用层。采用这样的分层结构,和软件设计的分层思想类似,都是为了将复杂问题简单化,每一层职责单一,提高了维护性和复用性。每一层的具体作用如下:
ODS:源数据层,源表。
DW:数据仓库层,包含维度表和事实表,通过对源表进行清洗后形成的数据宽表,比如:城市表、商品类目表、后端埋点明细表、前端埋点明细表、用户宽表、商品宽表。
DM:数据集市层,对数据进行了轻粒度的汇总,由各业务方共建,比如:用户群分析表、交易全链路表。
ADS:数据应用层,根据实际应用需求生成的各种数据表。
另外,各层的数据表都会采用统一的命名规则进行规范化管理,表名中会携带分层、主题域、业务过程以及分区信息。

大数据平台及数仓的通用架构和技术体系相关推荐

  1. 企业大数据平台下数仓建设思路

    免费开通大数据服务:https://www.aliyun.com/product/odps 介然(李金波),阿里云高级技术专家,现任阿里云大数据数仓解决方案总架构师.8年以上互联网数据仓库经历,对系统 ...

  2. 大数据项目离线数仓(全 )一(数据采集平台)

    搭建用户行为数据采集平台.搭建业务数据采集平台.搭建数据仓库系统.制作可视化报表 本篇博客包括搭建用户行为数据采集平台.搭建业务数据采集平台 搭建数据仓库系统在大数据项目离线数仓(全 )二 制作可视化 ...

  3. 大数据基础知识——数仓的搭建(维度建模)

    数据仓库 文章目录 数据仓库 数据仓库的介绍: 数据仓库的概念: OLTP和OLAP区别: 数据仓库的特点: 面向主题: 数据集成: 非易失: 时变: 数据仓库系统架构 系统结构图 源数据 ETL 数 ...

  4. 《美团数据平台及数仓建设实践》(209页).PDF

    7份有关数据化建设的资料都整理好了,包括数据仓库.数据中台.数据仓库等等,有需要的私信:"美团"领取 1.美团数据平台及数仓建设实践.PDF下载 美团技术团队的博客质量非常高,里面 ...

  5. 美团数据平台及数仓建设实践,超十万字总结

    美团技术团队的博客质量非常高,里面有许多关于大数据的文章,具有很大的参考价值. 美团技术博客地址:https://tech.meituan.com 但是博客功能简陋,没有基本的搜索功能,这对于我们查找 ...

  6. 数据产品_数据中台02_数仓模型和架构

    名词解释 一些必须掌握的专有名词 基础层-ODS(Operational Data Store-操作型数据存储) 未经过加工处理的原始数据:记录事实的唯一版本,业务系统产生的原始数据,原封不动的同步到 ...

  7. 大数据面试题--数仓

    目录 数据仓库理论 数据分层 E T L 星形模型与雪花模型的区别? 维度建模(dimensional modeling): 数据仓库项目最重要或需要注意的是什么,以及如何处理? 关系建模与维度建模 ...

  8. 大数据-案例-离线数仓-在线教育:MySQL(业务数据)-ETL(Sqoop)->Hive数仓【ODS层-数据清洗->DW层(DWD-统计分析->DWS)】-导出(Sqoop)->MySQL->可视化

    一.商业BI系统概述 商业智能系统,通常简称为商业智能系统,是商业智能软件的简称,是为提高企业经营绩效而采用的一系列方法.技术和软件的总和.通常被理解为将企业中的现有数据转换为知识并帮助企业做出明智的 ...

  9. 大数据项目之数仓相关知识

    第1章 数据仓库概念 数据仓库(DW): 为企业指定决策,提供数据支持的,帮助企业,改进业务流程,提高产品质量等. DW的输入数据通常包括:业务数据,用户行为数据和爬虫数据等   ODS:  数据备份 ...

最新文章

  1. ionic3 java,ionic3-环境搭建问题
  2. iOS多线程拾贝------操作巨人编程
  3. 第11章:项目风险管理(2)—章节重点
  4. leetcode 566. Reshape the Matrix | 566. 重塑矩阵(Java)
  5. 检查坏道右键单击盘符/属性/工具中的查错。
  6. 使用Java API的5个技巧
  7. awb数据怎么计算_白平衡自己主动(AWB)算法---2,颜色计算
  8. java中对象作为参数_java中对象引用,特别作为参数时候注意事项
  9. 适合Web服务器的iptables规则
  10. 2021考研初试成绩多少分过线?
  11. 网站域名如何接入腾讯云CDN业务详细步骤!
  12. 怎样在word表格中快速输入序号?
  13. ***技巧总结(zz)
  14. 小技巧:更改链接参数 提高京东秒杀成功率
  15. OnTheHub 免费取得Offfice/Windows 正版序号,学生/教师限定
  16. UEFI开发历程2—基于SuperIO芯片的寄存器读写
  17. Spring boot整合Redis(入门教程)
  18. 使用容联云获取短信验证码
  19. windows添加右键打开cmd命令窗口
  20. JS实现鼠标经过和离开图片放大缩小效果

热门文章

  1. 使用uview UI工具库的时间格式化出现的问题
  2. linux硬件命令大全,Linux硬件信息命令大全
  3. MAC查看软件安装路径
  4. Hazelcast IMDG参考中文版手册-第十一章-分布式查询
  5. DBGrid 各属性的设置
  6. 阿里云虚拟机多域名配置
  7. 我国会计计算机的发展历程,会计的发展历程是什么
  8. photoshop7.0 排版一寸照片、2寸照片
  9. webdriver中的等待——主要讲解WebDriverWait()
  10. 计算机管理guest用户在哪,电脑来宾账户权限设置怎么设置