方粮教授:大数据体系结构:挑战与机遇

近日,2023中国数据与存储峰会-数据驱动业务创新应用论坛正式召开,国防科技大学计算机学院的方粮教授,长期从事存储技术与系统的研究,曾获国家科技进步一等奖、二等奖各一次。省部级科技进步一等奖多次。

方粮教授是存储界的老兵,老,是说他是DOIT传媒的老朋友,他从2006年起就出席存储峰会,将科研成果分享给社会各界;兵,他还真的是一名军人,数据存储峰会的唯一。

他的演讲主题是《大数据体系结构:挑战与机遇》。分享的是三个问题——大数据体系结构、挑战、机遇。

大数据体系结构

大数据体系结构,大数据是来自传统和新来源,新设备出现,大的异构数据出来后增长速度比原来快。大数据体系结构描述了系统在存储、处理、分析、应用过程当中,处理大数据的层次设计,这是框架性的。

学术界提出很多不同类型的体系结构,也有大数据处理实际应用的系统,但是结构有一点差别,很缺乏基准。学术研究上,经常会提出参考标准,大家在技术上演进或者优化。

大数据引起大家关注的原因,大数据能够转化为“真正的价值”。大数据、大价值、有挑战、有机遇,这个是我表达想讲的内容。为了实现这个目标,提出了用于大数据处理和分析(BDPA)的五层架构——收集、存储、处理、分析和应用层。目的是参照框架,在分析处理数据流的时候,为行业决策做参考。

现在大致介绍五层的挑战与机遇,挑战风险和机遇往往同时存在。五层架构是从应用、分析、处理、存储、收集架构,与计算机有点像的结构。

挑战

挑战,大数据是源源不断的流,它大概是有几个特点:

大容量——数据大容量生成、传输和积累;

连续到达——视频监控、语音监控。高清分辨率的卫星,在环绕地球运行时拍摄的数据每天在PB量级,数据处理上也有很多的源,声音、图像、视频、文字等,大部分是非结构化数据。

多个源——数据流来自多个分布式源,并且可能是结构化和非结构化的。

 时变——数据流的大小,格式和到达率都会随时间变化。

 无界流——数据有无限的数量,需要无限的内存处理和分析这些数据。

为处理在线大数据流,以及累积的历史数据,整体BDPA解决方案应协调以下两种类型的功能——处理和分析:

处理方面应用MapReduce(MR)进行处理,之前很多软件无法处理,或者通过上千台设备处理一个问题,各个数据盘的存储之间要进行归纳考虑结果,这也是处理上遇到的难题。

分析,应用不同也会有很多特定的模型算法,特定的应用会用不同的特性,比如说在线大数据流,流媒体工具(例如Spark-Streaming)可以通过实时处理在线数据流,用于检测有用的信息、大事件及关联关系。对于图形数据分析,可以使用GraphX。

基于分析梳理,在架构中也会遇到不同的挑战。分析部分主要是发现见解(insight)并根据数据做出决策。很难用中文概括insight包括的内涵,见解是很多浅显、复杂、深刻的都可以,insight在字典当中是含义非常丰富的内容。

处理和分析两个功能,能够可伸缩和可靠地处理在线数据和历史数据,在线数据流占的比例不断增加,谷歌搜索大约每分钟200万次(2012年),到2014年翻一番,推特每分钟2亿条(2012年),2015年4亿条,2020年超过500亿设备会连接到互联网,要求处理分析用户的需求,2023年估计设备数量还会再增加。

比如说像全球手机量国内每个人平均有一部手机了,原有像分析的工具用来处理大量异构识变的数据流,分析的时候会除了实时的数据流外还要结合历史数据,因为很多的推理分析不仅是现在的,还会考虑到以前的数据,所以会结合历史数据才能得到一个结果,肯定要有一个对比,才能有一个结果出来。

我们知道人体的心脏,绝大部分人是在中间偏左一点,地球在太阳系的位置也是也是太阳中心的附近,这是通过大数据检索发现这么一个现象——最重要的事情不是最中心,而是在中心附近的结论。

为此我查阅资料,现在有很多人是不是从鱼变过来,以前书上有写到,人体小的胚胎和鱼是很像,鱼的心脏在正中间,进化之后往左偏了,为什么会偏左,现在还没有搞清楚。

