2020年7月9日、Webセミナー「マイナビニュースフォーラム 2020 Summer for データ活用 ~不確実性の時代に求められるデータ戦略~」が開催された。収集したデータを利活用し、デジタルトランスフォーメーション(DX)へとつなげていくことは、企業・組織にとって急務だが、データの膨大さやそれを処理するのにかかる時間など、実現を阻む壁も多い。
本セミナーのセッションではノーチラス・テクノロジーズ 営業部 本部長 芳賀 荘鑑 氏が、分散処理を用いてこうした壁を乗り越える手法を、事例を交えて紹介した。本稿では芳賀氏が行った講演の概要を紹介する。
大規模データの高速処理を可能にする「分散処理」は、DX推進のカギとなる
芳賀氏はまずノーチラス・テクノロジーズを「いわゆる分散処理を用いたSIを行う会社」と紹介した。「業務系処理に分散処理を適用して高速化を図る」「Asakusa FrameworkをOSS(オープン ソース ソフトウェア)として開発、導入・運用をサポート」「Hadoop・Spark・M³BPを利用した実行基盤の構築」「クラウド基盤上での業務システムのSI」などが同社の主な業務内容だ。
ここで名前の挙がったAsakusa Frameworkとは、業務システムのバッチに並列分散処理の能力を活用するためのフレームワークだ。大容量のデータや複雑な処理を多数のコンピューターに振り分けることで、従来は難しかった処理も実現できるようになる。
その特徴として、芳賀氏は次の3つを挙げる。第一に「開発容易性」。HadoopやSparkなど、基盤ごとの開発手法を意識することなくアプリケーションを開発できる。その理由は、第二の特徴である「ポータビリティ」にも関連する。Asakusa Frameworkは主要な分散処理エンジンのほぼ全てに対応したコンパイラーを内包しているので、一つのソースから各基盤用の実行コードを生成することが可能だ。一度アプリケーションをつくれば、実行に最適な基盤を選んで載せ替えるのが容易で、クラウドとオンプレミス間での移行時にも役立つ。そして第三に「低学習コスト」。同社は集合教育型の講習を開催しており、低コストでAsakusa Frameworkの利用法を学ぶことができる。
Asakusa Frameworkの代表的な活用領域としては、「基幹システムのバッチ処理」「DWHオフローディング」「IoT/ビッグデータ蓄積/処理」「シミュレーション」などがあり、中には何十時間もかかっていた処理を、数分で終えられるようになったケースもあるという。
「昨今、DXの推進が話題となっていますが、これを実現するには構造化・非構造化を問わず、多彩かつ膨大なデータを迅速にビジネスに直結させることが課題となります。しかし集めたデータにクレンジングや加工・集計などを施し後続処理に必要なデータを準備する際に、いわゆる『前処理の壁』が生じDX推進の阻害要因となっています。これを乗り越えるためには、分散処理が有効です。分散処理はDX推進で生じる課題の、一つの解決方法になると考えています」(芳賀氏)
バッチ処理やトランザクション競合などのボトルネックを、分散処理で改善
分散処理がどうシステムの改善に役立つのか、芳賀氏はその具体例を説明した。芳賀氏によれば、システムに存在する代表的なボトルネックは、大量データのバッチ処理を行う工程にあるという。例えば「データ量に対して、選択した実装形式が限界に達している」「データモデルに対して非効率なアクセスが行われている」「インフラと処理内容のミスマッチがある(RDBで大量データバッチ処理を行っているなど)」といったことが負荷につながっているのだ。また、RDBMS(リレーショナルデータベース管理システム)でのトランザクション競合も、ボトルネックとなりうる。
「これらのボトルネックに共通しているのは、システムの静的・動的モデルを業務の視点から設計してしまっており、バッチやオンラインでの処理負荷や、性能に関する検討が不足しているということです」(芳賀氏)
芳賀氏はこうしたボトルネックに対して、次のような解決手法を提案する。まずは、スケールアップによる高コストな対策ではなく、分散処理によってスケールアウト性能を確保すること。次にAsakusa Frameworkを使い、処理を自動化すること。Asakusa Frameworkならビジネスロジックを記述するだけで、その後の分散並列化やスレッド化などの難易度の高い実装を、自動で行ってくれる。そして処理要件に応じた基盤を選択すること。Asakusa Frameworkなら利用したい基盤に合わせて実行コードを書き出せるため、データ増や処理追加等に伴うプラットフォーム変更にも柔軟に対応できるようになる。
「こういう話をすると、『データベースよりも分散エンジン』と言っているように聞こえてしまうかもしれませんが、そうではなく、『特性に応じた基盤の上で、それぞれの処理を行うべき』ということです。当社ではクラウド・コンピューティングについても、特性に応じたハイブリッド基盤を構築することをご提案しています」(芳賀氏)
下の図1は、同社が提案しているハイブリッドクラウドの一例(AWSの場合)だ。業務アプリケーションレイヤー、データ基盤レイヤー、データ活用基盤レイヤーの3つに分かれており、それぞれにAWSが提供するサービスが配置されている。
「それぞれの特性に合った基盤をハイブリッドに配置することで、コストパフォーマンスや処理の最適化が図れると考えています。今、クラウドサービスでは様々なSaaSやPaaSなどが利用でき、基盤間のデータ連携もよりスムーズになっていますから、ますます最適化を進められるようになるでしょう」(芳賀氏)
AWS + Hadoop、M³BPで、大規模・高速処理を実現した小売業での事例
講演では、ノーチラス・テクノロジーズが積み重ねてきた多くの実績の中から、食品スーパーチェーンを展開する企業の新会計システム構築事例が紹介された。2013年の事例だが、AWS上にHadoopを使って構築したシステムとしては、当時、最大規模のものだったという。
構築の背景には、従前のシステムの老朽化に加え、流通BMS(流通ビジネスメッセージ標準:流通事業者向けのEDI)に対応するための処理データ量強化、業務生産性を向上させるための大幅な機能追加、小売業ならではの膨大なトランザクションへの対応(処理件数の強化)などのニーズがあった。開発にあたっては、追加業務機能によって、より粒度の細かいデータを扱わなければならないこと、そのため必然的に計算量が多くなってしまうこと、基幹系から情報系へのバッチが非常に遅く、このボトルネックを解消しなければならないこと、さらに継続的な業務深化を考慮し、システム負荷増も見込んだ上での効率的なパフォーマンスおよび可用性を確保することなどの課題があったという。
こうしたニーズや課題を踏まえ、ノーチラス・テクノロジーズが構築した新システムは、実に高性能なものに仕上がった。1日あたりの処理件数は、売上で1億件の締め処理、債権管理で900万件の集計処理、仕入で2,700万件の取り込みクレンジング処理、債務処理で300万件のマッチング処理が可能になった。扱うデータサイズは100GB~500GB、バッチ処理時間は8時間で完了させることができる。
システム構成としては、従来、分離していた基幹系と情報系の流れをHadoop上に統合したことで、両システム間でデータの確実な整合性が取れるようになった。また仕入処理では、以前はデータ量の都合などから諦めていた、請求データと物流からの検収確定データを突合できるようにした。どちらも重いバッチ処理が必要となるが、Hadoopの高速性と処理能力を活かして、これを可能にしたという。なお業務深化に伴う継続的なパフォーマンスおよび可用性の確保は、クラウド(AWS)を利用することで実現した。
2018年時点で、この企業ではプラットフォームをHadoopからM³BPへ変更、処理時間はさらに削減し、5~6時間になっているという。変更にあたってはAsakusa Frameworkがポータビリティ性能を発揮し、コード変更は行わずに対応できたとのことだ。
「その時点でベストなインフラを選択できるようにするのが、Asakusa Frameworkを利用する大きなメリットだと言えます」(芳賀氏)
最後に、一般的なシステム開発と、ノーチラス・テクノロジーズによる開発との違いについて語った芳賀氏の言葉を引用して、本稿を締めくくろう。
「当社は、静的・動的モデルだけの設計ではなく、データ量増加の可能性を見極め、バッチ、オンライン、それぞれのトランザクション特性を考慮した処理負荷の最適化を目指した設計を行っています。またAsakusa Frameworkを駆使することで分散・高速化を実現します。これにより、お客様はビジネスロジックに集中していただけるようになるのです。現在の開発でボトルネックを感じているお客様がいらっしゃいましたら、ぜひ当社へお声がけいただきたいと思います」(芳賀氏)
◆ノーチラス・テクノロジーズのHPはこちら
https://www.nautilus-technologies.com/
[PR]提供:ノーチラス・テクノロジーズ