暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

大数据、分析与数据科学:有何不同?

BMC中国 2019-03-28
282

非技术人员对于大数据和分析之间到底存在怎样的差异深感困惑。您经常会看到大数据分析、大数据、分析或数据科学等词语。它们都是什么意思呢?


简言之,大数据是支持分析的基础架构。分析是应用数学,也称为数据科学。


也就是说,您可以在不使用分析的情况下使用大数据,例如在只存储日志或媒体文件的位置。并且您可在没有大数据数据库的情况下开展分析,例如使用Microsoft Excel。


分析

运算研究是一个古老的字眼,意思是利用数学来优调工业及其他过程。以前,例如在20世纪90年代之前,数学家和统计学家是使用当时的工具来完成这项工作,其中包括Microsoft Excel以及面向PC的SPSS或面向大型机的SaaS等统计软件包。


再以前,他们则是使用计算器、计算尺、铅笔和纸张来开展这项工作。


应用数学的另一个用途是评估制药行业和研究型医院的临床试验。在这些地方,应用数学可帮助统计学家评估新药的疗效以及找到吸烟等因素与肺癌发病率之间的关联。找到变量之间的关联并进行分类,乃是神经网络以及其他数据结构和机器算法的设计初衷。


这样的医疗和工业数据出于几个原因而很难处理。首先,统计学家/数学家(数据科学家)确实了解COBOL、SQL及其他大型机编程语言和数据库,但他们必须等待程序员将数据加载到大型机中。相反,程序员基本或根本不具备应用数学知识。因此,如果数据科学家可以自己编程,将会更好。


其次,由于缺乏机器学习SDK,程序员必须自己编写统计算法。当然,这些算法内置于SaaS等产品中。但是,除非您编写程序来驱动COBOL运行它们,否则,COBOL是不会自动运行这些程序的。


第三,SaaS是专有软件。IBM SPSS也是如此。它不是开源软件。因此,学术界和业内人士无法将自己的成果贡献给他们所使用的系统,如scikit-learn、TensorFlow、Keras、Spark Machine Language及其他现代工具。想象一下,如果您只能使用Microsoft(以前)、IBM(以前)和Oracle(当前)等垄断企业提供的工具,势必会限制其价值。


接下来的难点是,为了将数据放入SQL数据库,您必须先将数据放入特定的、严格的行列格式中。而这种格式不支持非结构化数据。

最后,就像Spark、ElasticSearch和Hadoop等分布式数据库一样,这样的系统几乎可以无限扩展


大数据

Spark、ElasticSearch及Hadoop等是主要编写用于帮助Yahoo、Google和Facebook等企业处理庞大数据的工具。在学术界的帮助下,这些公司在斯坦福等地编写了该软件,然后将其作为开源软件赠送出去。


这些系统可在低成本的商用PC网络(集群)上运行。它们允许您根据需要向集群中添加任意数量的其他设备,因此能够处理更多的数据,甚至包括最大规模的大型机。


PC是Amazon EC2、内部IT商店及其他平台在数据中心使用的计算机,基本上已经取代了大型机、Sun Solarix、IBM AIX及其他昂贵的大型计算机,导致这类系统越来越便宜。


Hadoop不是数据库,而是分布式文件系统。这意味着您可使用它跨越多台设备来存储数据。


这就是短语大数据的出处。大数据是不适合通过单台设备的硬盘进行存储的数据。


至于内存限制,Apache Mesos及类似系统可对内存进行抽象处理,因此,它可突破一台设备的限制范围。要想添加更多内存,您只需添加另一台设备即可。如果添加x倍的设备可以获得(x)倍的内存,则表示该系统可以线性扩展。


ElasticSearch和MongoDB是非结构化的大数据数据库。这意味着您可以使用相对自由格式JSON (JavaScript Object Notation)来存储数据。此外,您不必像使用SQL那样必须定义实体之间的关系。换句话说,您无需定义外键等条件。


例如,MongoDB JSON记录可以是:

{ name:  "Walker", age: "secret"}


虽然下一个可能有所不同,例如包含额外字段:


{ name:  "Stephen", age: "young", employer: "BMC"}


但您可以通过很多工具将多种不同格式的数据转换为JSON。它们同样不适用于SQL。


Cassandra也是计算领域的一个新想法。它是列导向数据库。此类数据库可能带有缺失值。


例如,一名员工记录中可能包括美国居民的社会安全号,但这个字段对外国人保留空白。


通过为空值预留空间,此类数据库将不会像Oracle SQL那样浪费空间。通过对具有相同值的列进行分组(而不是按字母顺序排列),它还能够加快运行速度。


本文简单介绍了大数据和分析之间的差异。虽然程序员可通过某些方式来专注于大数据编程,例如变成大数据工程师或架构师,但只有具备应用数学知识的工程师才能开展数据科学工作。

文章转载自BMC中国,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论