从数学角度来看,在中心稍微有一点波动,波动幅度就会很大,在偏中心的位置从坐标来看,波动性不会太大,稳定性会好一点,但是对于地球来说速度慢一点和快一点都会发生不可预测的结果,稍微慢一点会进到太阳系,稍微快一点会偏离轨道,任何一个后果都不可以想象。地球速度正好这么快,绕着轨道,离太阳不近不远的地方运行,至少是目前没有认识到这个原理。

要提结构要有原则和特性,你根据什么原则来说这个结构,需要满足什么样的特性?这是提结构之前的要求。

(1)体系结构需要收集结构化的,非结构化,多源和已清洗的数据,这些数据来自于各种格式,文本、图像、轨迹空间等,需要一个收集层在底层,准备充足且高质量的数据适用于上层的各种分析需求。

(2)体系结构需要基本的可扩展的存储基础架构用于历史数据存储和迁移的来自在线数据流的数据存储。因此,存储层作为第二底层,需要保证I/O性能和可扩展性。

(3)由于大规模的、持续的到达,异构、时变和无界在线大数据流给BDPA带来了不确定性。需要实时的和历史数据处理层来处理从存储中提取的联机流入和批处理文件分析任务的层。通常处理层基于控制或调度模块,以平衡建立在存储之上的两者计算范式。该层旨在提供用于海量数据流和积累的历史大数据数据的协同编程框架,并且必须满足分析的各种要求(例如,预测、推荐、因果、推理、识别、聚类等)。

(4)分析层需要做数据的挖掘,把大数据转为大家知,大量的数据价值含量很低,很多大数据没有什么用,只有分析大量的数据后会得出有用的价值。

(5)应用层需要作为整体体系结构分层的柔性层,实现来自不同行业的需求,并作为数据科学家展示系统的状态结果并向下级层反馈,数据得出来的结果和人类不一样,需要反馈和推理那一层,会不会有什么地方出差错。人有的时候还有智能纠错,系统目前的智能程度还达不到人的智能程度。

(6)系统的输入包括两种类型的数据,即在线数据流数据和批处理数据。需要资源的分配和数据迁移的策略,什么数据往什么地方流,要有一个调配的机制。

(7)体系结构的输出,即分析结果对价值的提取和知识发现,来自分析层,输出时获得的分析结果可用于情境化和可视化。

(8)该体系结构解决一切性分析问题,而不是针对特定的问题。

五层架构分析:

(1)收集层,比如说智能手机、微信文字图片、快手短视频数据,每天都有大量的网络数据、传感器数据,比如说污染和大气监测数据,特别是海洋中数据非常大,还有健康数据。来源有两个:开源的数据源和第三方数据提供商,有一些数据是政府和研究机构公开的,另外一种是花钱买的,也就是开放和第三方提供的就是花钱和不花钱的区别,不同应用对数据也有不同的要求。

开放数据可能是政府组织和研究实验室或者公司免费开放,这些大数据是匿名的,不会与个人有联系。

第三方数据提供商会通过商业安排,众包,相当于我有一个任务在网上分发给个人,众包,我理解众包相当于是一对多,比如说把一个大的任务分解成小的任务,网上发布之后最后结合起来就完成了。像谷歌的标注,大量的图片靠一个人很难完成,网上几百万人参与这张图片识别,系统经过训练之后可能下一次拿一张图片识别的时候,识别的精度就会提高。

收集上的挑战主要是多样性、隐私、标签、容错,多样性像GPS信号、文本、图像、视频多种多样,对收集也是带来很多的困难,特别是各种各样的传感器,还有时间的标签可能是很复杂多维的数据。既然数据带来方便,也会带来隐私保护的问题,要求数据要隐私保护,在处理敏感信息,比如说用户的位置和交易,比如说银行存款或者体检医疗信息比较敏感的个人信息,在隐私保护上也要做处理。

在不同的标签上,要发现知识对生命学习的数据标注的比较清晰,预期训练的结果可能会好,否则结果会比较差。像有一些图片人都很难认出来,它是小猫或者小狗,机器识别难度更大。需要容错减少系统网络原因引起的缺失值带来的错误。

(2)存储层,因为有各种各样数据来源要求可拓展分散存储,自我管理和高度可用,提供多种模式的访问,可恢复具有容错的功能,这个对于存储要求也是很高的。

存储分布式的节点,可拓展的NAS、全闪阵列、对象存储、分布式融合存储,存储融合这些技术和需求可以做配置。局部性、可拓展性、容错、数据迁移、智能化、独立性这些挑战要满足的话,也是很有困难的。

