SAP HANA DBとは?その特徴と仕組みを解説

SAP HANAは、SAP社のERPパッケージ「SAP S/4HANA」の動作基盤として利用されています。SAP HANAではインメモリを全面採用したデータベース(DB)を構築できるため、従来のデータベースに比べて処理が非常に高速になります。今回はこのSAP HANAについて解説していきます。

SAP HANA DBとは

SAP HANAは、SAP社が提供するカラムストア型リレーショナルインメモリーデータベースです。従来から使われてきたデータベース(Oracle、SQL Serverなど)とは異なった技術を採用されています。高度なアナリティクスと高速トランザクションを 1つのシステムで並行して実行します。

SAP HANA DBの特徴

SAP HANAの大きな特徴の一つとして、カラムストア型のリレーショナルインメモリーデータベースです。

  1. インメモリとは

従来のデータベースでは、処理の都度、ハードディスク上にデータを書き込んだり、変更したりする処理方式を取っていますが、SAP HANAでは、ハードウェアではなく、メインメモリ上にデータを展開しながら動作します。

  1. カラムストアとは

従来、あるファイル上のデータを検索する場合、検索キーに対照するデータの検索などを使いながら、レコード単位に読み込んで処理してきましたが、このカラムストア方式では、各レコード上の項目単位に検索します。検索に必要な列のみを検索対象にすることで、処理効率の向上を図っています。

  1. クラウドとオンプレミスの両方で使用

オンプレミス版の「オンプレミスエディション」のほうか、クラウド版として「パブリッククラウドエディション」と「プライベートクラウドエディション(マネージドクラウドエディション)があります。

  1. SAP HANAの速さ
  • 従来のデータベースよりも高速 ⇒ 3600倍
  • 1 秒未満でクエリーに応答   ⇒ 1秒未満
  • スキャン数/秒                ⇒ 35億
  • 集計/秒                      ⇒ 1500万
SAP S/4HANA マイグレーションで知っておくべきこと、今からやれること、とは?

SAP HANA DBの仕組み

  1. ハードウェア

従来のデータベースでは、ハードディスクのI/Oスピードが遅く、全体の効率や性能は向上しません。これを解決するために、SAP HANAではマルチコアアーキテクチャを採用したサーバ、複数ブレードの超並列スケーリング、ブレードサーバの低価格化、64ビットアドレスメモリ空間、100GB/秒のデータスループット、急速に向上する性能です。

  1. データをメモリに保存

メモリのアクセス速度はディスクの1,000,000倍高速で、従来のディスク読み取りは5ミリ秒、メモリ読み取りは5ナノ秒です。 SSDやフラッシュメモリよりも1000倍高速です。 レジスタとキャッシュはメモリよりも高速にデータを読み取ることができますが、実際のデータ処理での使用は制限されています。

メモリはCPUのキャッシュと直接データ転送に使われるため、データ転送速度はディスクよりもはるかに速い。 そのため、ディスクに格納されているデータに比べて、メモリに格納されているデータは、データにアクセスするまでの時間において、データベースのパフォーマンスの優位性を大きく向上させることができます。 従来のデータベースでは メモリに保存されているデータは揮発性があるため、システムの電源を落としたり、再起動したりすると、メモリのデータは失われてしまいます。このため、SAP HAHAでは、バックグラウンドの非同期プロセスのセーブポイント(Data persistence)を利用して、メモリのデータを定期的にディスクに保存しています。 メモリにデータを格納することで、従来のデータベースの性能ボトルネックであったディスクI/Oの読み込みを解決することができました。しかし新たな性能ボトルネックの出現により、メモリのデータをCPUキャッシュにロードすることで、SAP HANAはマルチプロセッサによる同時処理を行います。

  1. 行指向(ローストア)と列指向(カラムストア)

列指向はオンライン分析処理、行指向はオンライントランザクション処理に最適化された格納方式です。オンライン分析処理とオンライントランザクション処理を1つのデータベースで実現したのがSAP HANAです。行指向と列指向の両方の使用が可能ですが、オンライン分析処理では主に列指向が使用されます。

  1. データの圧縮

現在のメモリ容量では、大量のデータをメモリに保存することが可能であり、データを圧縮する目的はパフォーマンスの向上を直接目的としたものではありません。メモリからCPUキャッシュへのデータ転送を最小限にするためには、メモリ内データを圧縮することが望ましいと言えます。 SAP HANAでは、データを圧縮する際に、対応するテキストを整数で表すデータディクショナリーアプローチを採用しています。 データベースはデータを圧縮し、データの転送量を減らすことができます。

  1. アプリケーションロジックのデータベースへのプッシュ

従来のデータベースでは、アプリケーションがアプリケーションロジックのデータを処理する際には、まずデータベースからデータを読み出し、次に適切な演算処理を行い、最後にデータベースにデータを書き戻すという方法をとっていました。 データベースとアプリケーション間のデータ転送は、ネットワークを介した通信で構成されており、ネットワークリソースのオーバーヘッド、レイテンシー、転送速度、最大スループットなどにより、両者間の通信に制限が課せられます。 データベースが計算やアプリケーションロジックを実行できれば、アプリケーションにデータを送り返す必要はなく、データ交換の必要性も減るかもしれません。 これにより、転送されるデータ量を最小限に抑えることができます。

SAP HANAとSAP S4/HANAとの違い

SAP S4/HANAは、SAP社のERPの技術やノウハウをインメモリデータベースであるSAP HANA上で実装したERP製品です。

SAP HANAは、全てのデータをメモリ上に保有し、高速に処理するための企業向けインメモリデータベース製品です。

簡単に言えば、SAP HANAは新しい種類のデータベース、SAP S/4HANAはそのデータベースを基盤として動くERPソフトウエア群です。

まとめ

SAP HANA DBはSAP製のアプリケーションだけでなく、一般的なリレーショナルデータベース製品と同様、他ベンダーのアプリケーションもHANA上で実行させることができます。

パソナテックではSAP S/4HANAマイグレーションを検討する際に欠かせない、考慮すべきポイントをまとめた入門資料「SAP S/4HANAへの道知っておくべきこと、今からやれること、とは?」をご用意しました。本資料は、SAP S/4HANAマイグレーションへ進む方へ必見の資料です。ぜひダウンロードいただき、ご覧ください。

参考した資料:

  • SAPの導入と運用
  • https://www.sap.com/japan/products/hana/what-is-sap-hana.html
SAP S/4HANA 導入支援サービス 基本ガイドブック
SAP S/4HANA マイグレーションで知っておくべきこと、今からやれること、とは?