現場で使える! 実践的なニアリアルタイム処理とは
では、ニアリアルタイム処理は現場でどのように使うことが求められるのか。暮林氏は実践的なニアリアルタイム処理の使い方についても紹介してくれた。
例えば画面入力をベースにバッチが夜間に動くケースでは、本来画面を直したいところだが、事情があって手が出せないことで、バッチが処理できないデータがデータベースに入る。それが1件ならよいが、複数あるとバッチのリカバリ回数が増え、突き抜けてしまうことがある。「このような問題は、オンラインとバッチの間にニアリアルタイム処理を挟むことで解決できる」と暮林氏。画面からデータベースに入れるまでは先と同じだが、DebeziumというChange Data Captureを介して、Kafkaに入れるところからがニアリアルタイム処理となる。エラー判定をするマイクロサービスを起動し、エラーと判定されると入力した人に何らかの形で通知をする。またチェックして問題がなかったデータはそのままデータに書き戻し、バッチ処理を進める。実際にこの仕組みのデモを実施したところ、10秒から15秒ぐらいで処理が終了。「画面を直すよりも気軽にマイクロサービスとして実装できるのでお勧めです」(暮林氏)
「ニアリアルタイム処理はリアルタイム処理と勘違いするほどの速度で処理できる」と暮林氏。だがバッチ処理をニアリアルタイム処理に置き換えるにはやはり投資が必要になるので、費用対効果を示す必要がある。「だがIT的な視点だけでは詰まってしまうので、ビジネス的な視点も入れて計算すること」と暮林氏はアドバイスする。
まずはビジネス的な視点での計算は次のように行う。年間あたりの平均損害額は、年間売上×障害発生率(%)×機械損失率(%)と計算式で表される。例えば10億円の売上がある企業で、障害発生率が頻繁(週1)、それにより10%の顧客が離れてしまうケースでは、10億円×14.3%×10%=1430万円という計算式となる。5年でもとをとるなら損益分岐は1430×5=7150万円となる。
IT的な視点の計算式は、年間あたりの平均損害=年間売上×対売上IT投資割合×ブロック率となる。日本情報システムユーザー協会「企業IT動向調査報告書2021」によると、対売上IT投資割合の平均は1%なので、先の企業の場合、10億円×1%×20%=200万円となる。こちらも5年でもとをとるなら損益分岐は200万円×5=1000万円となる。つまり損益分岐は合計8150万円ということだ。「投資対効果という点でも経営層を説得できる要素があるのか。その点も考えて、ニアリアルタイム処理を検討してほしい」(暮林氏)