`
mikie_1
  • 浏览: 1272 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

用户角度来看IBM InfoSphere Streams

阅读更多

 

   因为工作需要了解IBM InfoSphere Streams这个产品,花了点时间参考资料整理了一份文档, 当然里面的内容有自己个人理解的,也有从各个文档中引用来的。 如果有任何不对的地方或者其他,请谅解。

 

目录:

前言 1

IBM InfoSphere Streams 是什么? 1

IBM InfoSphere Streams 能做什么?怎么做到的? 3

IBM InfoSphere Streams 有什么特点? 5

IBM InfoSphere Streams的使用场景,我们需要考虑哪些方面? 7

参考文档: 8

前言

    本文是站在用户的角度对IBM的一款产品InfoSphere Streams的一个介绍。文章内容主要是阅读、了解了互联网上关于InfoSphere Streams各类技术的、产品的介绍之后结合个人理解的一个总结,如有谬误敬请谅解。 参考的相关知识主要是来自IBM公开的文档库中InfoSphere Streams相关,可查看最后一节列出的文档地址。

 

 

IBM InfoSphere Streams 是什么?

 

     首先引述该产品红皮书中的一段描述:

  Streams (IBM InfoSphere Streams) is a product architected specifically to help clients Continuously analyze massive volumes of streaming data at extreme Speeds to improve business insight and decision making.

   InfoSphere Streams是一款架构(平台性)产品,旨在帮助客户持续(实时)分析极速产生的海量数据流,以提高企业的业务洞察力和决策制定。

 

下面再结合一些资料做些更具体的阐述:

    “一款平台产品”指出了它的属性,实际上它是一个中间件,用作某一类场景下的通用的解决方案。具体来说,当在应对此类场景时,可以使用InfoSphere Streams的平台,并根据自身业务在其之上定制或者构建处理,从而实现解决。就好像在处理大数据时,我们采用Hadoop框架,并在框架内实现具体分析这一过程。单就产品类型而言,可以想象下我们比较熟悉的webSphere,它们是同一类的产品,只是用来应对不同的场景。

     上段描述引出一个问题,Streams是针对某类场景的解决方案,那么“某类场景”具体指的是什么?它是怎么解决的?以及能解决到何种程度?

     简单来讲,这个场景指“需要对高速持续不断产生的海量数据进行快速甚至实时响应(处理)”,是通过在一定规模的分布式集群中并行采用“流计算”来实现,最终以期对大数据的实时分析来达成“洞察”。具体细节后续将给出详细说明,此处先来说说提出的一个概念“流计算”。

a.什么是流计算?

IBM提出的一个概念,该计算方式同时也是Streams实现的核心基础。

先简单理解下静态数据和动态数据,每个人都非常了解静态数据:文件和数据库,即磁盘上已被固定格式的数据。而动态数据想象一部电影屏幕上源源不断的图像,一部电影就是动态数据

通常的数据处理流程中,总是先收集数据ETL过程)Database中,当在需要的时候通过DB(搜索引擎)对数据做query,也就是说通常我们的事件处理都是针对静态数据的queries 而流计算则是针对动态数据的,“处理数据先要拥有数据,而当数据流入时,实际上你已经拥有它”,流计算指的就是对持续数据流的实时处理。此处流计算的概念看起来很玄乎,但就我个人结合资料总结直白一点:“按照定义好的关注点,先过滤、筛选、分类持续进来的数据,然后发给各自的事件处理”。数据流很容易让人想到水流,我简单画了和水流相关的形象以作类比:


 
IBM关于流计算给出的两种示例图(上为一般过程,下为流计算过程)


 
流计算的无需考虑存储I/O的瓶颈,无需考虑数据检索。如今,DBA 和其他 IT 人员花费了大量时间来创建多维数据集并将数据填入它们之中” IBM 的 IBM InfoSphere Streams 产品经理 Roger Rea 说。这一现象即将改变。在未来,无需读取数据,进行转换,然后进行加载,您将在查询时尽可能快地加载并转换它...花这么大篇幅只是想让大家能理解“流计算”, 然后不要把它想复杂,本质就是将queries操作提前到刚收到数据的那一刻。  顺便学习下IBM是怎样做概念的。

 

 

IBM InfoSphere Streams 能做什么?怎么做到的?

对高速持续的海量数据进行实时分析已达成洞察。 究竟什么样级别数据才算“高速持续海量”它的相关文档里并没有具体给出标准, 不过这项技术的诞生背景

“海量的高可变性、高速数据(有时在几小时内就会达到几 TB)必须收集,与来自其他渠道的信息相结合,并以极快的速度进行分析,以查找入侵者,检测地震事件或查找设备损坏”“我们需要在高速传送带传送来数据后立即进行分析。我们不敢奢望首先对它进行结构化并放入数据库中,因为我们希望能够在 2 到 3 秒内对它进行分类”

以及几篇文章的举例来看, TB/这样的数据级别才符合他们的胃口。

InfoSphere Streams 可以在数据运动过程中捕捉并分析关键信息,并把结果立即发送给某人或另一台计算机。该平台能够处理极大的数据吞吐率,可达到每秒数百万事件或消息”,具体是如何做的?

 将所谓的“流计算”放在一个分布式的集群环境上, 让成千上万个流计算并行执行。

用“流计算”来解决实时响应的问题,大规模集群分布式计算解决大数据的问题。所以实质上大数据解决之道最终是落在分布式计算上的。

InfoSphere Streams 旨在从一个几分钟到几小时的窗口中的移动信息(数据流)中揭示有意义的模式。该平台能够获取低延迟洞察,并为注重时效的应用程序(比如欺诈检测或网络管理)获取更好的成果,从而提供业务价值。所以明确“大数据处理”和“大数据的实时处理”是使用Steams意义的重要前提。

      再来看他具体是如何实时的(或者说尽量降低延迟),下图左可看做不同数据源流入的数据源,右作为结果,中间红色圆是一个计算节点。 现在想像一下数据源源不断从左边流动进来,每个节点都是同时运作的,而且每个节点的计算程式可以由多台机来并行运行,那么在任何一个时间切面,数据都是布满所有节点,并沿着特定的路线“流动”,而计算结果则是被连续的输出。此处的节点只是逻辑层面的“任务job”含义,和物理机的分布不直接相关。在此,这里“流”的范围应该只是从“源数据”到“关注数据”的过程,类似传统处理中“源数据-ETL-queries-关注数据”的过程。Streams所致力解决的也正是这个过程,不要将范围扩大

 
试举一个例子来说明它致力解决的事,比如现在有一个全球舆情监控系统,目前已经可实时“截获”几家大网站的用户上传信息,比如TwitterFaceBook(文本信息)youtube(视频信息)instagram(图片信息)skype(语音信息)等等。 Streams想解决的问题是“近乎实时的将来自恐怖组织地区用户的关于不利于美国的所有文本,言论,照片,视频资料筛选出来, 然后发给FBI. Streams帮助用户快速开发针对流数据进行数据获取、过滤、分析及关联处理程序。

 

 

 

 

    至于每个节点具体怎么计算或者支持什么样的计算,在Streams的特点章节会简要介绍。

 

IBM InfoSphere Streams 有什么特点?

    InfoSphere Streams 主要包括流处理运行平台、流处理开发环境以及复杂分析工具箱和加速器三部分:

     流处理运行平台

     流处理运行平台就是基于Streams开发的应用的实际运行环境。它提供可扩展的集群环境,能够帮助用户搭建超过 100 个节点的集群,拥有极强的扩展能力。支持 RHEL 及 CentOS 操作系统。这里值得注意的是,虽然Streams 没有限制使用的硬件,也可以在并行度比较低的系统上运行,但是基于Streams适用场景,这种系统的硬件最好是刀片服务器组,或者 IBM System p 等其他并行处理系统,或者大规模并行的 IBM Blue Gene/P 下图说明了集群环境中的不同类型Host的关系。

 
流处理开发环境

    包括一个基于 Eclipse 的 IDE 开发平台,支持鼠标拖拽方式快速开发、调试 SPL(Streams Processing Language) 应用程序。SPLIBM专门为Streams设计的一种编程语言,如果您熟悉 语言、Java™ 编程语言和 Python,那么应该很快就会熟练使用 SPL这类开发IDE你可以类比成Visual Studio,所有开发相关可以一站式解决。

     库(工具箱)

     Streams 还针对复杂的分析以及特定场景提供了多种工具箱,主要是帮助用户可以快速的接入各种形式的数据源的工具, 对非结构化信息处理的工具 ,以及支持以各种方式输出结果的工具。可类比成JAVA开发中的JAR包。

     其声称“支持任何类型的数据”。

 

IBM InfoSphere Streams的使用场景,我们需要考虑哪些方面?

如果计划使用这个Streams平台,我自己总结了需要考虑的事项,如下:

1.“大材小用”

       “致力于实时分析高速的海量数据流。” 引出至少4个问题需要考虑:

        a.我们的数据需要实时分析吗?(有别于实时响应)

        b.是海量数据吗?

        c.是持续不断流入吗?

        d.流入速度很高吗?

      这里当然不是说我们的数据特点需要同时满足以上所有需求才能用Streams平台,而在讨论有没有必要使用。 比如你数据虽然很多,PB甚至ZB基本,但都是以大文本形式拿到的,那这份数据本身就意味着已经延时了,你自然可以再将其动态化之后再走Streams,但是在此之前,需要想好有必要吗?

2.Streams应用场景的一个隐含的约束。

    也许你已经意识到,上面通篇都没有提到“业务”, 没错,再次强调Streams实质上主要是 源数据转换成关注数据 这一步骤上的解决方案。 基本内容就是数据的

筛选,转换和整合,当然其结果可能是被用作某一具体业务的, 但Streams本身的边界只是到将 关注数据 数据输出。 

   3.使用Streams 需要自上向下的构建。

      自上向下指的是需要由 有一定决策权限的 部门或团队主导,逐步向下推行实 现。这个很显而易见的,大数据分析平台其本身就暗示了对数据源多样性(渠道、形式、内容)的一定要求。 那具有数据资源话语权便是隐含的前提。

   4.实时分析的正确理解。

 如果说对一组静态的大数据做一些分析以试图找出某些特定规律,这个很好理解。

那么Streams实时分析都能做什么分析呢,按我的理解,它应用最多的还是集中在基于数据内容的筛选、转换、合并整理。

     所以你的场景是需要对海量数据筛选再加以处理 , 还是说关注整个历史从而发现某些行为关系。

   5. 封闭的生态环境

     Stream自有的编程语言,开发环境,运行环境 , 这些都是相对封闭的。

   6.其他产品。

      大公司很多都是这样,“你单独使用这个产品也是可以的, 但是要发挥它真正的性能,需要配合使用我们的...., Streams很多文章或明确或暗示了这种情况的存在。

一旦你使用了Streams,但要使它真正发挥能力,你或许需要不断的买其他产品。 

 

参考文档:

相关参考文档包括且不限于:

1.到底什么是流计算(Stream Computing)

http://blog.csdn.net/historyasamirror/article/details/3719710

2.流计算:即时信息(入门级)

http://blog.csdn.net/historyasamirror/article/details/3551049

3.谈2011年风靡的数据流计算系统

http://www.programmer.com.cn/9642/

4.流计算的发明

http://www-31.ibm.com/ibm/cn/ibm100/icons/streamcomputing/index.shtml

5.InfoSphere Streams 简介

http://www.ibm.com/developerworks/cn/data/library/bd-streamsintro/index.html

6.使用 InfoSphere Streams 实现社交媒体数据实时文本分析

http://www.ibm.com/developerworks/cn/data/library/bd-1409-infospheresreams-textanalysis/index.html

7.驾驭大数据

http://www.ibm.com/developerworks/cn/data/dmmag/dbt16n2/BigData/index.html

8.实时流计算入门

http://www.ibm.com/developerworks/cn/data/library/bd-getstartedstreams/index.html

 

 

  • 大小: 301.1 KB
  • 描述: IBM关于流计算的实例图
  • 大小: 85.9 KB
  • 大小: 29.2 KB
  • 大小: 32.5 KB
分享到:
评论

相关推荐

    解读IBM InfoSphere大数据分析平台

    总结来说,IBM InfoSphere大数据分析平台通过BigInsights和Streams两个核心组件,为企业提供了全面的大数据解决方案。BigInsights优化了Hadoop,增强了数据分析能力,而Streams则专注于实时数据处理,两者共同为企业...

    IBM InfoSphere BigInsights Version 2.1 Installation Guide

    IBM InfoSphere BigInsights Version 2.1 Installation Guide

    streams-transport-tests:测试 IBM InfoSphere Streams 的不同序列化传输选项的性能

    总的来说,`streams-transport-tests`项目为优化IBM InfoSphere Streams的应用性能提供了一种实用的工具,通过对各种序列化选项的详尽测试,有助于确保在大数据处理中的高效传输和低延迟。这不仅对于提高系统整体...

    IBM InfoSphere BigInsights Version 3.0.0安装手册

    通过以上内容,可以看出IBM InfoSphere BigInsights Version 3.0.0安装手册不仅为用户提供了安装软件所需的所有步骤,还提供了一定程度的技术背景知识和最佳实践。确保用户在安装之前了解产品特点和安全配置的要求,...

    IBM InfoSphere DataStage 集群配置管理与应用实践

    IBM InfoSphere DataStage 集群配置管理与应用实践,里面详细介绍了如何对DataStage进行集群的配置,步骤详细。

    IBM Infosphere Warehouse V9.5

    IBM Infosphere Warehouse V9.5 是IBM公司推出的一款先进的企业级数据仓库解决方案,旨在帮助企业管理和分析海量数据,提升业务洞察力,并支持决策制定。这款产品是IBM Information Management Software的重要组成...

    IBM 大数据训练营资料

    - **Data Explorer概述**:IBM InfoSphere Data Explorer是一个快速数据探索工具,帮助用户轻松地查找、理解和使用组织中的数据。 - **关键技术**:包括数据目录服务、元数据管理等。 - **实际应用**:介绍了如何...

    IBM分析大数据平台架构

    IBM InfoSphere Streams 是 IBM 大数据平台中支持构建和部署持续实时分析 应用程序以分析动态数据的技术组件。这些应用程序将持续不断地寻找数据流 中的模式。检测到模式后,将分析模式的影响,并即时制定实时决策,...

    IBM InfoSphere CDC for DB2 LUW 中文文档

    ### IBM InfoSphere Change Data Capture (CDC) for DB2 LUW 版本 6.5.2 #### 一、概述 IBM InfoSphere Change Data Capture (CDC) for DB2 for Linux, UNIX, and Windows (简称 DB2 LUW) 是一款强大的数据库变更...

    InfoSphere_Information_Server_v8.7_On_Aix_安装配置步骤

    整个安装流程涉及到了ETL过程的关键工具IBM InfoSphere DataStage,它提供了图形化的界面来设计和执行复杂的数据集成任务。同时,IBM InfoSphere QualityStage用于数据清洗和质量提升。这两个工具结合使用,可以有效...

    IBM Information DataStage V11.5安装部署操作手册.docx

    IBM Information DataStage V11.5安装部署操作手册 IBM Information DataStage V11.5是一款功能强大的数据集成工具,它可以帮助企业集成各种数据源,进行数据转换、数据清洁和数据分析等操作。下面是关于IBM ...

    IBM_InfoSphere_CDC入门资料

    IBM InfoSphere CDC(Change Data Capture)是IBM提供的一款强大的数据集成解决方案,专门用于捕捉和传输数据库中的变化数据。它解决了企业中的数据孤岛问题,通过实时的数据整合,帮助企业实现业务智能、实时报表、...

    docker-infosphere-streams

    docker-infosphere-streams docker-infosphere-streams 是一个容器定义,用于管理单个主机上的简单 InfoSphere Streams docker 集群的生命周期。 Rake 用于快速、轻松且可重复地调用 docker 命令来构建和运行容器...

    IBM information server 入门实战

    从提供的文件内容来看,这是一本关于IBM信息服务器实战操作的指南,具体涉及到了DataStage这一组件的使用。DataStage是信息服务器中用于数据整合的主要工具,它支持多种并行处理架构,可以高效地进行大规模数据的...

    Understanding Big Data

    You’ll get a primer on Hadoop and how IBM is hardening it for the enterprise, and learn when to leverage IBM InfoSphere BigInsights (Big Data at rest) and IBM InfoSphere Streams (Big Data in motion)...

    IBM Streams企业级大数据平台-集成测试报告.docx

    - InfoSphere Streams企业域内的高可用性配置,利用Zookeeper集群来实现管理服务的HA部署,保证服务的稳定运行。 5. 应用场景功能及性能测试: - 测试场景1:信令分析,模拟了通信网络中的大量信号数据流,评估了...

    IBM big data 培训资料

    IBM的大数据解决方案基于其BigInsights、InfoSphere BigInsights、Netezza和InfoSphere Streams等产品,构建了一个全面的数据处理平台。这些工具提供了一整套功能,包括Hadoop分布式文件系统(HDFS)、MapReduce编程...

Global site tag (gtag.js) - Google Analytics