(3)存储上面是处理层,肯定要进行并行计算,数据的清理、数据集成、数据融合、虚拟化等等。并行计算比如说MR和SQL服务翻译器,相当于开发人员语言比较友好,在MR上架构的SQL翻译器对编程来说比较友好,否则编程比较困难。

数据清理,来自各种来源的数据通过像一些工具,把数据做一些规整化的处理,比如说可扩展,可能要共享数千台机器,以及可用性,用户的界面比较友好,抽象方面清洁系统不能太固定,要做一些灵活规则的定义,它需要抽象和不需要刻板。

数据的集成,需要做一个数据规整化,把数据进行集成,最后形成统一的一体化坐标,通过对坐标能够统一的视觉看到这个数据,比如说有一些工具用于检测不同源的数据,帮助管理员的选择整合文本,可以找出时间线以及和这个时间的关联关系,有一些工具帮助数据集成。数据需要统一的查询检索和分析,也要考虑数据语义,这个也是非常难。它需要提供比较方便的用户操作强大的计算系统处理数据融合,用户能够通过管理系统查询系统和度量工具,处理数据源的数据。关联对标上时间坐标,有的时候差的话差别就会很大。

索引速度很快是多变量,索引不能太大会占太多的空间,处理数据也会很慢,要并行和生成的数据要实时,与数据流的速度构建相一致。

虚拟化,比如说Docker这样的容器,各个操作和硬件操作系统虚拟打包,从用户角度来看都是看应用系统,但是整个系统都在运行,每一个容器会约束CPU、内存,但是多个会打包起来,最重要的是可以隔离,也是为虚拟化提高效率。在编程管理方面,可能会提供一些方便,下面看到的是整个系统,实际上是物理的一部分,但是你感觉肯定是在使用整个系统。处理层上的可扩展性,自动资源的调配、预测能力和故障容忍机制是面临的挑战。

(4)分析层。BDPA系统需要混合数据分析工具以满足不同的用户需求。 最早的数据MR等分析系统 为用户提供了强大的不那么抽象的编程接口。 Apache Spark是一个用于大规模数据处 理和分析的快速通用引擎。它在内存中运行程序的速度比Hadoop MR快100倍。 它很容易使用。Spark控制一组库,例如,机器学习和流媒体、 渲染数据分析比其他系统容易得多。分析层面临的挑战包括多样性,分析效率、适应性、可插拔性,以及复杂性。

(5)应用层,它是最高层基于前面的结构,构造不同用户的应用程序,比如说物流的调度、商业情报、投资组合等,分析和预测等,这个应用的程序输出帮助用户快速的做出决策,比如说像物流调度,像农夫山泉的矿泉水在杭州生产,它往全国各地调度的时候,有的地方会缺货,有的地方会有堆积,根据大数据销售的速度和运输的能力,它能够把它调配到最佳的状态,既不缺货也不堆积,通过大数据可以进行调度。它可以综合各种各样的信息,能够提供最完善的决策分析。

投资组合的决策,能够避免风险获得最大的效益,这也是一个投资机构最喜欢得到的结果,如果了解这方面也是最复杂的事情,因为它没有一个模型,其实是不可预测,但是很多人又去做预测,这个是最有意思的事情。

大数据结构的机遇与挑战

挑战是两个方面,一是这样的结构对于大数据应用来说,适应性、价值和通用性,适应不同的模型算法调配资源,价值相当于是基于商业逻辑价值的提取,从大数据里面得到价值,而且它能够用在多个领域上,这是应用层的挑战,也是非常复杂的。将来车联网实时从视觉数据,代替人自动驾驶或者代替人感知到周围的信息,数据量很大实时处理,像目前传统的做法很难达到这个要求,所以自动驾驶应该说是很好的理想,要真正实现代替人的驾驶,还是比较漫长的过程。

机遇有两方面,一是结构对大数据应用带来的机遇,这样能够在框架下,把大数据分析高效处理,通过对数据的挖掘得到想要的结果。

二是为软件的开发存储提供明确的方向,对大数据分析和处理需要什么样的软件模块要有什么功能,需要完成什么样的挑战,应对什么样的挑战,存储系统需要什么样的性能指标,什么样的架构?所以这也是对软件和存储是很大的促进作用,这也是结构本身带来的机遇。

大数据成为可持续发展的关键,可持续发展比如说双碳,这个是绿色低能耗持续的发展,目前来说是基于大数据算力和数据要素,大规模的调度和流通成为未来大数据管理主要的方向,形成低碳发展的新格局,这也是大数据技术所带来的机遇。

谢谢大家。