ここ何回かNiFiについて書いていますが、調べてみるとNiFiに似た画面からデータフローを定義するプロダクトが複数あったため、一度まとめてみようと思いたち、まとめてみました。
尚、はじめに書いた時点で情報を網羅できるわけではないため、もし何か新しい情報がわかったり、新しいプロダクトが見つかったらその都度追記していきます。
プロダクト一覧
今回確認対象とするプロダクトは下記です。
- Apache NiFi(https://nifi.apache.org/)
- Apache Apex(https://www.datatorrent.com/project-apex/)
- Cask Hydrator(http://cask.co/product/)
- Node-RED(http://nodered.org/)
比較表
とりあえず概要を表にしてみると下記のような感じになります。
項目 | Apache NiFi | Apache Apex | Cask Hydrator | Node-RED |
---|---|---|---|---|
関連企業 | Hortonworks | DataTorrent | Cask Data | IBM |
実装言語/実行環境 | Java | Java | Java + Node.js | Node.js |
ライセンス | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 |
モジュール追加拡張 | 可能 | 可能 | 可能 | 可能 (リポジトリもある) |
分散スケールアウト | 可能 | 可能 | 可能 | - |
分散時クラスタ管理 | 独自クラスタ | YARN | YARN | - |
各プロダクト詳細
Apache NiFi
概要は下記のページ参照。
データフローオーケストレーションツールApache NiFiとは?
Apache NiFiのそもそものコンセプトは?
Apache Apex
DataTorrent社が開発しているプロダクトで、下記のような画面からリアルタイムの分散ストリーム処理やバッチ処理が構築可能。
かつ、プロジェクトのトップページを見るとStormやSparkと比べてこれだけ優れている、という項目が列挙されたページになっています。
ただ、Community Edition、Standard Edition、Enterprise Editionと複数Editionが存在しており、サポートを提供するのではなく、明示的にCommunity Editionは機能が少ない模様。
有償モジュールを提供しているようなノリのようです。
Cask Hydrator
Cask Data社が開発しているプロダクトで、The Cask Data Application Platform (CDAP)という基盤のUI部分を担当するプロダクト。
下記のような画面でデータフローが定義可能になっています。
ムービーを見てみるに、データスキーマが非常に定義しやすい作りになっています。
Apache Apexと同様にEditionの違いはありますが、Cask Hydrator側は主にサポートによる差分になるようです。
Node-RED
実はこの手のツールで一番有名になると思います。
IBMがOSSとして公開したデータフロー定義ツールで、IoTアプリケーションを簡単に作れる、がフレーズになっています。
下記のような画面でデータフローが定義可能です。
ユーザが作成したコンポーネントのリポジトリも存在しており、多くのコンポーネントがあがっています。
ただ、残念ながら分散スケールアウトの仕組みは備えておらず、スケーラビリティに不安があります。
とはいえ、これらの中で一番簡単に使えるのも確かであるため、小規模なものであれば一番早く構築できると思います。
(私が資料などから読み取れていないからかも知れませんが・・)
どれを使うべきなの?
ざっと見た限り、Apache NiFi、Apache Apex、Cask Hydratorは保持している機能もレベルも似通っており、正直甲乙つけがたい状況です。
ただ、如何せんApache Apex、Cask Hydratorは情報がページから読み取りにくい構成になっており、色々見落としている可能性も多々あります。
また、ページを見た個人的な印象からすると、Apache ApexやCask Hydratorはページがその企業のページと一体化しており、かつエディションの違いによって今後の発展がいまいち見えにくかったりするというのはあります。
Node-REDはそういう印象は受けないのですが、分散デプロイによるスケールアウトが出来ないのが勿体ない所ですね。
というわけで、私としてはしばらくはApache NiFiをメインで見て行こうかなという結論です。
一つのプロダクトをそれなりに深く見て行かないと、評価軸というのも見えませんし。
ですので、寄り道はしましたが次回こそNiFiですかね。