本次课程主要介绍大数据的技术架构,主要包括如下几个方面的内容:
-
传统数据库和数据仓库
-
Hadoop及其生态系统
-
商业大数据技术架构
-
大数据商业产品
学习大数据,需要知道“传统”的数据管理技术,了解了数据库管理技术的发展简史,你就知道哪些技术在大数据时代任然有用,以及新技术到底新在哪里。
数据库系统的研究和开发从20世纪60年代中期开始到现在,几十年过去了,经历三代演变,取得了十分辉煌的成就:造就了C.W. Bachman(巴克曼)、E.F.Codd(考特)和J. Gray(格雷)三位图灵奖得主;发展了以数据建模和数据库管理系统(DBMS)核心技术为主,内容丰富的一门学科;带动了一个巨大的数百亿美元的软件产业。今天,随着计算机系统硬件技术的进步以及互联网技术的发展,数据库系统所管理的数据以及应用环境发生了很大的变化。其表现为数据种类越来越多、越来越复杂、数据量剧增、应用领域越来越广泛,可以说数据管理无处不需无处不在,数据库技术和系统已经成为信息基础设施的核心技术和重要基础。
《数据库技术的发展简史》这篇文章基本上介绍了这段历史情况,扫码阅读。
总结一下就是:关系数据库管理系统(RDBMS)在结构化数据时代是毋庸置疑的王者,有着关系代数、关系模型这样坚实数学理论的支撑,数据库技术获得了广泛认可与应用;同时,SQL语言成为数据库时代标准的人-数交互语言;数据仓库、数据挖掘等技术也得到了极大的发展。
随着大数据概念的提出,以及大数据技术的发展,数据管理界发生了巨大的变化。特别是传统数据仓库技术,遇到了非常多的挑战,其技术架构开始发生演变。
首先最大的问题是数据增长速度非常迅速,导致原有的数据仓库在处理这些数据存在架构上的问题,无法通过业务层面的优化来解决。譬如,一个省级农信社的数据审计类的数据通常在十几TB,现有基于关系数据库或者MPP的数据仓库方案已经无法处理这么大数据,亟需一种新的更强计算能力的架构设计来解决问题。
其次,随着业务的发展,数据源的类型也越来越多。很多行业的非结构化数据的产生速度非常快,使用传统Oracle/DB2的数据仓库并不能很好的处理这些非结构化数据,往往需要额外构建一些系统作为补充。
再次,在一家比较大的企业内部,因为业务不同企业内部可能会有几百个数据库,各自建设方案也不同,没有一个简单的办法将数据统一到一个数据平台上。因此需要一个数据库虚拟化技术,能够通过有效的方式将各个数据库统一化,有效的进行数据分析和批处理。而在过去,这个技术并不存在。
最后,过去的数据库没有提供搜索和数据挖掘的能力,而这些需求已经是企业的刚需。譬如金融行业需要使用复杂的数据挖掘方法代替传统的规则引擎来做风险控制,而这无法在基于关系数据库的方案中得到解决。
随着Hadoop以及Spark技术的快速成熟,基于Hadoop/Spark的数据仓库解决方案能有效的解决这些问题和挑战,成为新一代数据仓库的关键技术。
这个阶段,面对新的大数据应用需求,传统数据库无论在技术上还是功能上都难以为继续,开始出现不同的技术变革。总体上,按数据类型与计算方式的不同,面向大数据的管理系统与处理采用不同的技术路线,大致可以分为四类:
-
MPP并行数据库和内存数据库
-
基于Hadoop开源体系的大数据系统
-
MPP并行数据库与Hadoop的混合集群
-
内存计算与Hadoop的混合
详情可以参考《大数据系统发展的技术路线》一文。
总的来说,我们可以得出以下结论(或预测):
-
Hadoop、Spark这类分布式处理系统已经成为大数据处理各环节的通用处理方法,并进一步构成生态圈;
-
结构化大数据与非结构化大数据处理平台将逐渐融合与统一,而不必为每类数据单独构建大数据平台;
-
MapReduce将逐渐被淘汰,被Spark这类高性能内存计算模式取代,同时Hadoop的HDFS将继续向前发展,成为大数据存储的标准;
-
传统的SQL技术将在大数据时代继续发扬光大,有了SQL on Hadoop/Spark的技术支持,SQL将继续作为大数据时代的霸主,同时也被NoSQL补充;
-
以SQL、Hadoop/Spark为核心的大数据系统将逐渐挑战传统数据库市场,并逐步代替传统的数据仓库。
为此,大数据的基本技术路线已经开始清晰起来:围绕Hadoop/Spark构建整个面向大数据全生命周期的技术生态。我们重点集中讨论下大数据计算和大数据分析两个方面的技术。
大数据计算。计算模式的出现有力推动了大数据技术和应用的发展,使其成为目前大数据处理最为成功、最广为接受使用的主流大数据计算模式。然而,现实世界中的大数据处理问题复杂多样,难以有一种单一的计算模式能涵盖所有不同的大数据计算需求。研究和实际应用中发现,由于MapReduce主要适合于进行大数据线下批处理,在面向低延迟和具有复杂数据关系和复杂计算的大数据问题时有很大的不适应性。因此,近几年来学术界和业界在不断研究并推出多种不同的大数据计算模式。
所谓大数据计算模式,即根据大数据的不同数据特征和计算特征,从多样性的大数据计算问题和需求中提炼并建立的各种高层抽象(abstraction)或模型(model)。例如,MapReduce 是一个并行计算抽象,加州大学伯克利分校著名的Spark系统中的“分布内存抽象RDD”,CMU 著名的图计算系统GraphLab 中的“图并行抽象”(Graph Parallel Abstraction)等。传统的并行计算方法,主要从体系结构和编程语言的层面定义了一些较为底层的并行计算抽象和模型,但由于大数据处理问题具有很多高层的数据特征和计算特征,因此大数据处理需要更多地结合这些高层特征考虑更为高层的计算模式。根据大数据处理多样性的需求和以上不同的特征维度,目前出现了多种典型和重要的大数据计算模式。与这些计算模式相适应,出现了很多对应的大数据计算系统和工具。
大数据分析。大数据分析来自对某一兴趣现象的观察、测量或者实验的信息。大数据分析目的是从和主题相关的数据中提取尽可能多的信息,主要目标包括:推测或解释数据并确定如何使用数据、检查数据是否合法、给决策制定合理建议、诊断或推断错误原因、预测未来将要发生的事情等。
大数据的分析技术主要依靠三个方面:统计分析、数据挖掘和机器学习。
统计分析是基于统计理论,是应用数学的一个分支。在统计理论中,随机性和不确定性由概率理论建模。统计分析技术可以分为描述性统计和推断性统计. 描述性统计技术对数据集进行摘要(Summarization)或描述,而推断性统计则能够对过程进行推断。更多的多元统计分析包括回归、因子分析、聚类和判别分析等。
数据挖掘可以认为是发现大数据集中数据模式的一种计算过程。许多数据挖掘算法已经在人工智能、机器学习、模式识别、统计和数据库领域得到了应用,2006年ICDM 国际会议上总结了影响力最高的10种数据挖掘算法,包括C4.5、k-means、SVM、Apriori、EM、PageRank、AdaBoost、kNN、朴素贝叶斯和CART,覆盖了分类、聚类、回归和统计学习等方向。此外, 一些其他的先进技术如神经网络和基因算法也被用于不同应用的数据挖据。有时候,几乎可以认为很多方法间的界线逐渐淡化,例如数据挖掘、机器学习、模式识别、甚至视觉信息处理、媒体信息处理等等,“数据挖掘”只是作为一个通称。
机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问,其理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法从数据中自动分析获得规律,并利用规律对未知数据进行预测。在大数据时代,人们迫切希望在由普通机器组成的大规模集群上实现高性能的以机器学习算法为核心的数据分析,为实际业务提供服务和指导,进而实现数据的最终变现。与传统的在线联机分析处理OLAP不同,对大数据的深度分析主要基于大规模的机器学习技术。因而与传统的OLAP相比较,基于机器学习的大数据分析具有自己独特的特点,包括迭代性、容错性、参数收敛的非均匀性等。这些特点决定了理想的大数据分析系统的设计和其他计算系统的设计有很大不同,直接应用传统的分布式计算系统应用于大数据分析,很大比例的资源都浪费在通信、等待、协调等非有效的计算上。
以上三个数据分析技术之间的关系,简单来看,统计学主要是通过机器学习来对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。
有学者从数据生命周期的角度,从数据源、数据特性等方面总结比较了主要的数据分析方法,包括结构化数据分析、文本分析、Web 数据分析、多媒体数据分析、社交网络数据分析和移动数据分析。
再往上是数据可视化。数据可视化与信息绘图学和信息可视化相关,数据可视化的目标是以图形方式清晰有效地展示信息,数据可视化对抽象数据使用计算机支持的、交互的、可视化的表示形式以增强认知能。一般来说,图表和地图可以帮助人们快速理解信息,但是,当数据量增大到大数据的级别,传统的电子表格等技术已无法处理海量数据。大数据的可视化已成为一个活跃的研究领域,并能够辅助算法设计和软件开发。
上面的这张拿破仑东征图是个典型例子。与我们常见的饼图,柱状图,折线图不同,一打眼它并不那么清晰明了,但如果仔细认真读上五分钟,就会惊叹于作者的创作力和此图包含的大量信息。
-
信息图背景是真实地图,西起波兰边境,东至莫斯科。
-
共引入6个数据变量:拿破仑军队的数量、行军路线、气温、地理位置、行军到特定地点的时间以及行军距离。
-
线条宽度代表拿破仑的军队人数,黄色表示进攻路线,黑色表示撤退的路线。
-
开始东征时约有42万人,而到达莫斯科时损员到10万人,最终活着返回的不到1万人,军队伤亡惨重。
-
军队十月底从莫斯科撤离,当时气温最高低于零摄氏度,天寒地冻,撤退过程中不断减员。至Berezina河时,人员发生骤减,说明当时过河冻死人员很多。
该图将拿破仑东征战争的残酷展现得淋漓紧致。如果您耐心的读完这幅作品,肯定对数据可视化有了一些感性的认识。
最后,来看看大数据技术提供商。目前国内外做大数据的厂商依旧分为两类:一类是现在已经有获取大数据能力的公司,他们打算利用自身优势地位冲击大数据领域,将现有安装基础及产品线口碑推广到新一轮技术浪潮当中。如IBM、微软、谷歌、亚马逊、百度、腾讯、阿里巴巴等互联网巨头以及华为、浪潮、中兴等国内领军企业,涵盖了数据采集,数据存储,数据分析,数据可视化以及数据安全等领域;另一类则是初创的大数据公司,他们依赖于大数据工具,针对市场需求,为市场带来创新方案并推动技术发展。其中大部分的大数据应用还是需要第三方公司提供服务,希望为市场带来创新方案并推动技术发展。
Hadoop已被公认为是新一代的大数据处理平台,Cloudera、Hortonworks、MapR、Informatica、Microsoft以及Oracle等都纷纷投入了Hadoop的怀抱。其他还包括HP的Vertica、EMC的GreenplumHD、IBM的Big Insights、用友、星环科技等等。
今年2月份Gartner发布的数据仓库魔力象限当中,星环科技也被放入了远见者(Visionaries)象限当中。这个象限里基本上都是采用Hadoop技术的创业公司。这些公司采用全新的技术,逐渐替代传统数据库来构造新的数据平台。
另外虽然目前领导者象限(Leaders)仍是大厂商,如Oracle、Teradata等,但是经过这10年的经验技术的积累,逐渐达到战略转折点,技术的取代过程明显加速。在企业客户中,使用新技术的步伐会明显加速。星环技术的领先性和完备性是超过国外的大数据厂商的。希望有朝一日像星环这样的国企能够进入挑战者象限(Challengers)、进入领导者象限,成为大数据时代新的技术的领导者。
如需该课件,可以在微信公众号中回复“大数据03”进行获取,欢迎订阅本公众号!