正文
数据科学家
:数据科学家是时下非常性感的一门行业。它指那些可以通过提取原始数据(这就是我们前面所谓的数据湖)进而理解、处理并得出洞见的这样一批人。部分数据科学家必备的技能可以说只有超人才有:分析能力、统计学、计算机科学、创造力、讲故事能力以及理解商业背景的能力。难怪这帮人工资很高。
分布式文件系统(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 个术语)
这篇文章是上篇文章的延续,由于上篇反响热烈,我决定多介绍 50 个相关术语。下面来对上篇文章涵盖的术语做个简短的回顾:算法,分析,描述性分析,预处理分析,预测分析,批处理,Cassandra(一个大规模分布式数据存储系统),云计算,集群计算,暗数据,数据湖,数据挖掘,数据科学家,分布式文件系统,ETL,Hadoop(一个开发和运行处理大规模数据的软件平台),内存计算,物联网,机器学习,Mapreduce(hadoop 的核心组件之一),NoSQL(非关系型的数据库),R,Spark(计算引擎),流处理,结构化 vs 非结构化数据。
我们接下来继续了解另外 50 个大数据术语。
Apache
:软件基金会(ASF)提供了许多大数据的开源项目,目前有 350 多个。解释完这些项目需要耗费大量时间,所以我只挑选解释了一些流行术语。