Big Data Management Framework

1) Introduction to Big Data Management

什么是大数据(Dig Data)?
大数据指的是一组具有特殊特征(Volume, Variety, Velocity…)的数据,由于这些特征,使用传统的方法无法对其进行管理(存储,分析,检索,可视化…)

大数据的特点
现在一般用7V来表示大数据的特点:

Big Data Management Framework
7V特点根据其被提出的时间以及类别可以进行进一步的分类:

  • Fundamental Vs(基础特征)
    1. Volume (Scale/Size):指的是从各个数据源获取的数据量,体现数据的规模,是大数据的基础。
    2. Variety (Diversity):指的是数据具有各种类型,比如关系数据、文本数据、半结构化数据、图数据等,体现数据的多样性。
    3. Velocity (Speed):得益于各种技术,比如云计算、物联网、科技数据等的发展,数据生成的速度越来越快,这也使得我们对数据的存储、处理和分析的速度有了更高的要求,“实时性”变得越来越重要
  • Challenge(挑战)
    4. Veracity (Quality):Data = quantity + quality。脏数据具有更多不确定性,这将使基于数据的预测损失信赖度。这些不确定性可能有各种原因导致。Big Data Management Framework
    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 Framework
大数据管理(Big Data Management)
大数据管理技术主要可分为以下几个部分:

  1. 数据获取(Data Acquisition):数据根据构造主要分为三类:Structured (比如SQL),Unstructured(比如text, image, vedio等),Semi-structured (比如XML)。我们要明确。当今的大数据时代,90%的数据属于非结构化。实际情况中,更多的甚至是多类型混合数据。数据获取要注意以下三个方面:
    1) 应用导向性(Application oriented):应用/问题为导向,找与问题相关性强的数据
    2) 全面性(Comprehensive) :要全面,哪怕漏掉一点点重要的数据,都会对任务造成严重影响
    3) 数据处理(Handle data):数据有不同类型 (Type),来源 (Sources),甚至流速 (Velocity),如何处理是我们关心的问题
  2. 数据存储(Storage):由于数据量的飞速增长 (Volume),数据存储面临巨大挑战,我们对于数据存储的可靠性的要求也越来越高。传统的数据存储为结构化数据(structured)设计,以Disk oriented为主
  3. 数据准备(Data Preparation):数据准备有两个步骤
    1) 数据探索(Data exploration):需要了解数据的Trend(趋势),Correlation(相关性),Outlier(离群点)以及一些统计学(Statistics)特征(比如均值、众数、范围等)
    2) 数据预处理(Data pre-processing):主要是针对数据中的缺失值、非法值、不一致等质量问题进行数据清洗,之后针对异质化的数据进行整合。

2) Hadoop and HDFS

详细的内容参考:Big Data Management笔记01:Hadoop & HDFS

在这部分内容中,我们主要关注几个部分:

  1. 主从结构(Master-Slave architecture)
  2. HDFS的结构(Namenode, secondary namenode, datanode)
  3. 两种错误容忍的存储方法(Replication management和Erasure Coding)

3) Spark and RDD

4) MapReduce

详细的内容参考:Big Data Management笔记02:MapReduce &Spark

在这部分内容中,我们主要关注几个部分:

  1. Spark的特点和结构(Master-Slave architecture)
  2. RDD(Transformation和Actions,Lineage,DAG)
  3. Map和Reduce
  4. Shuffle
  5. 在Spark中写MapReduce

5) High Dimensional Similarity Search

详细的内容参考:Big Data Management笔记03:High Dimensional Similarity Search

在这部分内容中,我们主要关注几个部分:

  1. LSH
  2. C2LSH
  3. PQ

6) Spark SQL & PySpark MLlib

详细的内容参考:Big Data Management笔记04:SparkSQL和PySpark MLlib

在SparkSQL中,主要关注:

  1. Dataframe
  2. Operations
  3. Columnar Storage

在PySpark MLlib中,主要关注:

  1. 机器学习中的分类问题
  2. MLlib(Pipeline)
  3. 集成学习中的模型堆叠(Stacking)

7) Mining Data Streams

详细的内容参考:Big Data Management笔记05:Mining Data Streams

在这部分内容中,我们主要关注几个部分:

  1. 流模型DSMS
  2. 采样(Sampling)
  3. 滑动窗口(Sliding window)
  4. 过滤(Filtering)

8) Recommender System

To be continue…