Apache Flinkがプロジェクトのバージョン0.8.0をリリースした。パフォーマンスや互換性,安定性の向上といった一般的な改善の他,これまで欠けていたストリーミング機能に関するScala APIが追加されている。さらに,インキュベータへの参加からおよそ9ヶ月で,Apacheトップレベルプロジェクトへの昇格も果たした。
Apache Flinkは,Apache Soarkと同じような目標を持ったオープンソースプロジェクトである。Hadoopスタック上で動作し,オリジナルのHadoopシステムが持つMapおよびReduce操作よりも強力なデータ操作機能を提供することで,スケーラブルなデータ処理システムの開発を容易にすることを目標としている。
Apache Flinkのコミッタであり,ベルリンを拠点にFlinkを扱うスタートアップであるdata Artisansの共同創設者でもあるKostas Tzoumas氏は先日,Flinkの紹介と2015年のロードマップ概要を提供するプレゼンテーションのスライドを公開した。
Flinkの売り物のひとつとして,Apache Sparkの現行バージョンとの違いを際立たせているのが,SQLデータベースのクエリ最適化と同じようなアプローチの採用だ。Flinkでは,クエリにグローバル最適化を適用することによって,パフォーマンスの向上を実現している。例えば,オペレーションの実行順序を変更してパフォーマンスを改善することや,関連するデータセットの特性に基づいて,指定されたオペレータを実行する実装を選択することが可能だ。
プレゼンテーションでも説明されているように,異なるステップを逐次実行するSparkに対して,Flinkでは一連のオペレーションをパイプライン方式で実行することができる。
さらにFlinkでは,グローバル最適化を行うために,イテレーションなどのオペレータも提供されている。forループの中でクエリを発行する代わりに,イテレーションをクエリの一部として宣言するような方法が可能だ。
2015年の開発計画を紹介するロードマップには,メモリやフォールトトレランスの改善,インタラクティブな運用のサポート,バッチとストリームの統合,機械学習ライブラリMahoutとの統合などが盛り込まれている。
Flinkは元々,現在も継続中の研究プロジェクトであるStratosphereの一部分として開発が開始された。先頃ドイツ政府によって設立された,機械学習とスケーラブルなデータ処理を目標とする研究機関であるBerlin Big Data Centerでは,Flinkが中心的なプラットフォームとして使用されている。