ストリーム処理を基礎から理解する【後編】
Kafkaに至る「ストリーム処理」の系譜と“クラウド時代の潮流”をたどる
センサーやアプリケーションから届く大量のデータをすぐに処理して活用したい――。それに応えるのが「ストリーム処理」だ。ストリーム処理の歴史を踏まえ、現状はどのような実装方法があるのかを解説する。
センサーやアプリケーションなどから継続的に送られてくるデータを、リアルタイムで処理、分析するのが「ストリーム処理」だ。例えば気象観測や金融取引、製造現場の監視など、特に即時の判断がものを言う分野で活用されている。このストリーム処理の発想自体は新しいものではない。
ストリーム処理の歴史
コンピュータの黎明(れいめい)期から、複数のセンサーから得られるデータをリアルタイムに処理・分析するための仕組みが模索されてきた。初期にはこのアプローチは「センサーフュージョン」と呼ばれており、異なる種類のセンサーデータを統合して意味のある情報を導き出すことが目的とされていた。
2000年代初頭、スタンフォード大学のデイビッド・ラックハム教授が、「CEP」(Complex Event Processing:複合イベント処理)という概念を提唱した。CEPは、複数のデータストリームをリアルタイムで相関させ、そこから有意なパターンやイベントを抽出する手法だ。イベントの発生タイミングを抽象化して扱う技術、イベントの階層管理、因果関係の把握などを基盤とするその考え方は「SOA」(Service-Oriented Architecture:サービス指向アーキテクチャ)や「ESB」(Enterprise Service Bus:エンタープライズサービスバス)といった企業向けアーキテクチャの発展にも大きく貢献した。
その後、クラウドサービスとオープンソース技術の進展により、分散メッセージング基盤「Apache Kafka」などを活用したPub/Sub(パブリッシュ/サブスクライブ)モデルによるイベントデータの処理が、従来よりも低コストで実現可能になった。この流れの中で、複雑なイベント処理をよりシンプルに扱えるストリーム処理フレームワークが続々と登場。CEPの枠組みを発展させた「ESP」(Event Stream Processing:イベントストリーム処理)や「DSP」(Data Stream Processing:データストリーム処理)といった概念も確立された。
現在では、クラウドネイティブなアプリケーション開発が主流となり、SOAやESB、CEPといった用語は次第に使われなくなってきている。その代わりに、マイクロサービスアーキテクチャやPub/Subサービス、そしてストリーム処理を中核としたシンプルでスケーラブルなインフラが台頭しており、リアルタイムデータ活用の主流技術として定着しつつある。
「ストリーム処理」を実現するツールとフレームワーク
併せて読みたいお薦め記事
連載:ストリーム処理を基礎から理解する
ストリーム処理の潮流
ストリーム処理の基本概念は数十年前から存在していたが、オープンソースのツールやクラウドサービス、メッセージング基盤の進化により、現在ではより簡単に実装できるようになっている。代表的なツールやフレームワークには、以下のようなものがある。
- Apache Spark Streaming
- 「Apache Spark Streaming」はストリーム処理とバッチ処理の両方に対応するフレームワークだ。Apache Kafkaや「Apache Flume」「Amazon Kinesis」などの複数のストリーミングデータのソースと連携してリアルタイムデータを処理できる。
- Apache Kafka
- Apache Kafkaは、複数のアプリケーション間でのデータ統合を簡素化する分散イベントストリーミングプラットフォーム。
- Apache Flink
- 「Apache Flink」は、リアルタイムかつ大規模なデータストリームを処理するための分散処理エンジンおよびフレームワーク。
- Apache Samza
- 「Apache Samza」は、複数のソースからの大量のリアルタイムデータを処理できる分散型ストリーム処理フレームワーク。データの状態(ステート)を保持しながら処理するステートフルアプリケーションの構築が可能。
- Apache Storm
- 「Apache Storm」は、無制限のストリームデータを処理するための分散型リアルタイム計算システム。オンライン機械学習や「ETL」(データの抽出、変換、ロード)処理に適する。
主要クラウドサービスベンダーも、ストリーム処理を簡素化するネイティブサービスを提供している。例えば、Amazon Kinesis、「Azure Stream Analytics」「Google Cloud Dataflow」などがある。
これらのフレームワークは、アプリケーションとデータストアを接続するパブリッシュ/サブスクライブサービスと組み合わせて用いられることが多い。
ストリーム処理のアーキテクチャ
ストリーム処理のアーキテクチャは、データの取り込み、処理、公開といった一連のデータ管理作業を安全かつ確実に実行するための基盤であり、これらの作業を簡素化する役割を担っている。用途や要件に応じて複数のアーキテクチャが存在し、それぞれ異なる手法でリアルタイムデータを処理する。
代表的なアーキテクチャには以下のようなものがある。
Lambdaアーキテクチャ
Lambdaアーキテクチャは、リアルタイムでのストリーム処理と、過去データを対象としたバッチ処理を組み合わせたハイブリッド型の構成だ。ストリーム処理は高速なデータアクセスや即時的なインサイトを提供し、バッチ処理は大量の履歴データに基づく集計や分析に適している。特にビッグデータ処理に向いたアーキテクチャとして知られる。
Lambdaアーキテクチャの主な構成要素は、データソース、バッチ層、スピード層、サービング層の4つ。バッチ層は不変(イミュータブル)かつ追記専用形式でマスターデータを保持し、処理の正確性と再現性を担保する。新たに到着するデータはまずキューに格納され、サービング層によってインデックス化される。スピード層はストリーム処理を通じて、データをリアルタイムにインデックス化し、ユーザーのクエリに即座に応答できるようにする。
Kappaアーキテクチャ
Kappaアーキテクチャは、主にメッセージングエンジン、ストリーム処理エンジン、分析用データベースで構成される。例えば、分散メッセージング基盤のApache Kafkaがデータの連続的な流れを受信し、それをストリーム処理エンジンがリアルタイムで分析可能な形式に変換。変換後のデータは分析用データベースに送られ、ユーザーはこのデータベースに対してクエリを実行して情報を取得する。
Kappaアーキテクチャの特徴は、ストリーム処理のみでバッチ処理を代替する点にある。全てのデータ処理がストリームベースで実行されるため、構成がシンプルになり、Lambdaアーキテクチャに比べて運用負荷も軽減される。リアルタイム分析に加え、過去のデータ分析にも対応可能で、1つの技術スタックで多様な分析要件に対応できる点が強みだ。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 世界のインサイト&ベストプラクティス
米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
事例
[株式会社マクニカ] アイカ工業に学ぶ脆弱性対策 情シスが把握できずにいたアセットも正確に把握 -
製品資料
[株式会社マクニカ] 「脆弱性総まとめ」解説 被害事例から考える必須の対策ポイント -
製品資料
[Splunk Services Japan合同会社] サイバー脅威「トップ50」完全解説ガイド、新たな攻撃手法に対抗するには -
製品資料
[株式会社うるる] 「入札市場」完全ガイドブック:メリットから資格取得のポイントまで -
市場調査・トレンド
[株式会社うるる] はじめての「自治体/官公庁入札」 必要な知識がすぐに学べる入門ガイド
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
2
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
3
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
4
「企業内サーバ環境の利用実態」に関するアンケート
-
5
AI基盤は本当に「オンプレ回帰」する? Broadcomの言い分と企業の本音
-
6
「技術屋」で終わらないために 情シスが今取るべき認定資格5選
-
7
「攻撃側にナイフ、防御側にパン」 OpenAIの10億ドル支援に潜む危うさ
-
8
「世界一給与にハングリー」な日本のエンジニアが“雇用の安定”を求める理由
-
9
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
10
「Linuxサーバの長期運用とRed Hat Enterprise Linux」に関するアンケート
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
3
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
7
PostgreSQLの「機能」「性能」「運用」「拡張性」に関する悩みの解消法
-
8
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
9
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー