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

 2016.07.28  リアルテックジャパン

HANA Voraの位置づけ

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

「theGuard! SmartChange Transport Management」 導入
SAPシステムパフォーマンス分析パック

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

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

Vora Shell Start.jpg

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

YARN.jpg

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

HANA Vora Table Load.jpg

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

HANA Vora Result.jpg

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

Spark Result Job.jpgSpark Result Stage.jpg

これまでの動きを画面を通して見るとわかりますが、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と処理時間の比較してみました。

Vora VS Spark Performance.jpg

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

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

検証環境

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

Voras Versions.jpg

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万レコード)で作りました。

実行クエリ

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

Vora VS Spark Performance List.jpg

HANA Voraの今後

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

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


この記事が気に入ったらいいねしよう!
Archive Migration Service (アーカイブ移行リモートサービス)
オフィシャル採用ブログ『RTFrontier』はこちらから!

RANKING人気資料ランキング

RECENT POST 最新記事

RANKING人気記事ランキング

ブログ購読のお申込み