【アパッチフリンク】

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はドイツ語で「素早い」という意味。ベルリン工科大学発のプロジェクトだからドイツ語なんだよ
← 用語集にもどる