纽约时报实验室引入了可视化流处理工具

  • Michael Hausenblas
  • 王灵军

2014 年 4 月 21 日

话题:语言 & 开发架构

纽约时报研发实验室已经发布了 Streamtools,一个通用的处理数据流的图形化工具。

纽约时报实验室负责 Streamtools 项目的Mike Dewar阐述了该项目的动机:

在过去的 20 多年中,我们已经在处理列表数据的工具上投入了大量资金,从 Excel、MySQL、MATLAB 到 Hadoop、R 和 Python+Numpy。在面临无穷无尽的数据时,这些工具都有种种不足并减弱了我们的创新潜力。为了克服这些不足,我们研发了 Streamtools。

Streamtools 提供了一个能够在浏览器中运行的 GUI,用户可以用它来探究、分析、更改数据流,并从中学习。Streamtools 所定义的操作词汇非常简单:数据通过连接在块之间流动。它们可以互相连接起来共同创建实时数据处理系统,既不需要编程,也不需要复杂的基础设施:

  • 一个块在它所接收的所有消息上执行一些操作,而每个块的类型决定了其可以执行的操作。
  • 每个块拥有零个或多个规则来定义自己的行为。
  • 每个块都拥有一个命名的路由集,这些路由可以接收数据、发送数据或者响应查询。
  • 块之间可以通过路由互联,就是使用连接。
  • 连接块组成的集合称之为模式,我们可以借助于 JSON 格式的描述文档从一个运行的 Streamtools 实例中导出或者导入其所有的模式。

Streamtools 使用Go编写,后者是 Google 发明且日益流行的编程语言。Streamtools 可在 Apache 2 许可证下通过 GitHub获得。Dewar 解释了选择 Go 的理由

我们之所以选择 Go,是因为使用它编写的代码很贴近我们试图呈现给用户的习语。所以每个块都是自己单独的 goroutine,而每个连接都是一对管道。这是个非常简单的抽象,我们希望藉此能让用户很好地理解自己所构建的系统。也就是说编写新块的工作是非常简单的,我们希望这能鼓励社区积极创建他们认为有用的块。同时,使用 Go 还可以写出安全、高性能的代码,这对于我们在纽约时报的日常工作来说很不错。

纽约时报实验室的 Streamtools 团队认为基于流的 API 将会变得更加普遍,同时流的使用改变了我们得出关于这个世界种种结论的方式。

查看原文链接:New York Times Lab Introduces Visual Stream Processing Tool


感谢孙镜涛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发架构