SAP TechDays 2018 セッションハイライト~SAP HANA概要とビッグデータウェアハウス構築のための実装技術


圧倒的な高速処理を実現するSAP HANAの内部構造を解説

SAP HANAは、SAPの次世代ビジネススイートSAP S/4HANAを支える基盤として活用されているのはもちろん、ビッグデータ分析のような大規模な処理が必要な領域でも利用されている高速インメモリーデータベースです。ここでは、5月に開催された「SAP TechDays 2018」でSAPジャパンのシニアディレクター 椛田后一が発表した内容をもとに、SAP HANAの高速処理を実現している仕組みを紹介します。

リアルタイムコンピューティングで企業システムのパラダイムシフトを加速
SAPがSAP ERPを初めて世に送り出したのは、今から約50年前のことです。それ以来SAPは、“One Fact, One Place, Real Time”を掲げて技術開発に取り組んできましたが、データベースの性能がボトルネックとなり、アプリケーションの性能を十分に発揮しきれていませんでした。それを解決に導いた新しいテクノロジーが、圧倒的な高速性を実現するSAP HANAです。
2015年に登場したSAP S/4HANAは、SAP HANAを基盤とした次世代のビジネススイートとして、複雑化したプロセスのシンプル化に貢献しています。従来のERPは業務ごとにテーブル構造を分けてデータを管理していましたが、SAP S/4HANAではこれらのデータ構造を統合し、オンデマンドで集計/分析することで、すべての会計明細データを任意の切り口で分析できるようになりました。

これにより、企業システムにもパラダイムシフトが起きています。現在は、基幹系で発生したデータをETL(Extract Transform Load)ツールを介して情報系に夜間バッチで渡し、分析用のデータマート上にサマリーテーブルを作ってレポートを作成するという手順を行っている企業も多いでしょう。一方、更新系と情報系のデータベースがSAP HANAで統合されているSAP S/4HANAではデータマートを作る必要がなく、基幹系のトランザクション処理、分析、レポート作成の業務などもリアルタイム化され、究極のシンプル化が実現します。

パラダイムシフト最新テクノロジーを駆使した内部構造が高速処理を実現
SAP HANAが圧倒的な高速処理を実現している理由として、次の3つのテクノロジーがポイントとして挙げられます。

1. メモリー上のデータへのアクセス
従来のデータベースが抱えていたボトルネックは、アプリケーションの性能がディスクI/Oに引っ張られることでした。SAP HANAはすべてのデータをメモリー上に載せて処理するため、アクセスを圧倒的に高速化できます。もちろん揮発性メモリーであるインメモリー技術の採用にあたり、それを補うデータ永続化の機構も併せ持っています。

2. 分析処理とトランザクション処理を高速実行するカラム型データベース
SAP HANAはデータ格納方式に、データの集計や分析処理を得意とするカラムストア(列指向)を採用しています。冗長性のあるデータの圧縮にも優れているため、アクセスするデータを減らすことで高速分析を可能にします。さらに、これまでカラムストアは従来のローストア(行指向)よりトランザクションの処理に弱いとされてきましたが、SAP HANAではカラムストアに更新専用の領域を設けることで、トランザクション更新の問題を解消しています。

高速実行3. CPUの最新テクノロジーを活用
従来のデータベースでは、CPUが処理できるレコードデータは1件ずつでした。そこでSAP HANAは、1回の命令でCPUが複数の処理を実行する機能「SIMD(Single Instruction Multiple Data)」を活用し、さらに複数のCPUコアを割り当てた並列処理を行っています。
このように、SAP HANAは「メモリー上にデータがあるから速い」だけのデータベースではなく、さまざまな技術革新や10年以上にわたるインテル社とのパートナーシップなどが基盤となって、従来のデータベースから大きく進化したテクノロジーとなっています。

カラムストアにおけるトランザクション処理の高速化を実現したデルタマージ
ここからは、SAP HANAの内部構造について詳しく説明します。
ユーザー自身でローストアを選択することもできますが、SAP HANAではデータ格納形式としてカラムストアを推奨しています。このとき内部では、データを文字通り列単位に分割し、列データをValue IDに変換したうえでDictionaryとして圧縮管理しています。すべてのデータをValue IDに変換して保持することで、高い冗長性を保つことができます。
格納構造カラムストアがトランザクションの処理を苦手としている理由は、1件のデータを更新するだけでも、すべての列データの展開が必要になっていたことにありました。しかしSAP HANAでは、ユニークな方法でこの課題を解消しています。

