数据速度、数据量、种类、真实性
大数据是云的固有特性,为使用传统、结构化的数据库信息,以及对社交网络、传感器网络数据及不那么结构化的多媒体执行业务分析提供了前所未有的机会。大数据应用程序需要一种以数据为中心的计算架构,许多解决方案都包含基于云的
API,用于与高级的列式搜索、机器学习算法及高级分析(比如计算机视觉、视频分析和可视化工具)配合使用。本文介绍使用
R 语言和类似工具来执行大数据分析,以及在云中扩展大数据服务的方法。文中深入剖析了一种作为简单的大数据服务的数码照片管理,采用了应用到非结构化数据的搜索、分析和机器学习的关键元素。
本文重点介绍使用大数据的应用程序,解释大数据分析背后的基本概念,以及如何将这些概念与商业智能
(BI) 应用程序和并行技术相结合,比如 “云扩展” 系列第 3 部分中介绍的计算机视觉 (CV) 和机器学习方法。
大数据分析与视频分析的区别在于所处理数据类型的广度上,而且与所使用的数据挖掘或
MapReduce 方法相比,所提供的交互式分析和搜索工具可能更加复杂,而且比 Google BigQuery
的运行时间长得多。例如,Google BigQuery 使用列式搜索来压缩和加速海量非结构化数据的交互式搜索。事实上,在
“An Inside Look at Google BigQuery”(参见 参考资料)中,Google
解释说只需数十秒,BigQuery 即可在包含大约 350 亿行、20TB 的庞大日志表上执行正则表达式文本匹配。该工具的
MapReduce 功能的运行时间更长,但提供了复杂的数据精减。
任何拥有 Google 帐户的人都可使用 BigQuery。或者,要快速了解典型的大数据搜索,可下载我的照片并上传到
Google Images。您应获得所有包含我的图像的相同页面(来自 IBM、科罗拉多州大学博尔德分校等),包括至少一次错误肯定。我使用此示例主要是为了确保下载的图像拥有合适的照片信誉并授予了重用权限。与这里分析的其他示例一样,此示例展示了大数据的实质,那就是在一个非结构化的数据堆(实际上更可能是数百万个数据堆)中寻找一条有用信息。
定义大数据
大数据 的从广义上来说定义为采集、管理和分析超出典型结构化数据范围的数据,这些数据可通过关系数据库管理系统查询
— 查询来源常常是非结构化文件、数字视频、图像、传感器数据、日志文件,以及几乎未包含在具有明显可搜索字段的记录中的任何数据。从某种意义上说,非结构化数据是一种有趣的数据,但如果不与结构化数据相关联,则难以合成到
BI 中或从中得出结论。
大数据还拥有新的来源,比如机器生成的文件(日志文件或传感器网络)、移动设备(视频、照片和文本消息),以及机器到机器传输的数据,通过这种数据,物联网报告状态来进行车队或飞机群的维护规划,或一般遥测监视等。分析此数据的一种方式是分析数据量
的特征。IBM 估计,现在每天会创建 2.5 万兆 (quintillion) (2,500,000,000,000,000,000)
字节的数据(参见 参考资料)。第二是速度,由于网络带宽增大(如今通常为 GB 级速率,比如 gigE、10G、40G、100G,而不是
MB 级速率),数据速率也在不断增长。第三是种类,现在包含更多非结构化数据类型,比如数字视频流和传感器数据,以及日志文件。最后是数据的真实性,或者在需要依赖这些高速收集的大量数据而制定关键决策时,对数据的信任程度有多高。知道数据实际上没有假冒,没有损坏或来自预期的来源并不容易
— 举例而言,数据可能来自数千个安全照相机中的一个,每个照相机每小时生成数千帧视频。所以,让我们列出一些大数据的关键方面、应用程序和系统,以便更好地理解它们。
大数据来自何处?
大数据的产生主要源于移动设备的进步,这些设备现在包含数字视频、照片、音频和高级的电子邮件及文本特性。用户收集的数据量比
10 年前多得多;同样,Google Translate 等新应用程序提供了大数据服务器特性 — 向移动设备说出或键入的短语的自然语言翻译。在
2013 年的全球技术展望中,IBM 认为大数据受移动优先战略的推动(参见 参考资料),而且通过数据量、种类、速度和真实性来描绘大数据。这些数据自然远远没有关系数据库记录那么结构化,但可与这些数据相关联。本文详细介绍大数据的构成。
或许理解大数据的最佳方式是回顾它的历史,Forbes Magazine
就是这么做的(参见 参考资料)。当然,被视为大数据的数据规模现在正在以每天超过 2.5 EB 的速度增长。有趣的是,大部分数据永远不会被人类查阅(依据美国人口普查记录,全球有
70 亿人,每个人每天需要查阅超过 300MB 信息)。考虑到这一挑战,使用如此多数据的惟一合理的方式是,对大数据执行机器到机器自动化或智能查询。而且,如果长期保存这么多的数据,人们如何知道是否有部分数据已损坏?当然,我们可以存储数据摘要(比如
MD5,这是一种校验和格式)并使用独立磁盘冗余阵列(RAID — 使用镜像、XOR 奇偶校验或纠删码来检测并恢复损坏的数据),但人们越来越担心一些数据可能遭受静默损坏(参见
参考资料)。
Internet Archive(一个数据管理机构)对此关注进行了调查。总体来讲,大数据的真实性是一大挑战,但纠删码和先进的数据摘要方法表现出了巨大潜力。XOR
RAID 或简单镜像等传统方法正被 RAID-6 和更高级的纠删码取代。这些传统方法在存储设备发生故障时仅提供了针对数据丢失的单一故障保护,不会处理由软件缺陷、数据中心操作员错误或媒体故障导致的不易察觉的损坏场景。大数据的数据持久性概念已变得非常重要,我曾与
Intel 和 Amplidata 使用数学模型联合研究了这一主题。对于如此多的数据,人们检查它的真实性的想法完全行不通,而且只有在很久以后最终查询或访问这些数据时,才会注意到这些数据已丢失。
大数据系统设计
用于大规模数据保护的架构应包含对以下方面的防御:丢失、静默损坏、恶意软件,以及网络罪犯或通过网络战争对数据执行的恶意修改。数据是一种资产,越来越多地被政府和企业用于制定重要决策,但如果数据的真实性未知,那么数据的价值就会下降或者甚至可能失去
— 或者更糟的情况是做出错误决策。这个主题不属于本文的介绍范畴,但显然对数据的丢失和未检测到的修改或损坏的防御不可或缺。
更好地理解大数据的一种方式是,更详细地分析一些拥有足够数据(通常为数 PB)的云网站和供应用程序使用的查询工具(通常为数
TB)。我们中的大部分人每天都在使用 Google 查询,但 Google 还提供了 BigQuery,这个工具使用了更复杂的列式存储和搜索(将作为一个示例进行更详细的讨论)。其他著名的示例包括
Facebook(社交网络)、Wikipedia(常识采集)、Internet Archive(数字数据管理机构)、DigitalGlobe(地理信息系统
[GIS])、Microsoft? Virtual Earth (GIS)、Google Earth (GIS)
和许多新的大数据服务提供商。
公司拥有内部的大数据,在私有云系统上也拥有大数据。许多大数据系统对用户查询是只读模式(从机器生成的来源采集),但如果它们允许更新数据库或非结构化数据,则可能包含使用密码短语的强身份验证,这就需要用户通过移动电话文本消息确认代码来进行身份验证,使用图形质询来验证人类的数据输入,或许在未来更多地使用生物学身份验证。
大数据应用程序
人们每天都在为 CV 和视频分析构思杀手级应用程序,但由于计算需求或实现成本的制约,一些应用程序需要好多年才能实现。尽管如此,以下是一些有趣的应用程序的列表:
事实证明,使用 Google Trends 的股票市场态度分析能与历史指数的下降和上升建立良好的关联,这或许并不新奇,但在作为一种大数据应用具有重要的意义。文章
“使用 Google Trends 量化金融市场中的交易行为”(参见 参考资料)提供的证据表明,使用态度分析来制定长期和短期的股票购买和销售决策,可能胜过简单的买入并持有战略和指数型基金投资。这项研究无疑需要更多分析,但很有吸引力。但是,一个有趣的考虑因素是,当这些基于机器的交易系统与现有的程式交易一同存在时,会发生什么。
来自 Google 的 Picasa 照片排序是一个很有用的工具,允许用户排序、查询,以及结合使用
CV 技术和机器学习来自动识别面部。这是体验大数据服务和应用程序的价值的一种不错的方式。这种方式清晰地表明,大数据分析将需要
CV 等高级分析和机器视觉等方法。
Pandora(音乐)、Netflix(影片)和 Amazon(图书和产品)等推荐系统在一种称为协作式过滤
的方法中使用客户数据和多个代理。这项大数据服务已成为机器学习和数据挖掘领域的更高级的研究主题。显然,提出好建议的能力可增加销量,并提高客户满意度。
客户群分析可将社交网络数据(例如 Facebook 和 Twitter)与从传统的客户交易记录收集的
BI 相关联,并基于此文本数据而提供客户的态度分析。态度分析使企业能够知道客户对其产品的想法,他们对该企业或竞争对手的兴趣,以及他们喜欢什么和不喜欢什么等。
来自传感器网络(例如嵌入在城市交通、红绿灯和一般基础设施等大型系统中的传感器)的机器生成的数据;机器到机器数据,来自一个机器(通常位于现场)的传感器或日志数据被另一个机器吸收;还有日志文件,最常由
IT 用于调试问题和管理系统异常(在它们不需要人类干预来执行恢复和持续操作时忽略它们)。
旅游预定系统通过合并客户偏好、后勤和以前的历史行为而得以改进,从而为一直以来艰难的旅程规划任务提供有帮助的建议。
娱乐社交网络正在取代广播电视和影片的茶水间里讨论的社交方面,其中点播式数字媒体现在允许任何人几乎随时随地观看内容,但仍然通过社交网络分享经验。尽管这使内容使用更有乐趣,但它使内容创建者、脚本编写者和艺术家能够真正比以往更好地了解其受众。
医疗诊断常常包含基于规则的专家决策支持系统 (DSS),但借助大数据,有证据表明这些系统可能完全脱离于研究,并成为主流的医疗助手。例如,协助对患者的自杀风险进行客观心理评估的新
DSS 已在研究中展现出了前景(参见 参考资料)。证明这些系统的价值一种方式是,将它们与历史数据对比:这些系统不会取代人类的决策,还在用作支持工具时有可能改善决策。
这绝不是大数据应用的完整列表,可在 参考资料 中找到更多应用。列式查询、非结构化数据分析、MapReduce
以及大数据可视化和推理等应用仅仅是入门级别。
公共安全领域的大数据
大数据分析与公共信息(或受管理者信任的私有、自愿提供的信息)的集成,可实现对大量视频、语音、传感器数据和电子邮件文本的快速搜索,以改善灾难恢复期间的公共安全,预防恐怖威胁,并了解公共问题。大多数人将这当作反馈,而不是应急警告系统的单向广播。当然,如果侵犯了隐私,大数据和视频/语音/电子邮件分析也存在着问题和潜在的阴暗面。这些系统需要对从公共场所和网络收集的数据进行负责任的使用、全面公开和审计。
大数据应用的隐私考虑因素
如果公司、政府和组织仔细地收集、分析和使用大数据,那么带给公众的价值将显而易见。如果滥用大数据分析功能,就将失去公众信任,而且价值也会丢失。用户的态度必须是自愿提供的,许多价值都源于知道人们对它们所交互对象的感觉、他们所处的位置,或者他们在查阅的内容。如果开发了一款读心传感器,那么我们就可能会真正遇到道德困境。就现在而言,照相机、录音或电子邮件数据挖掘的使用应高度关注隐私问题,并在某种程度上保持用户的信任和信心。
作为一个恰当的案例,在编写本文期间,美国国家安全局电话元数据数据库(在国家受到威胁时可从中挖掘数据)的问题已引起了巨大的关注(参见
参考资料)。显然,许多细节将在诉讼案件中解决,但仔细地考虑大数据系统的设计无疑会省去很多诉讼麻烦。
InfoSphere Streams 中的 R-project Toolkit
InfoSphere Streams 是一个高级计算平台,允许用户开发的应用程序快速摄取、分析和关联来自数千个实时来源的信息,处理非常高的数据吞吐量速率:每秒高达数百万个事件或消息。V3.1
包含一个 R-project Toolkit,支持您应用复杂的数据挖掘算法来检测数据流中的有趣模式。您可以
了解更多信息 并 进行试用。
示例:使用 R 脚本
可视分析是描述大数据可视化的术语(不要与视频分析 相混淆,后者是分析图像序列来理解它们包含的内容)。可视化已成为高性能计算中一种非常常见的做法,但随着来自移动设备、社交网络、机器到机器系统和传感器网络的非结构化数据的增长,对大数据的高级可视化的需求也在与日俱增。业务决策过程中常常使用的简单的饼图、柏拉图原理、X-Y
平面图和柱状图可能已经不足以理解大数据。
要探索此领域,我使用 C 和 R 脚本语言实现了 Lorenz 等式(一个大数据分析工具)。使用
C 和 Microsoft? Excel? 理解这些复杂等式的能力有限,这主要是因为建模和分析不是一体化的,而且电子表格通常没有提供复杂的多维可视化。借助
C 和 Excel,我能够生成 Lorenz 等式的 2-D 散点图来模拟大气对流,如图 1 所示。可能有一种更好的方式来使用
Excel 可视化此数据,但没有显而易见的方式来分析超过 2 个维度。
图 1. Lorenz 模型的一个 2-D
电子表格散点图
使用 R 执行可视分析
使用 R,您可以导入大量分析和可视化包,并将它们用于这种直观的脚本语言。例如,为了更好地可视化
Lorenz 等式,我导入了 scatterplot3d 包(如图 2 所示),以便得到比简单电子表格更好的、内在的
3-D Lorenz 等式视图。也可以使用科学可视化工具(比如 MATLAB 或者甚至 GNU 散点图)来执行这类基于模型的分析,但
R 还包含许多不同的包(比如 BI 可视化),它们非常适合非科学性质的数据集的多维分析,可在 参考资料
中找到许多示例。Lorenz 示例只是对 R 的强大功能的简单介绍。
图 2. 将一个可视化包导入 R for
Windows 中
MATLAB 为工程师和科学家们提供了一个用于建模和数据探索的交互式的科学和工程分析环境,同样,R 为业务分析师和所有类型的大数据分析提供了相同的环境(参见图
3 和清单 1)。使用 R 和 BigQuery 等工具对大数据的交互式探索是大数据分析与更加面向批处理的分析和数据挖掘的区别所在,后者常常使用
MapReduce 执行。无论如何,目的都是形成一个新模型,并为利用海量大数据制定决策提供支持。
图 3. Lorenz 等式的一个 R 3-D 散点图
清单 1. Lorenz 等式散点图的样例 R 脚本
library(scatterplot3d) library(gdata) getwd() [1] "C:/Users/ssiewert/Documents" mydata = read.csv("lorenz.csv") scatterplot3d(mydata, highlight.3d=TRUE, col.axis="blue", col.grid="lightblue", main="Lorenz Equations", pch=20) |
为了帮助您理解和探索可视化,针对 C、Excel 以及 R 的 Lorenz 示例 可供下载。要探索更多信息,可使用
R 可视化从 Google BigQuery 返回的数据。
大数据的未来
本文分析了大数据的价值,它的价值曾经受到过质疑(尤其是在数据的真实性无法确认时),还提供了真实性改进建议,以及处理数据的量、种类和速度的概念。迄今为止的经验表明,横向扩展、高级数据持久性方法的使用、用于集群的高速网络合并,以及
MapReduce 和列式搜索等横向扩展算法,表现出了有效处理大数据的巨大潜力。但是,由于数据的量增多、速度增快和种类增多,未考虑的问题(比如静默数据损坏)已成为新的问题。过去,在磁盘驱动器和网络的位错误率远低于通过它们或存储在它们之上的字节数时,这些问题不太受关注。因此,如今的大数据架构师必须更加聪明,不但要保护数据的真实性和价值,还要设计使这些数据可以访问且有用的服务,因为数据量已大大超出了人们每天检查的能力。
|