Big Data Management Framework
Big Data Management Framework
1) Introduction to Big Data Management
什么是大数据(Dig Data)?
大数据指的是一组具有特殊特征(Volume, Variety, Velocity…)的数据,由于这些特征,使用传统的方法无法对其进行管理(存储,分析,检索,可视化…)
大数据的特点
现在一般用7V来表示大数据的特点:
7V特点根据其被提出的时间以及类别可以进行进一步的分类:
-
Fundamental Vs(基础特征):
1. Volume (Scale/Size):指的是从各个数据源获取的数据量,体现数据的规模,是大数据的基础。
2. Variety (Diversity):指的是数据具有各种类型,比如关系数据、文本数据、半结构化数据、图数据等,体现数据的多样性。
3. Velocity (Speed):得益于各种技术,比如云计算、物联网、科技数据等的发展,数据生成的速度越来越快,这也使得我们对数据的存储、处理和分析的速度有了更高的要求,“实时性”变得越来越重要 -
Challenge(挑战):
4. Veracity (Quality):Data = quantity + quality。脏数据具有更多不确定性,这将使基于数据的预测损失信赖度。这些不确定性可能有各种原因导致。
5. Variability (Time Varying):数据所表达的含义可能一直在发生变化,这需要我们对于数据的含义有更深的了解。 -
Tools(工具)
6. Visibility (Visualization):可视化是查看数据的最直接方法。 -
Objective(目标)
7. Value:如果大数据不能为某个有意义的目标提供价值,那么它就毫无意义。这里的意义来自其他几个V,或者根据应用确定。
而这些特点也会带来一些挑战:
Characteristics | Challenge |
---|---|
Volume (Scale/Size) | 存储(Storage)是最主要的挑战,时间复杂度是该挑战的最大原因:排序算法 (O(NlogN)),合并算法 (O(NlogN + MlogM)),最短路径 O(VlogV + ElogV)),最近邻搜索 (O(dN))…数据的规模越大,运算成本越高,表现越差 |
Variety (Diversity) | 主要在于数据整合 (Data integration) 和数据规划 (Data Curation) 两方面。前者关注异质数据 (Heterogeneous) 的整合以及数据之间的关联,后者关注组织和整合从各种来源收集的数据(Variety的长尾效应图) |
Velocity (Speed) | 三大挑战:批量处理 (Batch Processing),实时处理 (Real time processing) 以及最核心的数据传输 (Data Transmission) |
Veracity (Quality) | 由于其他V特征,脏数据很容易出现,一旦出现会对下游应用产生很大影响,同时我们很难对脏数据进行识别并处理错误 (Identify & Handle errors) |
Visibility | 如何选择最适合的方式来展现数据,同时,由于数据本身的特性,可能会为可视化带来困难,比如:高维数据 (High dimensional data),非结构化数据 (Unstructured data),动态数据 (Dynamic),可扩展数据 (Scalability) 等 |
*长尾效应图
大数据管理(Big Data Management)
大数据管理技术主要可分为以下几个部分:
-
数据获取(Data Acquisition):数据根据构造主要分为三类:Structured (比如SQL),Unstructured(比如text, image, vedio等),Semi-structured (比如XML)。我们要明确。当今的大数据时代,90%的数据属于非结构化。实际情况中,更多的甚至是多类型混合数据。数据获取要注意以下三个方面:
1) 应用导向性(Application oriented):应用/问题为导向,找与问题相关性强的数据
2) 全面性(Comprehensive) :要全面,哪怕漏掉一点点重要的数据,都会对任务造成严重影响
3) 数据处理(Handle data):数据有不同类型 (Type),来源 (Sources),甚至流速 (Velocity),如何处理是我们关心的问题 - 数据存储(Storage):由于数据量的飞速增长 (Volume),数据存储面临巨大挑战,我们对于数据存储的可靠性的要求也越来越高。传统的数据存储为结构化数据(structured)设计,以Disk oriented为主
-
数据准备(Data Preparation):数据准备有两个步骤
1) 数据探索(Data exploration):需要了解数据的Trend(趋势),Correlation(相关性),Outlier(离群点)以及一些统计学(Statistics)特征(比如均值、众数、范围等)
2) 数据预处理(Data pre-processing):主要是针对数据中的缺失值、非法值、不一致等质量问题进行数据清洗,之后针对异质化的数据进行整合。
2) Hadoop and HDFS
详细的内容参考:Big Data Management笔记01:Hadoop & HDFS
在这部分内容中,我们主要关注几个部分:
- 主从结构(Master-Slave architecture)
- HDFS的结构(Namenode, secondary namenode, datanode)
- 两种错误容忍的存储方法(Replication management和Erasure Coding)
3) Spark and RDD
4) MapReduce
详细的内容参考:Big Data Management笔记02:MapReduce &Spark
在这部分内容中,我们主要关注几个部分:
- Spark的特点和结构(Master-Slave architecture)
- RDD(Transformation和Actions,Lineage,DAG)
- Map和Reduce
- Shuffle
- 在Spark中写MapReduce
5) High Dimensional Similarity Search
详细的内容参考:Big Data Management笔记03:High Dimensional Similarity Search
在这部分内容中,我们主要关注几个部分:
- LSH
- C2LSH
- PQ
6) Spark SQL & PySpark MLlib
详细的内容参考:Big Data Management笔记04:SparkSQL和PySpark MLlib
在SparkSQL中,主要关注:
- Dataframe
- Operations
- Columnar Storage
在PySpark MLlib中,主要关注:
- 机器学习中的分类问题
- MLlib(Pipeline)
- 集成学习中的模型堆叠(Stacking)
7) Mining Data Streams
详细的内容参考:Big Data Management笔记05:Mining Data Streams
在这部分内容中,我们主要关注几个部分:
- 流模型DSMS
- 采样(Sampling)
- 滑动窗口(Sliding window)
- 过滤(Filtering)
8) Recommender System
To be continue…