カラムストアにおけるトランザクション処理は、書込用に最適化された「デルタストレージ」に対して実行されます。一方、読込用に最適化された「メインストレージ」には、高度に圧縮されたデータが保持されています。デルタストレージの情報は定期的にメインストレージにマージされて圧縮される仕組みとなっており、SAP HANAではこれを「デルタマージ」と呼んでいます。この処理により、カラムストアでの高速トランザクション処理が実現できます。

さらにデルタマージが実行される際は、新たな領域として2次デルタストレージおよび2次メインストレージが別途作成されるため、安全かつ効率的にデータの更新処理が行えます。最終的にすべてのデータが2次メインストレージに集約されたタイミングで、1次メインストレージと1次デルタストレージの領域は解放されます。
デルタマージメインストレージの更新は、実行制御の仕組みであるMVCC(Multi Version Concurrency Control)機能によって内部で管理し、トランザクションマネージャーの機能によってレコード単位でロックを行います。そのため、OLTP(オンライントランザクション処理)においても安心して利用することができます。

SAP HANAではメモリー領域が2倍必要になるのだろうかという懸念は必要ありません。メモリーの大半はメインストレージにあり、デルタストレージは更新差分用に発生するものです。さらにデルタマージはテーブル単位で実行され、自動実行とユーザー実行(コマンド実行)を選択することも可能です。

とはいえ、巨大なテーブル構造でマージが頻繁に発生する場合などは、CPUやメモリーの効率が低下する可能性があります。その際はSAP HANAが標準機能としてサポートしている、テーブルのパーティション機能を活用できます。SAP HANAでは明確な指針は定めていませんが、1つの考え方として、テーブルが5億件を超える場合にはパーティション化を推奨しています。

データマートレスから始める企業システムのモダナイゼーション
今後はすべてのデータウェアハウスが、インメモリーで実現する時代がやってくるでしょう。企業システムにも時代の進化に合わせたスピードや柔軟性が求められるようになります。SAP S/4HANAのように最初からトランザクション系と情報系を一体化することが難しい場合、まずはロードマップとして情報系からデータマートを廃止し、明細データに直接アクセスする仕組みを作るのも手段の1つです。そして基幹系システムのデータをSAP HANAに飛ばし、ほぼリアルタイムな分析環境を整備することが、デジタル時代に向けたシステムモダナイゼーションの第1ステップとなるはずです。そのためにSAP HANAでは、ペタバイト級データにも対応可能な機能や、費用対効果の高いデータ管理機能、外部のデータと統合する機能、データ統合機能、予測解析や機械学習機能などのソリューション群を備えています。
プラットフォーム既にSAP HANAを活用したリアルタイム経営を実現している企業の事例もあります。ウォルマートは、Data Cafeと呼ばれるデータ分析基盤におけるデータマートの作成を、バッチ処理で最大48時間かけて行っていました。そこでSAP HANAを採用してすべてのデータマートを廃し、2,500億件以上のメインテーブルにリアルタイムでアクセスできる環境を構築。ここでは1,500ユーザーが同時にアクセスしても、94%のクエリーが2秒以内に完了しているといいます。NTTドコモでは、全国のフロント業務のオペレーショナルデータ可視化基盤をSAP HANAで構築。データマートレスを実現し、ユーザーが分析軸を自由に設定したレポートをいつでも取り出せるようにしました。Ciscoでは、社内に分散していた業務データをSAP HANA上に集約して予測分析を実施し、営業体制を強化することで1,000億円規模の新規案件を創出しています。
(NTTドコモ事例参考記事 http://mag.executive.itmedia.co.jp/executive/articles/1706/26/news021.html
SAPでは、SAP HANAを実機で検証してみたい方に向けて、無償で利用可能なSAP HANAのスリムバージョンであるSAP HANA, express editionを用意しています。ぜひ、インメモリーデータベースのスピードを実際に体験し、真のリアルタイム経営について今すぐ検討を始めてくださいと椛田后一は締めくくった。