大数据概述

1. 数据采集

一般包括各个业务系统的业务数据及日志等,数据采集包括但不限于消息中心/日志查询分析平台等.

2. 数据存储

各类关系型数据/文档数据库等,用于各个业务系统的数据存储,为了解决海量半结构化和非结构化数据的存储,演进到分布式文件系统, 如Hadoop(HDFS),不过后者的缺点在于访问能力较弱,也有两者相结合的存储引擎,如HBase/MongoDB

3. 数据分析

  • 流处理(实时型): 对运动中的数据进行处理,即在接收数据的同时就对其进行处理, 对应的处理框架有 Storm、Spark Streaming、Flink Streaming 等。
  • 批处理(离线型): 对一段时间内海量的离线数据进行统一的处理,对应的处理框架有 Hadoop MapReduce、Spark、Flink 等;

对于目前的大数据生态而言,为了能够让熟悉 SQL 的人员也能够进行数据的分析,查询分析框架应运而生: Hive 、Spark SQL 、Flink SQL、 Pig、Phoenix

4. 数据应用

可视化/人工智能/算法优化等

数仓概述

数据库/数据仓库

数据库核心在于联机事务处理OLTP,简单来说就是增删改查 数据仓库一般用于联机分析处理OLAP,目的在于数据更多维度的分析.

数仓的构建一般需要ETL工具和调度工具.

目前主流的数仓模型,对数仓进行了分层设计: ODS(临时存储层)PDW(数据仓库层)DM(数据集市层)APP(应用层) 目的在于针对ETL优化/分析优化.

数据湖概念

数据湖和数仓

数据湖也可以用于OLAP,但它并不是数仓的对立面,数据湖目的在于链接不同的数据存储引擎用于分析查询,数据湖的数据源也可以来自数据仓库 事实上,数据湖可以通过虚拟层的概念模拟数据仓库的实现,相较于数仓,它提供了更强大的实时分析能力.

目前我接触到的数据湖引擎dremio,能够接入各类关系型数据库/HDFS/S3/Hive...,对于下游应用则支持PowerBI/tableau