文章目录
- 大数据分析流程
- 数据采集方法
- 大数据采集方法
- 离线数据采集ETL
- 实时数据采集与处理
- 数据预处理技术
- 数据集成
- 数据清洗
- 数据变换
- 数据规约
- 数据存储与管理
- 分布式文件系统-HDFS
- 分布式列存数据库 – HBase
- 内存数据库 – Redis
- 消息分发和存储 – Kafka
- 非结构化数据存储 – OSS
- 数据分析处理技术
- 离线批处理
- MapReduce
- 通用计算框架 – Spark
- 实时流处理
- 大数据分析方法
- 数据挖掘
- 机器学习
- 数据可视化
- 数据可视化技术
- 数据可视化常见方法
- 常见可视化图表
- 图表类型的使用场景
大数据分析流程
数据采集:
- 实时数据采集:Flume、Fluented、Splunk、DataHub…
- 离线数据采集ETL: Sqoop、DataX…
数据存储与管理:
- 数据存储:关系数据库、mpp数据库、NoSQL数据库、分布式文件系统
- 数据仓库建模
- 元数据管理
- 数据质量控制
- 数据安全管理
数据计算:
- 多维统计分析
- 大规模并行计算框架
- 数据挖掘、机器学习模型与算法
- 分布式式实时计算
- 交互式分析
数据应用:
- 数据报表
- 可视化展现
- 数据服务
- 数据分享
数据采集方法
大数据采集方法
离线数据采集ETL
ETL是Extract、 Transform、 Loading三个字母的缩写,即抽取、转换、装载。
目前市场上主流的ETL工具有:
- Informatica PowerCenter
- IBM DataStage
- 开源 Kettle
- 阿里云DataX
实时数据采集与处理
采集工具工具:
- Flume
- Kafka
- DataHub
数据预处理技术
数据集成
数据集成:针对来自不同数据源的数据,进行合并并整理,形成统一的数据视图
需要考虑的问题:
- 识别和匹配相关实体及数据:从核心信息开始,逐步匹配扩展到其他相关信息
- 统一的元数据定义:表名、字段名、类型、单位(量纲)等
- 统一的数据取值:通过映射规则(Mapping)进行转换,保持数据一致性
- 冗余数据处理:对于重复数据进行删除;对于相关性大的数据进行适当处理
数据清洗
数据清洗:针对原始数据,对出现的噪声进行修复、平滑或者剔除。包括异常值、缺失值、重复记录、错误记录等;同时,过滤掉不用的数据,包括某些行或某些列。
噪声数据处理:
- 异常值
- 删除、当做缺失值、忽略
- 分箱:箱均匀、箱中位数或箱边界、平滑数据
- 缺失值
- 统计值填充:均值、众数、中位数
- 固定值填充:填充指定值
- 最接近记录值填充:与该样本最接近的相同字段值
- 模型拟合填充:填充回归或其他模型预测值
- 插值填充:建立插值函数,如拉格朗日插值法、牛顿插值法等
数据变换
数据变换:对数据进行变换处理,使数据更适合当前任务或者算法的需要。
常见的变换方式:
- 使用简单函数进行变换
- 方根和乘方变换
- 对数和指数变换
- 插值和比例变换
- 数据规范化
- 归一化
- 标准化
- 中心化
- 连续值离散化
- 分裂法
- 合并法
数据规约
数据规约:在尽可能保持数据原貌的前提下,最大限度地精简数据量。主要包括属性选择和数据抽样两种方法。
数据抽样:
- 简单随机抽样:每个样本被抽到的概率相等,随机从总体中获得指定个数的样本数据
- 系统抽样:也叫等距抽样,整体按某种顺序排列后,随机抽取第一个样本,然后顺序抽取其余样本
- 分层抽样:将总体分成多个不交叉的群,随机抽取若干个群
- 连续抽样:先抽样,基于样本分析,根据分析结果决定要不要继续抽样
- 多阶段抽样:抽样分阶段进行,每个阶段使用的抽样方法可以不同
- Bootstrap重抽样:样本量不足时,有回放的重复抽样
数据存储与管理
分布式文件系统-HDFS
Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。
HDFS有着高容错性的特点,并且设计用来部署在低廉的硬件上,HDFS 集群包含:
- 一个主节点(NameNode)
- 多个从属节点(DataNodes )
- 多个客户端访问
分布式列存数据库 – HBase
HBase是一个构建在HDFS上的分布式列存储系统,用于海量结构化、半结构化数据存储。HBase的目标是处理非常庞大的表,超过10亿行、数百万列。它有如下特点:
- 高可靠、高性能
- 水平扩展、可伸缩
- 面向列
内存数据库 – Redis
Redis是一个开源的可基于内存亦可持久化的日志型、Key-Value内存数据库。也可作为消息的发布、订阅。它有如下特点:
- 高性能、高可用
- 丰富数据类型
- 支持事务
- 丰富客户端、多种语言API
消息分发和存储 – Kafka
Kafka是分布式发布-订阅消息系统,是可划分的、多订阅者、冗余备份、持久性的日志服务。主要用于处理流式数据。它的特点是:
- 高吞吐量
- 分布式、易扩展
- 支持在线、离线
非结构化数据存储 – OSS
阿里云对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。它的特点是:
- 高可靠性
- 安全
- 低成本
- 丰富、强大的增值服务
数据分析处理技术
离线批处理
MapReduce
把一个复杂的任务,分成多份并行的统一处理的任务。
通用计算框架 – Spark
Spark是一种分布式、通用大数据计算框架。可用于离线计算、交互式查询、流式计算、机器学习等。其特点有:
- 速度快:基于内存并行计算
- 易上手:基于RDD计算模型
- 通用性: SQL 和DataFrames,,Mllib,GraphX, Spark Streaming
实时流处理
大数据处理框架
优点
缺点
APACHE STORM
框架简单,学习成本低;毫秒级延迟,实时性好;健壮、稳定
编程成本高;逻辑与批处理完全不同,无法公用代码;Debug比较复杂
Spark Streaming
编程语言丰富、编程简单;框架封装层级高,封装性好;可以共用批处理逻辑
微批处理,时间延迟大;稳定性相对较差;机器性能消耗大
Flink
Flink流处理为先的方法可提供低延迟、高吞吐、近乎逐项处理的能力;可通过多种方式对工作进行分析进而优化任务;提供了基于Web的调度视图
大数据分析方法
描述型分析:发生了什么?
- 广泛的,精确的实时数据
- 有效的可视化
诊断型分析:为什么会发生?
- 能够钻取数据的核心
- 能够对混乱的信息进行分离
预测型分析:可能发生什么?
- 使用算法确保历史模型能够用户预测特定的结果
- 使用算法和技术确保自动生成决定
指令型分析:下步怎么做?
- 依据测试结果来选定最佳的行为和策略
- 应用先进的分析技术帮助做出决策
数据挖掘
数据挖掘就提取隐含在数据中的、人们事先不知道的、但又是潜在有用的信息和知识。
数据挖掘常用算法:
算法 |
描述 |
分类 |
在给定数据基础上构建分类函数或分类模型,该函数或模型能够把数据归类为给定类别中某一类别,这就是分类的概念。典型算法有KNN、决策树、朴素贝叶斯、支持向量机等。 |
聚类 |
聚类也就是将抽象对象的集合分为相似对象组成的多个类的过程。聚类过程生成的簇称为一组数据对象的集合。常见算法K-Means、EM、DBScan等 |
回归 |
回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。常用的回归方法有线性回归与带有正则化项的岭回归、LASSO回归等。 |
时间序列 |
时间序列预测是一种历史引申预测法,也就是将时间数列反映的事件发展过程进行引申外推,预测发展趋势的一种方法。 |
关联规则 |
关联规则属于数据挖掘算法中的一类重要方法,关联规则就是支持度与置信度分别满足给定阈值的规则。 |
机器学习
机器学习,即机器获取新知识和新技能,并识别现有知识。机器学习有如下分类:
- 有监督学习
- 无监督学习
- 强化学习
机器学习技能范畴:
数据可视化
数据可视化:利用计算机图形学和图像处理技术,将数据转换为图形或者图像在屏幕上显示出来进行交互处理的理论方法和技术。数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。
数据可视化随着平台的拓展、应用领域的增加,表现形式的不断变化,从原始的BI统计图表,到不断增加的诸如实时动态效果、地理信息、用户交互等等。数据可视化的概念边界不断扩大。
数据可视化技术
将事物的数值图形化:每个事物的数值都是一个数据,将数据的大小以图形的方式表现。
将事物图形化:利用图形表示事物,方便看图人员,传递信息。
将事物的关系图形化:当存在多个指标时,挖掘指标之间的关系,并将其图形化表达,可提升图表的可视化深度借助已有的场景表现通过构建场景表现。
将时间和空间可视化
将概念进行转换:对数据的大小难以感知时,通常进行概念转换,常用方法有对比和比喻。
数据可视化常见方法
统计图表:指标看板、饼图、直方图、散点图、柱状图等传统BI统计图表。
2D、3D区域:使用的地理空间数据可视化技术,往往涉及到事物特定表面上的位置。如点分布图,可以显示诸如在一定区域内犯罪情况。
时态:时态可视化是数据以线性的方式展示。最为关键的是时态数据可视化有一个起点和一个终点。如散点图显示诸如某些区域的温度信息。
多维:可以通过使用常用的多维方法来展示二维或高(多)维度的数据。如饼图,它可以显示诸如政府开支。
分层:分层方法用于呈现多组数据。这些数据可视化通常展示的是大群体里面的小群体。如树形图。
网络:在网络中展示数据间的关系,它是一种常见的展示大数据量的方法。