可以说,大数据是如今IT行业最热门的趋势之一,它催生出了处理大数据的一批全新技术。而新技术带来了新的热门词汇:首字母缩略词、专业术语和产品名称等。连"大数据"这个短语本身都让人犯晕。许多人一听到"大数据",觉得是指"大量数据",而大数据的涵义绝不仅仅涉及数据量的多寡。
下面是我们认为你要熟悉的几个热门词汇,按字母顺序排列。
ACID
ACID的全称是原子性、一致性、隔离性和持久性,这其实是一组需求或属性:如果这四个方面都得到遵守,就能在处理过程中确保数据库事务的数据完整性。虽然ACID问世已有一段时日,但是事务数据量的急剧增长把更多的注意力投向在处理大数据时需要满足ACID的规定。
大数据三要素
如今的IT系统在生成数量、速度和种类都很"庞大"的数据。
数量:IDC公司估计,今年全球信息总量将达到2.7泽字节(这相当于27亿太字节),而且每两年就翻一番。
速度:让IT管理人员们头痛的不仅仅是数据数量,还有数据从金融系统、零售系统、网站、传感器、无线射频识别(RFID)芯片以及Facebook和推特等社交网络源源而来的速度越来越快。
种类:如果回到5年前或可能10年前,IT人员处理的主要是字母数字数据,它们很容易存储在关系数据库中整齐排列的行和列中。现在不再是这样了。如今,推特和Facebook上的帖子、各种文档及网页内容等非结构化数据都是大数据组合的一部分。
列式(或列型)数据库
一些新一代数据库(如开源Cassandra和惠普的Vertica数据库)被设计成了按列存储数据,而不是像传统的SQL数据库那样按行存储数据。这种设计提供了更快的磁盘访问速度,提高了处理大数据时的性能。对数据密集型业务分析应用系统而言,列式数据库尤其受到欢迎。
数据仓库
数据仓库这个概念存在至今已有大概25年了,具体指将数据从多个操作IT系统复制到面向业务分析应用系统的辅助离线数据库
但是随着数据量急剧增长,数据仓库系统正在迅速改变。它们需要存储更多的数据以及更多种类的数据,因而数据仓库管理成为一大难题。10年或20年前,数据可能每周或每月复制到数据仓库系统中;而如今,数据仓库的更新要频繁得多,有的甚至实时更新。
ETL
将数据从一个数据库(比如支持银行应用事务处理系统的数据库)转移到另一个数据库(比如用于业务分析的数据仓库系统)时,就要用到提取、转换和加载(ETL)软件。数据从一个数据库传送到另一个数据库时,常常需要对数据进行重新格式化和清理操作。
由于数据量急剧增长,数据处理速度大大加快,对ETL工具的性能要求也大大提高了。
Flume
Flume是属于Apache Hadoop大家族(其他技术包括HBase、Hive、Oozie、Pig和Whirr)的一项技术,这种框架用于为Hadoop填充数据。该技术使用散布于应用服务器、Web服务器、移动设备及其他系统上的软件代理,收集数据,并将数据传送到Hadoop系统。
比如说,公司可以使用在Web服务器上运行的Apache Flume,收集来自推特帖子的数据,以便分析。
地理空间分析
推动大数据潮流的一个趋势是,由如今的IT系统生成和收集的地理空间数据越来越多。常言道,一幅图片的信息量抵得上1000个单词;所以难怪越来越多的地图、图表、照片及其他基于地理位置的内容是导致如今大数据呈爆炸式增长的主要动因。
地理空间分析是一种特殊形式的数据可视化(参阅下面的"可视化"条目),在地理地图上覆盖数据,以帮助用户更清楚地理解大数据分析的结果。
Hadoop
Hadoop是一种开源平台,用于开发分布式、数据密集型的应用程序。它由Apache软件基金会控制。
Hadoop的发明者是雅虎公司的开发者道格o卡廷(Doug Cutting),他在谷歌实验室的MapReduce概念这个基础上开发出了Hadoop,以他儿子的玩具象命名。
另外,HBase是一种非关系数据库,它是作为Hadoop项目的一部分开发而成的。Hadoop分布式文件系统(HDFS)是Hadoop的一个关键组成部分。Hive则是建立在Hadoop基础上的数据仓库系统。
内存中数据库
计算机在处理事务或执行查询时,一般从磁盘驱动器获取数据。但是当IT系统处理大数据时,这个过程可能实在太慢。
内存中数据库系统利用计算机的主内存来存储经常使用的数据,因而大大缩短了处理时间。内存中数据库产品包括SAP HANA和甲骨文Times Ten内存中数据库。
Java
Java是一种编程语言,由现隶属甲骨文公司的Sun开发,于1995年发布。Hadoop和其他许多大数据技术都是使用Java开发而成的,它仍是大数据领域一种主要的开发技术。
Kafka
Kafka是一种高吞吐量的分布式消息传送系统,最初是在LinkedIn开发而成,用于管理该服务网站的活动流(关于网站使用情况的数据)和操作数据处理流水线(关于服务器组件的性能)。
Kafka在处理大量流式数据时很有效,而流式数据是许多大数据计算环境的一个关键问题。由推特开发的Storm是另一种大行其道的流处理技术。
Apache软件基金会已将Kafka列为一个开源项目。所以,别以为这是有缺陷的软件。
延迟时间
延迟时间是指数据从一个点传送到另一个点过程中的延迟,或者是某个系统(如应用程序)响应另一个系统的延迟数量。
虽然延迟时间不是什么新术语,但是随着数据量不断增长,IT系统竭力跟上步伐,如今你更常听到这个术语。简单地说,"低延迟"是好事,"高延迟"是坏事。
映射/化简
映射/化简(Map/Reduce)这种方法是指把一个复杂的问题分解成多个较小的部分,然后将它们分发到多台计算机上,最后把它们重新组装成一个答案。
谷歌的搜索系统用到了映射/化简概念,这家公司有一个品牌名为MapReduce的框架。
谷歌在2004年发布的一份白皮书描述了它使用映射/化简的情况。Hadoop之父道格o卡廷充分认识到了其潜力,开发出了同样借用映射/化简概念的第一个版本的Hadoop。
NoSQL数据库
大多数主流的数据库(如甲骨文数据库和微软SQL Server)基于关系型体系结构,使用结构化查询语言(SQL)用于开发和数据管理。
但是名为”NoSQL”(有些人现在称NoSQL表示”不是只有SQL”)的新一代数据库系统基于支持者们认为更适合处理大数据的体系结构。
一些NoSQL数据库是为提高可扩展性和灵活性设计的,另一些NoSQL数据库在处理文档及其他非结构化数据方面比较有效。典型的NoSQL数据库包括Hadoop/HBase、Cassandra、MongoDB和CouchDB,而甲骨文等一些知名开发商已推出了各自的NoSQL产品。
Oozie
Apache Oozie是一种开源工作流引擎,用于帮助管理面向Hadoop的处理工作。使用Oozie,一系列工作可以用多种语言(如Pig和MapReduce)来加以定义,然后彼此关联起来。比如说,一旦从操作应用程序收集数据的作业已完成,程序员就可以启动数据分析查询任务。
Pig
Pig是Apache软件基金会的另一个项目,这个平台用于分析庞大的数据集。就其本质而言,Pig是一种编程语言,可用于开发在Hadoop上运行的并行计算查询。
定量数据分析
定量数据分析是指使用复杂的数学或统计模型,解释金融和商业行为,或者甚至预测未来的行为。
由于如今收集的数据量急剧增加,定量数据分析已变得更加复杂。但是如果公司知道如何利用海量数据,获得更好的可视性,深入了解公司业务,并且洞察市场发展趋势,那么更多的数据也有望在数据分析方面带来更多的机会。
一个问题是,拥有这种分析技能的人才严重匮乏。知名咨询公司麦肯锡表示,光美国就需要150万名拥有大数据分析技能的分析员和管理员。
关系数据库
关系数据库管理系统(RDBM)是如今使用最广泛的一种数据库,包括IBM的DB2、微软的SQL Server和甲骨文数据库。从银行应用系统、零售店的销售点系统到库存管理应用软件,大多数的企业事务处理系统都在RDBM上运行。
但有些人认为,关系数据库可能跟不上如今数据量和种类都呈爆炸式增长的形势。比如说,RDBM当初在设计时着眼于处理字母数字数据,处理非结构化数据时不是同样有效。
分片
随着数据库变得越来越庞大,处理起来也变得越来越困难。分片(sharding)是一种数据库分区技术,把数据库分成了更小、更容易管理的部分。具体来说,数据库被横向分区,以便单独管理数据库表中的不同行。
分片方法让庞大数据库的片段可以分布在多台服务器上,从而提高数据库的整体运行速度和性能。
另外,Sqoop是一种开源工具,用于将来自非Hadoop来源(如关系数据库)的数据转移到Hadoop环境。
文本分析
导致大数据问题的因素之一是,从推特和Facebook等社交媒体网站、外部新闻源,甚至公司内部收集而来以便分析的文本数量越来越多。由于文本是非结构化数据(不像通常存储在关系数据库中的结构化数据),主流的业务分析工具面对文本时常常束手无策。
文本分析采用了一系列方法(关键字搜索、统计分析法和语言研究法等),从基于文本的数据中获得洞察力。
非结构化数据
就在不久前,大部分数据还是结构化数据,这种字母数字信息(如来自销售交易的财务数据)很容易存储在关系数据库中,并由商业智能工具来分析。
但是如今共计2.7泽字节的存储数据中很大一部分是非结构化数据,比如基于文本的文档、推特消息、发布在Flickr上的照片、发布在 YouTube上的视频,等等。(颇有意思的是,每分钟有长达35个小时的视频内容上传到YouTube。)处理、存储和分析所有这些凌乱的非结构化数据常常是如今的IT系统面临的难题。
可视化
随着数据量的增长,人们使用静态的图表和图形来理解数据越来越困难了。这就导致开发新一代的数据可视化和分析工具,能够以新的方式呈现数据,从而帮助人们理解海量信息。
这些工具包括:标以色码的热图,三维图形,显示一段时间内变化的动画可视化,以及在地理地图上覆盖数据的地理空间呈现。今天的先进数据可视化工具还具有更强的互动性,比如允许用户放大某个数据子集,进行更仔细的检查。
Whirr
Apache Whirr是一组Java类库,用于运行大数据云服务。更确切地说,它可以加快在亚马逊弹性计算云(EC2)和Rackspace等虚拟基础设施上开发Hadoop集群的过程。
XML
可扩展标记语言(XML)用来传输和存储数据(别与HTML混为一谈,后者用来显示数据)。借助XML,程序员们就可以创建通用的数据格式,并通过互联网共享信息和格式。
由于XML文档可能非常庞大、复杂,它们往往被认为导致IT部门面临大数据挑战。
尧字节
尧字节(yottabyte)是一种数据存储度量指标,相当于1000泽字节。据知名调研机构IDC公司估计,今年全球存储的数据总量预计将达到 2.7泽字节,比2011年增长48%。所以,我们离达到尧字节这个大关还有很长一段路,不过从目前大数据的增长速度来看,那一天的到来可能比我们想象的要快。
顺便说一下,1泽字节相当于1021字节的数据。它相当于1000艾字节(EB)、100万拍字节(PB)和10亿太字节(TB)。
ZooKeeper
ZooKeeper是由Apache软件基金会创建的一项服务,旨在帮助Hadoop用户管理和协调跨分布式网络的Hadoop节点。
ZooKeeper与HBase紧密集成,而HBase是与Hadoop有关的数据库。ZooKeeper是一项集中式服务,用于维护配置信息、命名服务、分布式同步及其他群组服务。IT管理人员用它来实现可靠的消息传递机制、同步流程执行及实施冗余服务。