デジタルトランスフォーメーション時代の最新データベース技術勉強会 - DB進化論 -
「SAP HANA」で実現するOLAP
最後の登壇はアクセンチュアの花木さんです。
花木敏久(はなき・としひさ)/アクセンチュア株式会社。鹿児島県出身。法政大学卒。国内SIer、サイベース、デルジャパン、SAPジャパンでの勤務を経て、2017年にアクセンチュアへ入社。モーターサイクル好き。
まず花木さん「SAP HANA」のフレックススキーマ機能を使ったデモを実施します。
「この機能は知らないカラムが送られてきたときに、その都度データベースを止めてテーブルの修正をするのではなく、カラムを自動的に新たに登録できるものです。これは将来的にIoTセンサーから新たなデータが送られてきたり、サプライチェーンやSNSの人のつながりのように無限に関係がつながる領域を探索する場面で非常に有意義です。
この処理は『SAP HANA』が柔軟なカラムストアに対応しているから行えます。隣と隣のカラムが物理的に並んでいるローストアでは、同じ処理を実行すると莫大なコストが掛かることがわかるでしょう。
なぜ『SAP HANA』がカラムストアを採用しているのかといえば、データの最小単位であるカラムで管理すべきだと考えているからです。それによりフレキシブルな管理システムが実現します。速いからローストアを使うというOLTP的な発想ではありません」(花木さん)
続いて花木さんは「SAP HANA」のインメモリーデータベースとしての側面を説明します。
「インメモリーデータベースである『SAP HANA』は従来型のデータベースと異なり、データベースの本体をメモリー上に配置しています。
しかし、この配置では電源を切ったときにデータベースがなくなりかねないという問題があります。この永続化を担保するために、『SAP HANA』ではデータベース全体のバックアップをディスクにとるようにしています」(花木さん)
さらに従来のデータベースと「SAP HANA」の差別化について、花木さんは次のように指摘します。
ディスク型のデータベースと潤沢なメモリーを組み合わせた場合との違い
低速なディスクのランダムアクセスを前提としインデックスを多用するディスク型のデータベースに対し、「SAP HANA」は順番に並んだデータを高速スキャンすることで高いパフォーマンスを実現します。ディスクを高速化したSSDベースのデータベースとの違い
ある程度効果があるのは間違いないが、ディスク型データベースである限りCPUがデータベースにアクセスしてメモリーに読み込むまでの転送速度は「SAP HANA」のメモリーの読み込み速度にはかないません。
花木さんはカラムナーデータベースとしての「SAP HANA」の特徴を続けて列挙します。
メインはカラムストア
「SAP HANA」はローストアとカラムストアの両方をサポートしていますが、主に使用されるのはカラムストアです。ローストアは少量のパラメータ的なデータ保存や更新性能のみが重要視される場合のみ使用されます。テーブルはお互いに変換が可能です。カラムストアの構造
テーブルはExcelでみるような列と行で構成されていますが、まずカラム(列)単位に分割して管理されます。そしてカラム単位で「Dictionary/Valu ID配列」を作成するのが特徴です。重複データを省きソートされた実値を格納するのがDictionaryという構造体です。各値はValu IDという添字で参照できます。各ローがどの値をとるかを表現するのがValue ID配列で、件数分の配列が展開され各要素にはValue IDを保持します。カラムストアの圧縮
この方式にはValu ID配列のカラム内の繰り返しパターンを圧縮することができるというメリットがあります。圧縮方式は5種類あり、その方式さえわかれば読み込み時に解凍のコストが不要でデータを読み込めるという特徴があります。
さらに花木さんは「SAP HANA」のカラムストアの拡張機能としての「HANA Information View」について説明します。
「従来のOLAPシステムでは、DBサーバーからBIサーバーへ大量のデータを転送しなければいけないという課題がありました。
BIサーバーに求められる役割は、『高度な分析・集計』『ドキュメント化』の2つです。インメモリデータベースである『SAP HANA』では、BIツールが従来行なってきたデータの分析と集計をHANA内で行えますので、コンパクトになった分析・集計結果を転送するだけで済むわけです。
ここで使われるのがカラムストアの拡張機能として作られた『HANA Information View』です。『HANA Information View』は『SAP HANA』におけるOLAPの実装です」(花木さん)
花木さんは「HANA Information View」の特徴を次のように挙げます。
- 実行環境ではビューとして存在
- データは持たない
- SQLエンジンとは別の計算エンジンにより処理される
- 開発の際に入力されたテーブル、ジョイン方式などの情報を加味して効率的かつ高速な処理が可能
- ODBC、JDBC,SQLDBCなどで接続しSQL、MDX、XMLAでアクセス可能
最後に花木さんはOLAPを「SAP HANA」で実装したお客様のユースケースを紹介します。
「これまで締め日にバッチが走り、過去1ヶ月分の販売実績レポートを集計していたお客様がいました。その時点ではもちろん最新なわけですが、その数字はあくまで過去のものです。
『SAP HANA』でリアルタイムに販売実績が見られるようになると、お客様からは『月末までの予測が出せませんか?』という新しいニーズが必ず生まれるんですね。
昨年の同じ月の数字や過去の平均値、予測分析ライブラリーを使った予測などで対応していくことになるのですが、切実なニーズから生まれるこのレポートは活用度がとても高くなるんです。その結果、PDCAを非常に堅実に回せるようになります。
また、リアルタイムでデータが見られるようになると、モバイルアプリへのニーズが高まる傾向があります。リアルタイムでデータを参照できるようになると様々な発想が生まれてくるのはおもしろい点だと感じていますね。
新しい視点から分析したいというニーズが生まれたときに、すぐに分析を実行できることが大切です。そのために必要な処理ロジックがデータの側にあるのが『SAP HANA』の大きな強みですね」(花木さん)
懇親会!
講演の終了後には懇親会が開催されました。
100分を超える講演の後ですが、登壇者に更なるお話を聞きたい参加者がとても多くいたようです。第2回、第3回への参加もお待ちしています!
アクセンチュアのSAPビジネスについてはこちら
https://www.accenture.com/jp-ja/service-technology-sap-overview
アクセンチュアにおけるSAP人材の採用についてはこちら
https://www.accenture.com/jp-ja/Careers/sap