短時間で理解するHANA Vora入門 詳細編

 2016.07.28  リアルテックジャパン

HANA Voraの位置づけ

実は、HANA VoraはSAPのプラットフォーム戦略上も核となる位置づけになっています(SAPPHIRE 2016資料 P21参照)。図上ではHANAと同格なほどです。
HANA Vora概要について前回記事「短時間で理解するHANA Vora入門 概要編」で解説しました。今回はその後編として、HANA Vora基本動作と特長について説明します。

SAPデータコピーツール Data Sync Manager
SAPユーザー必見!テスト・トレーニング・データ移行時に機密データを守る方法は?

HANA Vora基本動作(テーブル定義、メモリロードからクエリ実行)

まずはHANA VoraのシェルをSSHクライアントから起動します。

短時間で理解するHANA Vora入門 詳細編 1

YARNモードでシェルを起動したため、YARNでSpark Executorが見えます。この動きおよび見え方はSparkと変わりがありません。

短時間で理解するHANA Vora入門 詳細編 2

では、HANA Voraでテーブル定義をし、HDFSに置いている1GBのファイルをロードします。データが3つのノードに分散されてメモリロードされているのがわかります。

短時間で理解するHANA Vora入門 詳細編 3

クエリを実行してみます。クエリ結果がシェル画面で見えます(実際にはエンドユーザは使わない画面ですが、技術者が簡易的に結果確認ができます)。

短時間で理解するHANA Vora入門 詳細編 4

実行処理をSparkのUIで見ることができます。上画面ショットはJob単位のログで、下画面ショットはStage単位のログです。Stageのレベルで見ると処理が分散されているのがわかります。

短時間で理解するHANA Vora入門 詳細編 5短時間で理解するHANA Vora入門 詳細編 6

これまでの動きを画面を通して見るとわかりますが、HANA VoraはSpark、YARNと協調して動きます。

HANA Voraの特長

HANA Voraの特長は大きく以下の3つです。

1. OLAP機能強化

企業向けOLAP機能として階層構造を定義したり、キューブ、ディメンションタイプのViewを定義することができます。

前者は、組織や品目などを階層構造を使ってレポーティングするための機能です。リンク先動画にわかりやすく紹介されています。

後者は、レポートでインタラクティブにドリルダウンをするために使用できます。ShellやHANA Vora ToolからSQL(DDL)で定義できます。また、リンク先記事でも紹介されているようにモデラーツールでも定義できます。

2. HANA連携

HANA VoraとHANAで双方向に連携できます。先の記事で紹介した ローソン事例のような、基幹システムと(HANA Voraではありませんが)ビッグデータを連携する場合には、威力を発揮します。双方向連携なので、HANAを主軸とする使い方もHadoop/Sparkを主軸とする使い方も可能となります。

HANAからSpark/Hadoopへの連携では、Smart Data Access(以下、SDA)という機能がありました。簡単に言うとSmart Data Accessよりも速く安定した連携が可能となります。SDAはODBC/JDBCドライバに依存していたり、Hadoopディストリビューション間で互換性がないといった問題がありました。それに対して、HANA VoraではSAP製のSpark Controllerというコンポーネントを通すことでスピードと安定性を担保しています。

3. Spark高速化

HDFS上のデータをカラムストア化してメモリ上に展開することで、読込処理の高速化が実現できます。インメモリ処理とカラムストアはHANAで実装されているC++のコードをベースに実装しています。

では、どれだけ処理高速化が実現できるのでしょうか?Sparkと処理時間の比較してみました。

短時間で理解するHANA Vora入門 詳細編 7

単一テーブルに対する処理は非常に速いです。Joinの場合はあまり変わらなくなってしまっています。用途に応じてHANA Voraを活用する領域を考慮する必要が多そうです。

「3. Spark高速化」の検証詳細

検証環境

下図のバージョンをノードの基本構成にして Amazon  EC2 上に構築しています。クラスタマネージャとして YARN を使用し、データストレージに HDFS を使い同居させています。

短時間で理解するHANA Vora入門 詳細編 8

Hadoopディストリビューション
  • HDP2.3.4

クラスタマネージャ

  • YARN(Spark/HANA VoraをYarnで実行)
  • HDFSと同居

データストレージ

  • HDFSにCSV形式
  • YARNと同居

Spark(HANA Vora)実行時パラメータ

  • クラスタ全体のExecutor数:12
  • ExecutorあたりのCore数:4
  • Executorあたりのメモリ割当:12GB

テストデータ

テストデータはAWSのツールを使いました(Impala用とありますが、Spark/ HANA Voraでも使用可能です)。

Transactionを47GB(約10億レコード)、booksを1GB(約1000万レコード)で作りました。

実行クエリ

クエリは以下の条件で実行しています。

短時間で理解するHANA Vora入門 詳細編 9

HANA Voraの今後

HANA VoraはHANAをはじめとするRDBMSと比べて歴史が浅く、発展の余地が多々ある領域です。今後、既存機能の強化とともに、時系列データ・グラフエンジンなどHANAの機能がHANA Voraにも盛り込まれていく予定です。ぜひとも期待したいものです!

RECENT POST「S/4HANA」の最新記事


S/4HANA

SAP S/4HANAとは?サポート期限切れが迫る中移行するメリットをご紹介

S/4HANA

SAPが目指す「ビジネスプロセスの最適化」とは?

S/4HANA

SAPデータ移行に必要な環境調査について

S/4HANA

SAP S/4HANAの選択的データ移行

短時間で理解するHANA Vora入門 詳細編
New Call-to-action

RECENT POST 最新記事

RANKING人気記事ランキング

ブログ購読のお申込み