【读书笔记】《大数据技术与产业发展白皮书》笔记

        这几天抽空读了2013.12.20由中国计算机协会发布的《大数据技术与产业发展白皮书》,121页的材料分为6章,分别对应:a. 大数据发展背景,b. 大数据典型应用现状,c. 大数据计算体系现状,d. 大数据IT产业链与生态环境,e. 大数据人才资源,f. 大数据发展趋势与建议六个方面。
        个人感觉白皮书相当于一篇大数据方面的综述文献,值得一看。
        本笔记是白皮书第3章中部分内容的备忘录,以备实际项目之用。限于篇幅,其中涉及到的框架或项目未能给出简介,感兴趣的童鞋可以在Google中搜索其项目主页或官网做深入了解。
        下面开始正文。

1. 分布式数据库
1.1 事务性数据库

        主要包括NoSQL和NewSQL,其中NoSQL是指"Not Only SQL"或"Not Relational",这类DB通过放松对事务ACID语义的方法来增加系统的性能及可扩展性。
        NoSQL系统的典型特征:
         1) 非关系数据模型,比如键值存储等
         2) 对简单操作比如键值查询的水平可扩展性支持较好,往往不支持SQL全集(如很少有k-v db直接支持scan操作)
         3) 在多个节点中分割和复制数据的能力
         4) 弱并发一致性语义(比如最终一致性)
         5) 充分利用分布式索引和内存
        根据数据管理模式分类,NoSQL可分3类:
         1) 键值系统,如BigTable, Dynamo, HBase, Gemfire, Redis, Cassandra
         2) 文档存储系统,如MongoDB, Couchbase
         3) 图数据库,如Neo4j
        根据CAP定理(分布式系统无法同时保证Consistency, Availability及Partition Tolerance),NoSQL通过牺牲C来保证A和P。这对很多对一致性要求不高的应用来说是足够的,但若应用需要保证一致性,则常见的NoSQL方案就不适用了。
        NewSQL正是在这样的背景下诞生的。NewSQL系统可以在提供类似NoSQL的可扩展性的同时保证事务ACID属性,并提供SQL用户接口。
        NewSQL系统通常可分为两类:
        1) 通用数据库
        这类系统保持传统分布式数据库的功能,但在设计分布式体系结构时充分考虑了大规模高吞吐系统的特性。
        典型代表:Spanner和NuoDB  
        2) 基于内存的数据库
        这类系统基本上针对的是高吞吐短小事务,不再采用传统的关系型数据库设计。
        典型代表:SQLFire和VoltDB
1.2 分析型数据库
        自从MapReduce被提出以及Hadoop的流行,出现了多家针对Hadoop的SQL分析引擎。典型系统包括Hive,HAWO,Impala和Hadapt。
        1) Hive
        基本原理是接受SQL,解析SQL,把SQL语句翻译成多个MapReduce任务以实现基本的SQL操作。底层基于MapReduce的Hive把容错,执行及资源管理的工作都交给MapReduce框架,优点:简单易实现;缺陷:对标准SQL及实时查询支持不够,难于优化导致查询性能低下,很难充分利用整个集群的资源从而导致并发吞吐量较低。
        2) HAWO
        全称Hadoop with Query,是Hadoop领域与SQL兼容的大规模数据分析引擎。作为一个高效的执行引擎,它继承了Hadoop与MPP大规模数据库分析引擎的优点,实现了HDFS分布式存储与MPP执行引擎的结合,实现了MPP基于统计的优化器,支持数百万连接的网络互联协议,支持数据的多级划分与存储。特点是与各种BI工具的兼容,支持实时查询,与基于MapReduce的系统(如Hive)相比,具有性能优势。
        3) Impala和Hadapt
        也是基于Hadoop的SQL引擎,基本思路也是把MPP技术引入Hadoop。但目前还未成熟。

2. 实时/流式大数据存储与处理
        实时流数据处理系统包括数据的实时存储和流数据的实时计算。前者要求快速高效地存储流式数据到数据库、数据仓库或数据湖中;后者注重对流数据的快速高效处理、计算和分析。
        目前市场上出现的大数据实时处理技术的典型代表包括:
        1) 数据传输技术,如Flume,Scribe,Kafla,Sqoop
        2) 流式计算框架,如Storm,S4,Spark
        3) 基于Hadoop的SQL处理引擎,如HAWO,Impala
        4) 建立在流式计算框架上的分析服务,如Cetas

3. 大数据计算模式与系统
        所谓大数据计算模式,即根据大数据的不同数据特征和计算特征,从多样性的大数据计算问题和需求中提炼并建立的高层抽象(Abstraction)或模型(Model)。如MapReduce中的并行计 算抽象;流式计算框架Spark中的分布内存抽象RDD(RDD, a distributed memory abstraction);图计算系统GraphLab中的图并行抽象(Graph Parallel Abstraction)。
3.1 大数据处理典型特征
        大数据处理包括以下典型的特征或维度:
        1) 数据结构特征:根据数据结构特征可分为结构化/半结构化数据处理与非结构化数据处理
        2) 数据获取处理方式:可分为批处理与流式计算两种方式
        3) 数据处理类型:可分为传统的查询分析计算和复杂的数据挖掘分析计算
        4) 实时性或响应性能:可分为实时/准实时与非实时计算,或者是在线(online)计算与离线(offline)计算。流式计算属实时计算,查询分析类计算通常要求高的响应性能,而批处理和复 杂数据挖掘计算通常属于非实时或离线计算
        5) 迭代计算:现实的数据处理中有很多计算问题需要大量的迭代计算(如一些机器学习算法),为此,需提供具有高效迭代计算能力的计算模式
        6) 数据关联性:MapReduce适用于处理数据关系较简单的计算任务,社会网络等具有复杂数据关系的计算任务则需要借助图数据计算模式
        7) 并行计算体系结构特征:由于需要支持大规模数据的存储计算,大数据处理通常需要使用基于集群的分布式存储与并行计算体系结构和硬件平台。此外,为克服MapReduce框架在计算 性能上的缺陷,研究者从体系结构层面提出了内存计算模式(典型如Spark)
3.2 典型大数据计算模式与系统
       1) 大数据查询分析计算
       典型系统:HBase, Hive, Cassandra, Dremel, Impala, Shark, Hana
       2) 批处理计算
       典型系统:Hadoop MapReduce, Spark
       3) 流式计算
       典型系统:Scribe, Flume, Storm, S4, Spark Streaming
       4) 迭代计算
      典型系统:HaLoop, iMapReduce, Twister, Spark
       5) 图计算
      典型系统:Pregel, Giraph, Trinity, PowergGraph, GraphX
       6) 内存计算
      典型系统:Dremel, Hana, Spark

【参考资料】
1. 《中国大数据技术与产业发展白皮书(2013年)》
2. CAP Theorem
3. What is MPP: MPP - massively parallel processing
4. wikipedia: Massively parallel (computing)
5. wikipedia: Business intelligence tools

==================== EOF ===================



你可能感兴趣的:(Database)