BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース New York Times Labがストリーム処理ツールを公開

New York Times Labがストリーム処理ツールを公開

ブックマーク

原文(投稿日:2014/04/01)へのリンク

The New York Times R&D Labがstreamtoolsを発表した。これはデータのストリームを処理するグラフィカルなツールで一般的な用途で使える。

NY Times Labでこのプロジェクトのリードを務めるMike Dewar氏はこのツールの開発動機を次のように説明する。

この20年間、私たちは表形式のデータを処理するツールに多大な投資をしてきました。Excel、MySQL、MATLAB、Hadoop、R、Python+Numpyなどです。これらのツールは終わりのないデータのストリームを上手く扱えず、私たちの創造性を殺いでしまいます。それでこのstreamtoolsを開発したのです。
streamtoolsはブラウザで動作するGUIを提供し、ユーザは、データのストリームを閲覧し、変更し、分析できる。streamtoolsが定義する操作のボキャブラリは単純だ。データはコネクションを通じであるブロックから他のブロックへ流れる。ブロックを結びつけることでライブデータ処理システムが出来上がる。プログラミングや複雑なインフラも必要ない。
  • ブロックは受け取ったメッセージに基づき、何らかの処理を行う。メッセージがブロックのタイプを定義する。
  • 各ブロックは0以上のルールを持つ。このルールがブロックの挙動を決める。
  • 各ブロックは名前付きルートを持つ。ルートはデータを受け取り、データを出力する。または、問い合わせに対して応答する。
  • ブロックはルートを経由してコネクションによって繋がる。
  • 繋がったブロックの集まりをパターンと呼ぶ。パターンは実行中のstreamtoolsのインスタンスからエクスポート、インポートできる。フォーマットはJSON形式のドキュメント。
streamtoolsはGoで書かれている。Goは次第に人気を集めているGoogleのプログラミング言語だ。streamtoolsはGitHubにホストされている。ライセンスはApache 2。Dewar氏はGoに決めたことについて次のように説明する。
Goに決めたのは私たちがユーザに提示しようとした語彙をほぼそのまま使ってプログラミングができたからです。各ブロックはgoroutineになり、すべてのコネクションはチャンネルのペアになります。これはとても直接的な抽象化で、ユーザがシステムそのものを理解しやすくなると思います。また、新しいブロックを書くのも簡単です。コミュニティが便利だと思うブロックを簡単に作ってくれることを望んでいます。また、Goは安全で効率的にプログラミングできます。日々の仕事に使いやすいのです。
NY Times LabのstreamtoolsチームはストリームベースのAPIがもっと流行し、ストリームを利用することで世界に対する理解の仕方が変わると考えている。

この記事に星をつける

おすすめ度
スタイル

BT