著者: 禅とコンピュータープログラミングの芸術
1 はじめに
データ フローは、データを生成、保存、処理する継続的なプロセスです。従来、データ フロー プログラミングは特定のプラットフォーム (メッセージ キュー、データ ウェアハウス、イベント ソーシングなど) の SDK または API に基づいて開発されていましたが、クラウド コンピューティングとコンテナ テクノロジーの発展に伴い、オープン ソースの使用を選択する企業が増えています。独自のビッグ データ処理システムを実装するためのツール。Apache Flink と Apache Kafka という 2 つのオープン ソース プロジェクトは、豊富なデータ処理機能を提供します。
この記事では、Flink と Kafka の基本的な使い方から始まり、これら 2 つのフレームワークを使用してリアルタイム データ フロー パイプラインを構築する方法を事例を使用して紹介します。この記事を読むと、読者は次の知識点を理解し、習得できるようになります。
- Flink と Kafka の特徴と違い
- データ フロー プログラミング モデル: 時間計算量分析と非同期計算
- Flinkを使用したリアルタイムデータ処理の基本プロセス
- バッチおよびストリーミング データ処理に Flink を使用するケース
- Kafka を使用したメッセージのパブリッシュとサブスクリプションの基本的な使用法
- Flink の Kafka でデータを消費して保持する方法
- Flink のデータ分散モデル
- 参考文献
2. 背景の紹介
2.1 データフローモデル
データ フロー モデルは、実際のアプリケーションにおいて重要な役割を果たします。ここ数年、データ フローの研究が今日の分野で注目を集めています。現在、データ処理の効率と応答速度に対する要求が非常に高いため、次のようなデータ フローのより高度な管理が必要です。
- メッセージ配信遅延制御
- フロー制御
- エラー回復
- 動的な水平スケーリング
これらの目標を達成するために、データ フロー プログラミング言語 (DSL) は徐々に成熟してきており、その主な特徴は次のとおりです。
- データフロー図の定義を提供します
- 非同期計算によるスループットの向上<