来自多个来源的信息正在以难以置信的速度增长。互联网用户数量在 2012 年已经达到 22.7 亿。每一天,Twitter 都会生成超过 12 TB 的 tweet,Facebook 生成超过 25 TB 日志数据,纽约证券交易所采集 1 TB 交易信息。每天会创建大约 300 亿个射频识别 (RFID) 标记。此外,每年销售的数亿台 GPS 设备,目前正在使用的超过 3000 万个连网的传感器(而且每年在以高于 30% 的速度增长),都在产生数据。这些数据量预计在未来 10 年中每 2 年就会翻一番。
一家公司在一年时间内可生成高达数 PB 的信息:网页、博客、单击流、搜索索引、社交媒体论坛、即时消息、文本消息、电子邮件、文档、用户人口统计数据、来自主动和被动系统的传感器数据,等等。许多人估计,这些数据中高达 80% 都是半结构化或非结构化数据。公司一直在寻求更加敏捷地经营业务,以更加创新的方式执行数据分析和决策流程。而且他们认识到,这些流程中损失的时间可能导致错失业务机会。大数据挑战的核心是,公司掌握轻松地分析和理解互联网级信息的能力,就像他们现在可分析和理解较少量结构化信息一样。
图 1 展示了从极大量、多样性和高速产生的上下文数据中提取洞察的大数据挑战,这在以前是无法做到的。
图 1. 大数据挑战
在 图 1 中,Volume 指数据规模,从 TB 级到 ZB 级。Variety 指许多不同结构中的数据复杂性,从关系数据到日志再到原始文本。Velocity 反映了流数据和大规模的数据移动。
IBM 正在帮助公司应对大数据挑战,为他们提供工具来集成和管理海量、高速产生的数据,应用原生格式的分析,可视化可用数据以进行专门分析,等等。本文将介绍 InfoSphere Streams,该技术支持您同时分析许多数据类型并实时执行复杂计算。您将了解 InfoSphere Streams 的工作原理,它的用途,以及如何结合使用它与另一个用于大数据分析的 IBM 产品(IBM InfoSphere BigInsights)来执行高度复杂的分析。
InfoSphere BigInsights:概述
理解 InfoSphere BigInsights 将会使您能够更全面地理解 InfoSphere Streams 的用途和价值。(如果您已熟悉 BigInsights,可跳到 下一节。)
BigInsights 是一个分析平台,可帮助公司将复杂的互联网级信息集转换为洞察。它包含一个套装的 Apache Hadoop 发行版(具有高度简化的安装流程)和用于应用程序开发、数据移动和集群管理的关联工具。得益于简单性和可伸缩性,Hadoop(MapReduce 框架的一种开源实现)在行业和学术界获得的巨大的成功。除了 Hadoop 之外,BigInsights 中的其他开源技术(除 Jaql 外的所有技术都属于 Apache Software Foundation 项目)包括:
Pig:该平台提供了一种高级语言来表达分析大数据集的程序。Pig 配备了一个编译器,可将 Pig 程序转换为 Hadoop 框架执行的 MapReduce 作业序列。 Hive:一个构建于 Hadoop 环境之上的数据仓库解决方案。它为 Hadoop 的非结构化世界带来了人们熟悉的关系数据库概念,比如表、列和分区,以及 SQL 的一个子集 (HiveQL)。Hive 查询被编译为使用 Hadoop 执行的 MapReduce 作业。 Jaql:IBM 专为 JSON(JavaScript Object Notation,JavaScript 对象表示法)开发的一种查询语言,提供了一种类似 SQL 的接口。Jaql 适度地处理嵌套,高度面向函数,而且非常灵活。它适用于松散的结构化数据,是 HBase 列存储和文本分析的接口。 HBase:一个面向列的 NoSQL 数据存储环境,旨在支持 Hadoop 中大型、稀疏填充的表。 Flume:一种分布式、可靠且可用的服务,用于高效地移动生成的大量数据。Flume 非常适合从多个系统中收集生成的日志,在它们插入 HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统)。 Lucene:一个搜索引擎库,提供了高性能的、全功能的文本搜索。 Avro:一种数据序列化技术,使用 JSON 来定义数据类型和协议,以一种紧凑的二进制格式对数据执行序列化。 ZooKeeper:一种维护配置信息和命名,提供分布式同步和分组服务的集中化服务。 Oozie:一个工作流调度程序系统,用于管理和编排 Apache Hadoop 作业的执行过程。
此外,BigInsights 发行版还包含以下 IBM 独有的技术:
BigSheets:一种基于浏览器、类似电子表格的查询和探索接口,使业务用户能够轻松地收集和分析数据,利用 Hadoop 的强大功能。它提供了内置的阅读器,可处理多种常见格式的数据,包括 JSON、逗号分隔值 (CSV) 和制表符分隔值 (TSV)。 Text analytics:常见业务实体的文本注释符的一个预先构建的库。它提供了
丰富的语言和工具来构建自定义位置注释符。 Adaptive MapReduce:一个 IBM Research 解决方案,通过更改 MapReduce 任务的处理方式来加速小型 MapReduce 作业的执行。
一般来讲,BigInsights 的设计并不是为了取代一种传统的关系数据库管理系统 (DBMS) 或传统的数据仓库。具体来讲,它没有针对对表列数据结构的交互式查询、在线分析处理 (OLAP) 或在线事务处理 (OLTP) 应用程序而优化。但是,作为 IBM 大数据平台的组成部分,BigInsights 提供了与该平台的其他组件(包括数据仓库、数据集成和治理引擎)和第三方数据分析工具的潜在集成点。在本文后面将会看到,它还可与 InfoSphere Streams 集成。