假如你刚接触大数据,你可能会觉得这个领域很难以理解,无从下手。不外,你可以从下面这份包含了 25 个大数据术语的清单入手,那么我们开始吧。
算法(Algorithm):算法可以理解成一种数学公式或用于进行数据分析的统计学过程。那么,「算法」又是何以与大数据扯上关系的呢?要知道,尽管算法这个词是一个统称,但是在这个流行大数据分析的时代,算法也常常被提及且变得越发流行。 分析(Analytics):让我们试想一个很可能发生的情况,你的信用卡公司给你发了封记实着你全年卡内资金转账情况的邮件,假如这个时候你拿着这张单子,开始当真研究你在食物、衣物、娱乐等方面消费情况的百分比会怎样?你正在进行分析工作,你在从你原始的数据(这些数据可以匡助你为来年自己的消费情况作出决定)中挖掘有用的信息。那么,假如你以类似的方法在推特和脸书上对整个城市人们发的帖子进行处理会如何呢?在这种情况下,我们就可以称之为大数据分析。所谓大数据分析,就是对大量数据进行推理并从中道出有用的信息。以下有三种不同类型的分析方法,现在我们来对它们分别进行梳理。 描述性分析法(Descriptive Analytics):假如你只说出自己去年信用卡消费情况为:食物方面 25%、衣物方面 35%、娱乐方面 20%、剩下 20% 为杂项开支,那么这种分析方法被称为描述性分析法。当然,你也可以找出更多细节。
猜测性分析法(Predictive Analytics):假如你对过去 5 年信用卡消费的历史进行了分析,发现每年的消费情况基本上呈现一个连续变化的趋势,那么在这种情况下你就可以高概率猜测出:来年的消费状态应该和以往是类似的。这不是说我们在猜测未来,而是应该理解为,我们在「用概率猜测」可能发生什么事情。在大数据的猜测分析中,数据科学家可能会使用提高前辈的技术,如机器学习,和提高前辈的统计学处理方法(这部门后面我们会谈到)来猜测天色情况、经济变化等等。 规范性分析(Prescriptive Analytics):这里我们仍是用信用卡转账的例子来理解。如果你想找出自己的哪类消费(如食物、娱乐、衣物等等)可以对整体消费产生巨大影响,那么基于猜测性分析(Predictive Analytics)的规范性分析法通过引入「动态指标(action)」(如减少食物或衣物或娱乐)以及对由此产生的结果进行分析来划定一个可以降低你整体开销的最佳消费项。你可以将它延伸到大数据领域,并想象一个负责人是如何通过观察他眼前多种动态指标的影响,进而作出所谓由「数据驱动」的决议计划的。 批处理(Batch processing):尽管批量数据处理从大型机(mainframe)时代就已经存在了,但是在处理大量数据的大数据时代眼前,批处理获得了更重要的意义。批量数据处理是一种处理大量数据(如在一段时间内收集到的一堆交易数据)的有效方法。分布式计算(Hadoop),后面会讨论,就是一种专门处理批量数据的方法。 Cassandra:是一个很流行的开源数据治理系统,由 Apache Software Foundation 开发并运营。Apache 把握了良多大数据处理技术,Cassandra 就是他们专门设计用于在分布式服务器之间处理大量数据的系统。 云计算(Cloud computing):固然云计算这个词现在已经家喻户晓,这里大可不必赘述,但是为了全篇内容完整性的考虑,笔者仍是在这里加入了云计算词条。本质上讲,软件或数据在远程服务器长进行处理,并且这些资源可以在网络上任何地方被访问,那么它就可被称为云计算。 集群计算(Cluster computing):这是一个来描述使用多个服务器丰硕资源的一个集群(cluster)的计算的形象化术语。更技术层面的理解是,在集群处理的语境下,我们可能会讨论节点(node)、集群治理层(cluster management layer)、负载平衡(load balancing)和并行处理(parallel processing)等等。
暗数据(Dark data):这是一个生造词,在笔者看来,它是用来恐吓人,让高级治理听上去晦涩难懂的。基本而言,所谓暗数据指的是,那些公司积累和处理的实际上完全用不到的所有数据,从这个意义上来说我们称它们为「暗」的数据,它们有可能根本不会被分析。这些数据可以是社交网络中的信息,电话中央的记实,会议记实等等。良多估计以为所有公司的数据中有 60% 到 90% 不等可能是暗数据,但实际上没人知道。 数据湖(Data lake):当笔者第一次听到这个词时,真的认为这是个愚人节笑话。但是它真的是一个术语。所以一个数据湖(data lake)即一个以大量原始格局保留了公司级别的数据知识库。这里我们先容一下数据仓库(Data warehouse)。数据仓库是一个与这里提到的数据湖类似的概念,但不同的是,它保留的是经由清理和并且其它资源整合后的结构化数据。数据仓库常常被用于通用数据(但不一定如斯)。一般以为,一个数据湖可以让人更利便地接触到那些你真正需要的数据,此外,你也可以更利便地处理、有效地使用它们。 数据挖掘(Data mining):数据挖掘关乎如下过程,从一大群数据中以复杂的模式识别技巧找出有意义的模式,并且得到相关洞见。它与前文所述的「分析」息息相关,在数据挖掘中,你将会先对数据进行挖掘,然后对这些得到的结果进行分析。为了得到有意义的模式(pattern),数据挖掘职员会使用到统计学(一种经典的旧方法)、机器学习算法和人工智能。
数据科学家:数据科学家是时下非常性感的一门行业。它指那些可以通过提取原始数据(这就是我们前面所谓的数据湖)进而理解、处理并得出洞见的这样一批人。部门数据科学家必备的技能可以说只有超人才有:分析能力、统计学、计算机科学、创造力、讲故事能力以及理解贸易背景的能力。难怪这帮人工资很高。 分布式文件系统(Distributed File System):大数据数目太大,不能存储在一个单独的系统中,分布式文件系统是一个能够把大量数据存储在多个存储设备上的文件系统,它能够减少存储大量数据的本钱和复杂度。
ETL:ETL 代表提取、转换和加载。它指的是这一个过程:「提取」原始数据,通过清洗/丰硕的手段,把数据「转换」为「适合使用」的形式,并且将其「加载」到合适的库中供系统使用。即使 ETL 源自数据仓库,但是这个过程在获取数据的时候也在被使用,例如,在大数据系统中从外部源获得数据。
Hadoop:当人们思索大数据的时候,他们会立刻想到 Hadoop。Hadoop 是一个开源软件架构(logo 是一头可爱的大象),它由 Hadoop 分布式文件系统(HDFS)构成,它答应使用分布式硬件对大数据进行存储、抽象和分析。假如你真的想让某人对这个东西印象深刻,你可以跟他说 YARN(Yet Another Resource Scheduler),顾名思义,就是另一个资源调度器。我确实被提出这些名字的人深深震撼了。提出 Hadoop 的 Apache 基金会,还负责 Pig、Hive 以及 Spark(这都是一些软件的名字)。你没有被这些名字惊艳到吗?
内存计算(In-memory computing):通常以为,任何不涉及到 I/O 访问的计算都会更快一些。内存计算就是这样的技术,它把所有的工作数据集都移动到集群的集体内存中,避免了在计算过程中向磁盘写入中间结果。Apache Spark 就是一个内存计算的系统,它相对 Mapreduce 这类 I/O 绑定的系统具有很大的上风。
物联网(IoT):最新的流行语就是物联网(IoT)。IoT 是嵌入式对象中(如传感器、可穿着设备、车、冰箱等等)的计算设备通过英特网的互联,它们能够收发数据。物联网天生了海量的数据,带来了良多大数据分析的机遇。
机器学习(Machine Learning):机器学习是基于喂入的数据去设计能够学习、调整和晋升的系统的一种方法。使用设定的猜测和统计算法,它们持续地迫临「准确的」行为和想法主意,跟着更多的数据被输入到系统,它们能够进一步晋升。
MapReduce:MapReduce 可能有点难以理解,我试着解释一下吧。MapReduceMapReduce 是一个编程模型,最好的理解就是要留意到 Map 和 Reduce 是两个不同的过程。在 MapReduce 中,程序模型首先将大数据集分割成一些小块(这些小块拿技术术语来讲叫做「元组」,但是我描述的时候会尽量避免晦涩的技术术语),然后这些小块会被分发给不同位置上的不同计算机(也就是说之前描述过的集群),这在 Map 过程是必需的。然后模型会收集每个计算结果,并且将它们「reduce」成一个部门。MapReduce 的数据处理模型和 Hadoop 分布式文件系统是分不开的。
非关系型数据库(NoSQL):这个词听起来几乎就是「SQL,结构化查询语言」的反义词,SQL 是传统的关系型数据治理系统(RDBMS)必须的,但是 NOSQL 实际上指的是「不止 SQL」。NoSQL 实际上指的是那些被设计来处理没有结构(或者没有「schema」,纲要)的大量数据的数据库治理系统。NoSQL 适合大数据系统,由于大规模的非结构化数据库需要 NoSQL 的这种灵活性和分布式优先的特点。
R 语言:这还有人能给一个编程语言起一个更加糟糕的名字吗?R 语言就是这样的语言。不外,R 语言是一个在统计工作中工作得很好的语言。假如你不知道 R 语言,别说你是数据科学家。由于 R 语言是数据科学中最流行的编程语言之一。
Spark(Apache Spark):Apache Spark 是一个快速的内存数据处理引擎,它能够有效地执行那些需要迭代访问数据库的流处理、机器学习以及 SQL 负载。Spark 通常会比我们前面讨论过的 MapReduce 快好多。
流处理(Stream processing):流处理被设计来用于持续地进行流数据的处理。与流分析技术(指的是能够持续地计算数值和统计分析的能力)结合起来,流处理方法特别能够针对大规模数据的实时处理。
结构化 vs 非结构化数据(Structured v Unstructured Data):这是大数据中的对比之一。结构化数据基本上是那些能够被放在关系型数据库中的任何数据,以这种方式组织的数据可以与其他数据通过表格来联系关系。非结构化数据是指任何不能够被放在关系型数据库中的数据,例如邮件信息、社交媒体上的状态,以及人类语音等等。