【アパッチフリンク】

Apache Flink(フリンク) とは?

💡 流れるデータを止めずに処理する高速エンジン
📌 このページのポイント
Apache Flink ストリーム処理フロー Kafka IoTセンサー DB変更ログ データソース フィルタ/変換 ウィンドウ集計 結合/パターン検出 Apache Flink チェックポイント(Exactly-once保証) ダッシュボード データレイク アラート通知 出力先
Apache Flinkのストリーム処理フロー
ひよこ ひよこ

ストリーム処理って、データが来るたびにすぐ処理するってこと?

ペンギン先生 ペンギン先生

そうだよ。たとえばECサイトで注文が入った瞬間に不正検知するとか、IoTセンサーのデータをリアルタイムに集計するとか。データを溜めてから処理するバッチと違って、流れてくるデータをその場で処理するんだ

ひよこ ひよこ

SparkのStructured Streamingとはどう違うの?

ペンギン先生 ペンギン先生

Sparkはもともとバッチ処理エンジンにストリーム機能を後付けした設計だけど、Flinkは最初からストリーム処理をネイティブに設計しているんだ。だからレイテンシがSparkより低くなる傾向があるよ

ひよこ ひよこ

Exactly-onceって何がすごいの?

ペンギン先生 ペンギン先生

分散システムでは障害でデータが重複処理されたり欠落したりしがちなんだ。Flinkはチェックポイント機構で「どんな障害が起きても各レコードを厳密に1回だけ処理する」ことを保証してくれる。お金の計算に関わるシステムでは必須の機能だね

ひよこ ひよこ

どんな会社が使ってるの?

ペンギン先生 ペンギン先生

Alibaba、Netflix、Uber、LinkedInなど大規模データ処理が必要な企業で広く使われているよ。特にAlibabaはFlinkに大きく貢献していて、独身の日セールのリアルタイム処理にも使っているんだ

ひよこ ひよこ

Flinkは学ぶの難しい?

ペンギン先生 ペンギン先生

Java/ScalaAPIに加えてFlink SQLというSQLライクなインターフェースもあるから、SQLが分かれば始められるよ。最近はAWSやAlibabaのマネージドサービスもあるから、インフラ管理の手間も減っているんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Apache Flink」って出てきたら「データをリアルタイムに流しながら処理する分散エンジン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Apache Flink」 = アパッチフリンク
💬 Flinkはドイツ語で「素早い」という意味。ベルリン工科大学発のプロジェクトだからドイツ語なんだよ
← 用語集にもどる