本文约8420字,建议阅读17分钟。本文介绍Ramesh Dontha 在 DataConomy 上连发两篇文章,扼要而全面地介绍了关于大数据的 75 个核心术语。
近日,Ramesh Dontha 在 DataConomy 上连发两篇文章,扼要而全面地介绍了关于大数据的 75 个核心术语,这不仅是大数据初学者很好的入门资料,对于高阶从业人员也可以起到查漏补缺的作用。本文分为上篇(25 个术语)和下篇(50 个术语)。
如果你刚接触大数据,你可能会觉得这个领域很难以理解,无从下手。不过,你可以从下面这份包含了 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):这是大数据中的对比之一。结构化数据基本上是那些能够被放在关系型数据库中的任何数据,以这种方式组织的数据可以与其他数据通过表格来关联。非结构化数据是指任何不能够被放在关系型数据库中的数据,例如邮件信息、社交媒体上的状态,以及人类语音等等。
这篇文章是上篇文章的延续,由于上篇反响热烈,我决定多介绍 50 个相关术语。下面来对上篇文章涵盖的术语做个简短的回顾:算法,分析,描述性分析,预处理分析,预测分析,批处理,Cassandra(一个大规模分布式数据存储系统),云计算,集群计算,暗数据,数据湖,数据挖掘,数据科学家,分布式文件系统,ETL,Hadoop(一个开发和运行处理大规模数据的软件平台),内存计算,物联网,机器学习,Mapreduce(hadoop 的核心组件之一),NoSQL(非关系型的数据库),R,Spark(计算引擎),流处理,结构化 vs 非结构化数据。
我们接下来继续了解另外 50 个大数据术语。
Apache:软件基金会(ASF)提供了许多大数据的开源项目,目前有 350 多个。解释完这些项目需要耗费大量时间,所以我只挑选解释了一些流行术语。
Apache Kafka:命名于捷克作家卡夫卡,用于构建实时数据管道和流媒体应用。它如此流行的原因在于能够以容错的方式存储、管理和处理数据流,据说还非常「快速」。鉴于社交网络环境大量涉及数据流的处理,卡夫卡目前非常受欢迎。
Apache Mahout:Mahout 提供了一个用于机器学习和数据挖掘的预制算法库,也可用作创建更多算法的环境。换句话说,机器学习极客的最佳环境。
Apache Oozie:在任何编程环境中,你都需要一些工作流系统通过预定义的方式和定义的依赖关系,安排和运行工作。Oozie 为 pig、MapReduce 以及 Hive 等语言编写的大数据工作所提供正是这个。
Apache Drill, Apache Impala, Apache Spark SQL:这三个开源项目都提供快速和交互式的 SQL,如与 Apache Hadoop 数据的交互。如果你已经知道 SQL 并处理以大数据格式存储的数据(即 HBase 或 HDFS),这些功能将非常有用。抱歉,这里说的有点奇怪。
Apache Hive:知道 SQL 吗?如果知道那你就很好上手 Hive 了。Hive 有助于使用 SQL 读取、写入和管理驻留在分布式存储中的大型数据集。
Apache Pig:Pig 是在大型分布式数据集上创建、查询、执行例程的平台。所使用的脚本语言叫做 Pig Latin(我绝对不是瞎说,相信我)。据说 Pig 很容易理解和学习。但是我很怀疑有多少是可以学习的?
Apache Sqoop:一个用于将数据从 Hadoop 转移到非 Hadoop 数据存储(如数据仓库和关系数据库)的工具。
Apache Storm:一个免费开源的实时分布式计算系统。它使得使用 Hadoop 进行批处理的同时可以更容易地处理非结构化数据。
人工智能(AI):为什么 AI 出现在这里?你可能会问,这不是一个单独的领域吗?所有这些技术发展趋势紧密相连,所以我们最好静下心来继续学习,对吧?AI 以软硬件结合的方式开发智能机器和软件,这种硬件和软件的结合能够感知本科证书环境并在需要时采取必要的行动,不断从这些行动中学习。是不是听起来很像机器学习?跟我一起「困惑」吧。
行为分析(Behavioral Analytics):你有没有想过谷歌是如何为你需要的产品/服务提供广告的?行为分析侧重于理解消费者和应用程序所做的事情,以及如何与为什么它们以某种方式起作用。这涉及了解我们的上网模式,社交媒体互动行为,以及我们的网上购物活动(购物车等),连接这些无关的数据点,并试图预测结果。举一个例子,在我找到一家酒店并清空购物车后,我收到了度假村假期线路的电话。我还要说多点吗?
Brontobytes:1 后面 27 个零,这是未来数字世界存储单位的大小。而我们在这里,来谈谈 Terabyte、Petabyte、Exabyte、Zetabyte、Yottabyte 和 Brontobyte。你一定要读这篇文章才能深入了解这些术语。
商业智能(Business Intelligence):我将重用 Gartner 对 BI 的定义,因为它解释的很好。商业智能是一个总称,包括应用程序、基础设施、工具以及最佳实践,它可以访问和分析信息,从而改善和优化决策及绩效。
生物测定学(Biometrics):这是一项 James Bondish 技术与分析技术相结合的通过人体的一种或多种物理特征来识别人的技术,如面部识别,虹膜识别,指纹识别等。
点击流分析(Clickstream analytics):用于分析用户在网络上浏览时的在线点击数据。有没有想过即使在切换网站时,为什么某些谷歌广告还是阴魂不散?因为谷歌大佬知道你在点击什么。
聚类分析(Cluster Analysis):是一个试图识别数据结构的探索性分析,也称为分割分析或分类分析。更具体地说,它试图确定案例的同质组(homogenous groups),即观察、参与者、受访者。如果分组以前未知,则使用聚类分析来识别案例组。因为它是探索性的,确实对依赖变量和独立变量进行了区分。SPSS 提供的不同的聚类分析方法可以处理二进制、标称、序数和规模(区间或比率)数据。
比较分析(Comparative Analytics):因为大数据的关键就在于分析,所以本文中我将深入讲解分析的意义。顾名思义,比较分析是使用诸如模式分析、过滤和决策树分析等统计技术来比较多个进程、数据集或其他对象。我知道它涉及的技术越来越少,但是我仍无法完全避免使用术语。比较分析可用于医疗保健领域,通过比较大量的医疗记录、文件、图像等,给出更有效和更准确的医疗诊断。
关联分析(Connection Analytics):你一定看到了像图表一样的蜘蛛网将人与主题连接起来,从而确定特定主题的影响者。关联分析分析可以帮助发现人们、产品、网络之中的系统,甚至是数据与多个网络结合之间的相关连接和影响。
数据分析师(Data Analyst):数据分析师是一个非常重要和受欢迎的工作,除了准备报告之外,它还负责收集、编辑和分析数据。我会写一篇更详细的关于数据分析师的文章。
数据清洗(Data Cleansing):顾名思义,数据清洗涉及到检测并更正或者删除数据库中不准确的数据或记录,然后记住「脏数据」。借助于自动化或者人工工具和算法,数据分析师能够更正并进一步丰富数据,以提高数据质量。请记住,脏数据会导致错误的分析和糟糕的决策。
数据即服务(DaaS):我们有软件即服务(SaaS), 平台即服务(PaaS),现在我们又有 DaaS,它的意思是:数据即服务。通过给用户提供按需访问的云端数据,DaaS 提供商能够帮助我们快速地得到高质量的数据。
数据虚拟化(Data virtualization):这是一种数据管理方法,它允许某个应用在不知道技术细节(如数据存放在何处,以什么格式)的情况下能够抽取并操作数据。例如,社交网络利用这个方法来存储我们的照片。
脏数据(Dirty Data):既然大数据这么吸引人,那么人们也开始给数据加上其他的形容词来形成新的术语,例如黑数据(dark data)、脏数据(dirty data)、小数据(small data),以及现在的智能数据(smart data)。脏数据就是不干净的数据,换言之,就是不准确的、重复的以及不一致的数据。显然,你不会想着和脏数据搅在一起。所以,尽快地修正它。
模糊逻辑(Fuzzy logic):我们有多少次对一件事情是确定的,例如 100% 正确?很稀少!我们的大脑将数据聚合成部分的事实,这些事实进一步被抽象为某种能够决定我们决策的阈值。模糊逻辑是一种这样的计算方式,与像布尔代数等等中的「0」和「1」相反,它旨在通过渐渐消除部分事实来模仿人脑。
游戏化(Gamification):在一个典型的游戏中,你会有一个类似于分数一样的元素与别人竞争,并且还有明确的游戏规则。大数据中的游戏化就是使用这些概念来收集、分析数据或者激发玩家。
图数据库(Graph Databases):图数据使用节点和边这样的概念来代表人和业务以及他们之间的关系,以挖掘社交媒体中的数据。是否曾经惊叹过亚马逊在你买一件产品的时候告诉你的关于别人在买什么的信息?对,这就是图数据库。
Hadoop 用户体验(Hadoop User Experience /Hue):Hue 是一个能够让使用 Apache Hadoop 变得更加容易的开源接口。它是一款基于 web 的应用;它有一款分布式文件系统的文件浏览器;它有用于 MapReduce 的任务设计;它有能够调度工作流的框架 Oozie;它有一个 shell、一个 Impala、一个 Hive UI 以及一组 Hadoop API。
高性能分析应用(HANA):这是 SAP 公司为大数据传输和分析设计的一个软硬件内存平台。
HBase: 一个分布式的面向列的数据库。它使用 HDFS 作为其底层存储,既支持利用 MapReduce 进行的批量计算,也支持利用事物交互的批量计算。
负载均衡(Load balancing):为了实现最佳的结果和对系统的利用,将负载分发给多个计算机或者服务器。
元数据(Metadata):元数据就是能够描述其他数据的数据。元数据总结了数据的基本信息,这使得查找和使用特定的数据实例变得更加容易。例如,作者、数据的创建日期、修改日期以及大小,这几项是基本的文档元数据。除了文档文件之外,元数据还被用于图像、视频、电子表格和网页。
MongoDB:MongoDB 是一个面向文本数据模型的跨平台开源数据库,而不是传统的基于表格的关系数据库。这种数据库结构的主要设计目的是让结构化数据和非结构化数据在特定类型应用的整合更快、更容易。
Mashup:幸运的是,这个术语和我们在日常生活中使用的「mashup」一词有着相近的含义,就是混搭的意思。实质上,mashup 是一个将不同的数据集合并到一个单独应用中的方法(例如:将房地产数据与地理位置数据、人口数据结合起来)。这确实能够让可视化变得很酷。
多维数据库(Multi-Dimensional Databases):这是一个为了数据在线分析处理(OLAP)和数据仓库优化而来的数据库。如果你不知道数据仓库是什么,我可以解释一下,数据仓库不是别的什么东西,它只是对多个数据源的数据做了集中存储。
多值数据库(MultiValue Databases):多值数据库是一种非关系型数据库,它能够直接理解三维数据,这对直接操作 HTML 和 XML 字符串是很好的。
自然语言处理(Natural Language Processing):自然语言处理是被设计来让计算机更加准确地理解人类日常语言的软件算法,能够让人类更加自然、更加有效地和计算机交互。
神经网络(Neural Network):根据这个描述(neuralnetworksanddeeplearning/),神经网络是一个受生物学启发的非常漂亮的编程范式,它能够让计算机从观察到的数据中学习。已经好久没有一个人会说一个编程范式很漂亮了。实际上,神经网络就是受现实生活中脑生物学启发的模型....... 与神经网络紧密关联的一个术语就是深度学习。深度学习是神经网络中一系列学习技术的集合。
模式识别(Pattern Recognition):当算法需要在大规模数据集或者在不同的数据集上确定回归或者规律的时候,就出现了模式识别。它与机器学习和数据挖掘紧密相连,甚至被认为是后两者的代名词。这种可见性可以帮助研究者发现一些深刻的规律或者得到一些可能被认为很荒谬的结论。
射频识别(Radio Frequency Identification/RFID):射频识别是一类使用非接触性无线射频电磁场来传输数据的传感器。随着物联网的发展,RFID 标签能够被嵌入到任何可能的「东西里面」,这能够生成很多需要被分析的数据。欢迎来到数据世界。
软件即服务(SaaS):软件即服务让服务提供商把应用托管在互联网上。SaaS 提供商在云端提供服务。
半结构化数据(Semi-structured data):半结构化数据指的是那些没有以传统的方法进行格式化的数据,例如那些与传统数据库相关的数据域或者常用的数据模型。半结构化数据也不是完全原始的数据或者完全非结构化的数据,它可能会包含一些数据表、标签或者其他的结构元素。半结构化数据的例子有图、表、XML 文档以及电子邮件。半结构化数据在万维网上十分流行,在面向对象数据库中经常能够被找到。
情感分析(Sentiment Analysis):情感分析涉及到了对消费者在社交媒体、顾客代表电话访谈和调查中存在的多种类型的交互和文档中所表达的情感、情绪和意见的捕捉、追踪和分析。文本分析和自然语言处理是情感分析过程中的典型技术。情感分析的目标就是要辨别或评价针对一个公司、产品、服务、人或者时间所持有的态度或者情感。
空间分析(Spatial analysis):空间分析指的是对空间数据作出分析,以识别或者理解分布在几何空间中的数据的模式和规律,这类数据有几何数据和拓扑数据。
流处理(Stream processing):流处理被设计用来对「流数据」进行实时的「连续」查询和处理。为了对大量的流数据以很快的速度持续地进行实时的数值计算和统计分析,社交网络上的流数据对流处理的需求很明确。
智能数据(Smart Data):是经过一些算法处理之后有用并且可操作的数据。
Terabyte:这是一个相对大的数字数据单位,1TB 等于 1000GB。据估计,10TB 能够容纳美国国会图书馆的所有印刷品,而 1TB 则能够容纳整个百科全书 Encyclopedia Brittanica。
可视化(Visualization):有了合理的可视化之后,原始数据就能够使用了。当然这里的可视化并不止简单的图表。而是能够包含数据的很多变量的同时还具有可读性和可理解性的复杂图表。
Yottabytes:接近 1000 Zettabytes,或者 2500 万亿张 DVD。现在所有的数字存储大概是 1 Yottabyte,而且这个数字每 18 个月会翻一番。
Zettabytes:接近 1000 Exabytes,或者 10 亿 Terabytes。
编辑:晏斓辉
——END——