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

原创 2009年01月06日 11:03:00
我写这篇文章的当前时间是 2009年1月5日。

在这一天用google或者是Baidu搜索“stream computing”,出现在首页最多的是关于ATi发布“stream computing”技术的新闻网页。
这里的“stream computing”技术是指“通过GPGPU(general purpose GPU)来执行一般的运算指令”,使得计算机的运算速度能够大幅度提高。
可惜,这里的流计算不是我想说的技术。

如果你耐心再好一点,会发现搜索出来的结果中有几条是和IBM有关的,再细一点,是和IBM的一个“System S prototype”相关的新闻。
这是我想要的。
IBM的System S是一个完整的计算架构,通过“stream computing”技术,可以对stream形式的数据进行real-time的分析。

有很多的新闻将这两者混为一谈,但其实这完全是两个东西,一个是硬件技术,在GPU中运行一般的指令以提高运算速度;还一个是针对stream data的分析技术。

那么,IBM所宣称的“stream computing”到底是什么呢?(说到这插段题外话。话说前几日和大学同学聚餐,有人问在IBM的同学“IBM最强的地方在哪里”,答曰“做概念” ^_^)
我们也许能从System S这个系统的描述中找到答案。

在这里[1],可以找到System S的描述;此外,还有关于System S架构的介绍[2]:
这些文章中,提到了System S的项目需求是“require systems and applications that enable efficient extraction of knowledge and information from potentially enormous volumes and varieties of continuous data streams”——使得系统和应用程序能够从庞大且多样的连续数据流当中提取有效的知识和信息。
为了满足这个需求,“System S provides an execution platform and services for user-developed applications that ingest, filter, analyze, and correlate potentially massive volumes of continuous data streams.”——System S提供的是一个平台和服务,在这个平台上,用户开发的程序能够对庞大的连续数据流做提取,过滤,分析等操作。
文中还提及了System S的目标:
1. Parallel and high performance stream processing software platform capable of scaling over a range of hardware capability。
    并行且高性能的流运算软件平台,具有硬件能力的可扩展性。(以下三条我就不翻译了...)
2. Agile and automated reconfiguration in response to changing user objectives, available data, and the intrinsic variability of system resource availability
3. Incremental tasking in the face of rapidly changing data forms and types
4. Secure, privacy-compliant, and auditable execution environment

此时我们能够对于System S有一个基本的认识,它其实可以看做是一个middleware或者platform,一个针对stream data的middleware。这个平台所具备的对于stream data的那些分析的技术就是IBM所宣称的“stream computing”。

在传统的数据处理流程中,总是先收集数据,然后将数据放到Database中,人们需要的时候通过DB对数据做query,得到答案。
这样的一个流程隐含了两个前提:
1. data is old。当人们对DB做查询的时候,里面数据其实过去某一个时刻数据的一个snapshot,数据已经老了,可能已经过期了。
2. 这样的流程中,需要人们主动的发出query。也就是说,human active, DB passive。
但在某些时候,这两个前提都不存在。例如股票市场中,数据总是不断的产生,人们需要根据当前的数据实时的作出判断;并且,由于数据量太大,人们希望设定某种条件,当数据满足这些条件时系统能够主动的通知人并且自动的进行操作。在这种情况下,前提发生了变化:
1. 对data stream能够作出real-time response。
2. human passive, DB active。
正是由于有了这样的需求,发展出了针对stream的处理技术。IBM的“stream computing”只是对于这种技术的又一种命名。其实早在System S出现之前,就已经有了很多关于stream processing技术的研究。
Aurora[3]就是很好的一个例子。它是由MIT等三所大学合作完成的项目,它的目的就是为了实现“ the ability to handle huge volumes of continuous data streams arriving in real-time; to be able to function efficiently under uncertainty in data, and to be able to deliver results in a timely fashion.”
如果对这个项目感兴趣,可以去看看和它相关的论文。有很多且非常详细,通过学习Aurora,你会对stream processing技术有更加深入的了解。

我对于流计算的解释到这里基本上就结束了。我希望这篇文章能够让你对于流计算是什么(What)能够有一个简单的认识。但是这里并没有涉及任何和How有关的知识,首先是因为这些技术比较新,还没有形成一个完整的知识体系,其次是因为牵扯到的东西实在太多,很难简短的解释清楚。



参考文献:
[1] http://domino.research.ibm.com/comm/research_projects.nsf/pages/esps.index.html
[2] http://domino.research.ibm.com/comm/research_projects.nsf/pages/esps.Projects.html
[3] http://www.cs.brown.edu/research/aurora/

相关文章推荐

流式计算的理论与技术

流式计算的理论与技术流式数据是大数据环境下的一种数据形态,其理论诞生于20世纪末,并在云计算和物联网发展下逐步成为当前的研究热点。流式数据与传统的数据是相对的。与静态、批处理和持久化的数据库相比,流式...
  • tagsT
  • tagsT
  • 2015年11月04日 20:15
  • 2628

大数据流式计算:关键技术及系统实例

转载自: 摘要:大数据计算主要有批量计算和流式计算两种形态,目前,关于大数据批量计算系统的研究和讨论相对充分,而如何构建低延迟、高吞吐且持续可靠运行的大数据流式计算系统是当前亟待解决的问题且...

现今实时流计算模型

1.引言 近年来,一种新的数据密集型应用已经得到了广泛的认同,这类应用的特征是:数据不宜用持久稳定关系建模,而适宜用瞬态数据流建模。这些应用的实例包括金融服务、网络监控、电信数据管理、Web应用...
  • z_l_l_m
  • z_l_l_m
  • 2012年11月27日 22:30
  • 6835

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

传统的数据操作,首先将数据采集并存储在DBMS中,然后通过query和DBMS进行交互,得到用户想要的答案。整个过程中,用户是主动的,而DBMS系统是被动的。但是,对于现在大量存在的实时数据,比如股票...

HAWQ技术解析(二) —— 安装部署

一、安装规划1. 选择安装介质        HAWQ的安装介质有两种选择,一是下载源码手工编译,二是使用Pivotal公司提供的HDB安装包。源码的下载地址为http://apache.org/dy...
  • wzy0623
  • wzy0623
  • 2017年02月15日 17:56
  • 4092

关于数据仓库 — ODS概念

ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需 求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。根据Bill.Inmon...

ATI Stream Computing Overview.pdf

  • 2010年03月06日 13:04
  • 817KB
  • 下载

STREAM COMPUTING ON GRAPHICS HARDWARE

  • 2009年05月05日 19:35
  • 639KB
  • 下载

Gensim官方教程翻译(六)——分布式计算(Distributed Computing)

为何要分布式计算?需要构建一个百万文档级语料库的语义代表,却耗时太~~长?手上有几个可用的闲置计算机?分布式计算力争通过将给定的任务切分为几个小型任务,并将这些任务指派给几台平行的计算机完成来实现加速...

ATI stream computing 使用手册

  • 2009年10月16日 22:51
  • 2.59MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:到底什么是流计算(Stream Computing)
举报原因:
原因补充:

(最多只允许输入30个字)