Real Time vs Batch Processing vs Stream Processing
絶え間ない技術革新により、開発者は任意の期間にテラバイト、さらにはペタバイトのデータを分析することが期待されます。 (結局のところ、データはより多くのデータを引き寄せます。)
もちろん、これによって多くの利点が得られます。 しかし、このすべてのデータをどうしたらよいのでしょうか。 特に反応をすばやく起こさなければならない場合、これらのテクノロジーを加速し、高速化する最善の方法を知ることは困難です。
デジタル ファーストの企業にとって、リアルタイム処理、バッチ処理、およびストリーム処理をいかにうまく使うかが大きな問題になってきました。 この記事では、これらのデータ処理タイプの基本的な違いについて説明します。
リアルタイム オペレーティング システム
リアルタイム オペレーティング システムは通常、データへの反応に言及します。 リアルタイムのシステムの最もよい例の1つは、株式市場で使用されるものです。 株式相場が配置されてから10ミリ秒以内にネットワークから来る必要がある場合、これはリアルタイム処理とみなされます。 これがストリーム処理を利用したソフトウェアアーキテクチャで実現されたのか、それともハードウェアでの処理なのかは関係なく、厳しい納期が保証されていることがリアルタイムである理由です。
リアルタイム システムを使用することが有益となる他の状況としては、次のようなものがあります。
これが意味するのは、リアルタイム システムはその瞬間に実行するタスクを選択するので、プログラムの制御フローとソース コードの区別はもはや明白ではないということです。 これは、より高い抽象度を使用してより高い生産性を実現し、複雑なシステムの設計を容易にすることができるため有益ですが、全体的に制御が少なくなり、デバッグや検証が難しくなります。
Real-time Operating System のもう 1 つの共通の課題は、タスクが分離したエンティティではないことです。 システムはどれをスケジュールするかを決定し、優先度の高いタスクを優先度の低いタスクの前に送り出し、それによって優先度の高いタスクがすべて完了するまでその実行を遅らせます。
ますます、いくつかのソフトウェアシステムは、締め切りが絶対的ではなく、確率的であるようなリアルタイム処理の味を追求し始めています。 ソフトリアルタイムシステムとして知られるこれらのシステムは、通常、または一般的に期限を守ることができるが、あまりに多くの期限を逃すと性能が低下し始める。
バッチ処理
バッチ処理とは、大量のデータを一度に処理することである。 データは簡単に1日分の数百万レコードからなり、さまざまな方法(ファイル、レコードなど)で保存することができる。 バッチ処理ジョブの代表的な例としては、金融機関が 1 週間の間に提出するすべてのトランザクションが挙げられます。 バッチ処理は、
- 給与計算プロセス
- ラインアイテム請求書
- サプライチェーンと履行
バッチデータ処理は、一定期間にわたって収集した大量のデータを処理する非常に効率的な方法です。 また、その機能をサポートするために専門のデータ入力店員を必要としないので、企業が人件費に費やすかもしれない運用コストを削減するのに役立ちます。 これは、オフラインで使用することができ、それが夜間であるかどうか、週または給与期間の終わりに、処理を開始するように管理者が完全に制御することができます.
課題
何でもそうですが、バッチ処理ソフトウェアを利用するいくつかの不利な点があります。 企業が見る最大の問題の 1 つは、これらのシステムのデバッグが困難であることです。 専門の IT チームや専門家がいない場合、エラーが発生したときにシステムを修正しようとすると、外部のコンサルタントが支援する必要性が生じ、不利になることがあります。
バッチ処理のもうひとつの問題は、企業が通常お金を節約するためにそれを実装しますが、ソフトウェアとトレーニングには、最初に相応の費用がかかるということです。 管理者は、
- バッチをスケジュールする方法
- 何がそれを誘発するか
- 特定の通知の意味
(最新のバッチ処理についてもっと知る)を理解するためのトレーニングを受ける必要があります。)
Stream Processing
Stream Processing は、あるデバイスから別のデバイスにストリーミングされているデータをほぼ瞬時に分析できるプロセスです。
この連続計算方法は、データがシステムを通じて流れ、出力に強制的な時間制限がない状態で行われます。 ほぼ瞬時に流れるため、システムは大量のデータを保存する必要がありません。
Stream Processing は、追跡したいイベントが頻繁に発生し、時間的にも近い場合に非常に有益です。 また、イベントをすぐに検出し、迅速に対応する必要がある場合にも活用するとよいでしょう。 つまり、ストリーム処理は、不正行為の検出やサイバーセキュリティなどのタスクに有効なのです。
Challenges
組織がストリーム処理で直面する最大の課題の 1 つは、システムの長期データ出力速度が長期データ入力速度と同じかそれよりも速くないと、システムがストレージとメモリで問題に直面し始めるということです。 システムを通じてのデータの流れを最高の最適レベルで動作させ続けるために、組織はコピー数を削減する方法、計算カーネルをターゲットにする方法、およびキャッシュ階層を可能な限り最善の方法で利用する方法に関する計画を作成する必要があります。
結論
これらのシステムはすべて利点を持っていますが、最終的に組織は、ユースケースに最適な方法を決めるために、それぞれの潜在的利点を検討する必要があります。
その他のリソース
- BMC Workload Automation Blog
- BMC Big Data Blog
- Beginner’s Guide To Workplace Automation
- What Is a Batch Job?
- What Is a Data Pipeline?
- Data Pipeline?
- BMC Workload Automation Blog
- Beginner’s Guide to Workplace Automation
- BMC Big Data Blog
Manage sl as your batch services joe goldberg from BMC Software
Take a modern approach to batch processing
These postings are my own and necessarily not represent BMC’s position, strategies, or opinion.
See an error or have a suggestion? [email protected].
までメールでお知らせください。