Power BI SAP HANA コネクタのパフォーマンスベンチマーク:CData vs. Microsoft 標準コネクタ



Power BI 向けの Microsoft 標準 SAP HANA コネクタは、小規模なデータセットであれば十分な速度で処理できます。しかし、本番環境規模のデータ量になるとパフォーマンスが低下していきます。コールドスタート時の接続の遅さ、メモリを大量に消費するインポート、そしてレポートが複雑になるにつれて動作が止まりがちになる DirectQuery などがその代表例です。

専用に設計された代替製品とのパフォーマンス差を数値で示すため、Microsoft 標準の SAP HANA コネクタと CData Power BI Connector for SAP HANA を比較するベンチマークを、条件をそろえて実施しました。比較はインポートと DirectQuery の 2 つの接続モードで行い、実際のレビューデータ 2,250 万件をロードした稼働中の SAP HANA Cloud インスタンスを使用しています。どちらのコネクタも、クリーンなコールドスタート状態から同じ 100 万行のデータセットに対してテストしました。

結果は、計測したすべての項目で CData コネクタが上回りました。コールドスタート時の SAP HANA への接続は標準コネクタと比べて最大 11 倍高速、インポートモードでの 100 万行のロードは 65.9% 高速、DirectQuery セッション全体の完了までの時間も 37% 高速でした。また、DirectQuery のテスト中に標準コネクタではレンダリングエラーが発生しましたが、同じデータで CData コネクタを使った場合には再現しませんでした。

テスト環境とツールは以下のとおりです。

  • データベース:SAP HANA Cloud(無料枠、Azure シンガポールリージョン、SSL 経由のポート 443)
  • クライアント:Power BI Desktop — コールドスタート、実行ごとにキャッシュをクリア
  • コネクタ A:Microsoft 標準 SAP HANA コネクタ(SAP HANA Client のインストールが必要)
  • コネクタ B:CData Power BI Connector for SAP HANA(ODBC DSN、追加の前提条件なし)
  • データセットの準備:CData Sync — CSV から SAP HANA Cloud へ転送
Power BI のデータを取得 — Microsoft 標準 SAP HANA コネクタと CData SAP HANA コネクタ

ベンチマーク用データセット

両コネクタとも、同じ稼働中の SAP HANA Cloud インスタンスに対してテストしました。データには Amazon Reviews 2023 の Electronics カテゴリのデータセットを使用し、JSONL から CSV に変換したうえで CData Sync を使って HANA にロードしています。

テーブル 総行数 ディスク上のサイズ カラム数 ベンチマーク対象
DBADMIN.AMAZON_REVIEWS 22,530,000 763.95 MB 15 1,000,000 行

NOTE: SAP HANA Cloud は、圧縮機能を組み込んだカラムナ形式でデータを格納します。763.95 MB というディスク上のサイズは、2,250 万行に HANA のカラムストア圧縮が適用された結果です。同じデータを行指向のデータベースに格納した場合と比べて、大幅に小さくなっています。


ベンチマーク用データセットのロード

CData Sync は、2,250 万行のデータセットをローカルの CSV ソースから SAP HANA Cloud へ分割して転送しました。無料枠のインスタンスが再起動するたびに、最後に書き込みが成功した行から転送を再開しています。SAP Community のドキュメントによると、DBeaver など手動で使う HANA Cloud のインポートツールは毎分約 25 万行の速度に達しますが、中断後に再開することはできません。CData Sync は同等のスループットを備えながら、スケジューリング、リトライ処理、再開機能を標準で提供します。


セットアップと前提条件

Microsoft 標準の SAP HANA コネクタでは、Power BI Desktop から接続する前に SAP HANA Client をローカルにインストールしておく必要があります。SAP HANA Client は tools.hana.ondemand.com から入手できますが、ダウンロードには SAP Universal ID が必要です。テスト中には、HANA が強制するパスワード変更によって 414 user is forced to change password という分かりにくいエラーが返されました。Power BI ではこのエラーの内容を表示することも解消することもできず、フラグをクリアするために SAP HANA Database Explorer へ別途ログインする必要がありました。さらに DirectQuery モードでは、ファイル > オプション > DirectQuery で SAP HANA をリレーショナル ソースとして扱う(Treat SAP HANA as a relational source)を有効にしないと、ナビゲーターに計算ビューではなくリレーショナルテーブルが表示されませんでした。

一方、CData コネクタでは追加のクライアントライブラリも SAP アカウントも不要でした。DSN は ODBC データソース アドミニストレーター(64 ビット)で設定し、Server、Port、User、Password の 4 項目を入力するだけで接続できます。なお、Power BI で DSN をデータソースとして選択できるようにするには、接続テストが成功している必要があります。DirectQuery モードは接続ダイアログから直接選択でき、オプションを切り替える必要はありません。

CData Power BI Connector for SAP HANA — DSN 設定

ベンチマークの方法:100 万行

両コネクタとも、同じ HANA Cloud の SQL エンドポイントと 15 カラムのスキーマに対して、コールドスタートの状態からテストしました。各テストの実行前には、HANA のクエリキャッシュと結果キャッシュを毎回クリアしています。

ALTER SYSTEM CLEAR SQL PLAN CACHE;
ALTER SYSTEM CLEAR RESULT CACHE;

インポートと DirectQuery のテストでは、どちらも同じ行数制限をかけた以下のクエリを使用しました。

SELECT * FROM DBADMIN.AMAZON_REVIEWS LIMIT 1000000

計測には専用のベンチマークタイマーを使い、各テストで 2 つのフェーズを記録しました。1 つは接続時間(接続ダイアログで OK をクリックしてから、ナビゲーターまたはモデルの準備が整うまで)、もう 1 つはロード時間(読み込みをクリックしてから完了するまで)です。すべてのテストは、Power BI Desktop を完全に終了してから開き直した状態で実施しています。


インポートモードの結果

インポートモードでは、SAP HANA のデータを Power BI のインメモリエンジンに読み込みます。接続時間はコネクタとその基盤となるクライアントライブラリだけで決まります。一方、ロード時間には、各コネクタが HANA Cloud から SSL 接続経由で 100 万行をどれだけ効率よくストリーミングできるかが表れます。

Microsoft 標準 SAP HANA コネクタ — SQL ステートメントとポート 443 を指定した接続ダイアログ

接続時間

コールドスタート時の接続時間 — インポートモード(秒)
指標 CData SAP HANA Microsoft 標準 SAP HANA
接続からナビゲーターの準備完了まで 5.4 秒 (9.4 倍高速) 50.9 秒

データのロード時間

インポートのロード時間 — 1,000,000 行(秒)
指標 CData SAP HANA Microsoft 標準 SAP HANA
1,000,000 行 — 15 カラム 75.6 秒(1:15) (65.9% 高速) 222.1 秒(3:42)

CData は、SAP HANA Cloud から Power BI へ 100 万行を 1 分 15 秒でロードしました。一方、標準コネクタは同じコールドスタート条件で 3 分 42 秒かかり、同一データで 146 秒遅い結果となりました。複数のレポートでスケジュール更新を実行しているチームにとって、この差は積み重なり、更新時間枠の超過や古いデータの表示に直結します。


DirectQuery の結果

DirectQuery では、データをローカルにインポートせず、各ビジュアルのクエリをレンダリング時にリアルタイムで SAP HANA に送信します。データの鮮度が求められ、データセットのサイズが Power BI のローカルモデルの上限を超えるような、企業の SAP HANA レポーティングで推奨されるモードです。

なお、DirectQuery モードで CData コネクタを使う場合は、重要な注意点があります。Power BI の「データを取得」ダイアログにある CData SAP HANA (Custom) コネクタは、インポートモードのみをサポートしています。DirectQuery を使うには、CData の DSN を指定して データを取得 > ODBC から接続しましょう。インストール時に割り当てられるデフォルトの DSN 名は CData PBI SAPHANA Source ですが、DSN の設定時に変更することもできます。CData のドキュメントでも、Power BI で CData コネクタを DirectQuery で使う場合は、この ODBC 経由の方法が検証済みの手順として案内されています。

CData SAP HANA — SQL ステートメントを指定した DirectQuery 用の ODBC 接続ダイアログ

100 万行で DirectQuery を正しく動作させるには、Advanced タブで次の 3 つの DSN 設定を行います。

  • QueryPassthrough = True — SQL ステートメントを書き換えずにそのまま SAP HANA に渡します。DirectQueryLimit の上限がなくなり、クエリの実行を HANA 側にネイティブに任せられます
  • MaxRows = 1000000 — 結果セットをベンチマークの行数に制限します
  • Timeout = 300 — HANA Cloud への SSL 接続に 5 分のタイムアウトを設定します

標準コネクタでの DirectQuery テスト中には、Power BI でレンダリングエラー("Something went wrong: An error occurred while rendering the report")が発生しました。セッションを再試行するには、Power BI を完全に終了して開き直す必要がありました。CData コネクタでは、同じデータとクエリでもこのエラーは発生しませんでした。

Microsoft 標準 SAP HANA コネクタ — Power BI Desktop での DirectQuery のレンダリングエラー
DirectQuery のパフォーマンス — 1,000,000 行(秒)
フェーズ CData SAP HANA Microsoft 標準 SAP HANA
接続時間 5.9 秒 (11.3 倍高速) 67.2 秒(1:07)
モデルのロード時間 80.7 秒(1:21) 71.2 秒(1:11)
エンドツーエンドの合計 86.6 秒(1:27) (37.4% 高速) 138.4 秒(2:18)

CData の接続時間が 6 秒だったのに対し、標準コネクタは 67 秒かかりました。この差は、新しい DirectQuery セッションを開始するたび、またタイムアウトで再接続が発生するたびに繰り返し生じます。接続後のモデルのロードは標準コネクタのほうが 9.5 秒速かったものの、CData は接続時間で 61 秒の優位があるため、セッション全体では 37% 速い結果となりました。


クライアントのリソース使用量

各テストのデータロードフェーズでは、CPU とメモリの消費量は両コネクタでほぼ同等でした。今回のベンチマークで見られたパフォーマンスの差は、クライアント側のリソース消費ではなく、接続のレイテンシーやデータ転送のスループットといった時間面に表れています。実行ごとのワーキングセットメモリのばらつきはロード時間の長さに連動しており、2 つのコネクタ間でリソース効率にアーキテクチャ上の違いがあることを示すものではありませんでした。


まとめ

稼働中の SAP HANA Cloud インスタンスから 100 万行を取得したインポートモードと DirectQuery モードの両方で、CData Power BI Connector for SAP HANA はすべての時間計測において Microsoft 標準コネクタを上回りました。

  • コールドスタート時の接続:9.4 倍高速 — 5.4 秒 vs. 50.9 秒
  • インポートモードでの 100 万行のロード:65.9% 高速 — 1:15 vs. 3:42
  • DirectQuery の接続:11.3 倍高速 — 5.9 秒 vs. 1:07
  • DirectQuery のエンドツーエンド:37.4% 高速 — 1:27 vs. 2:18
  • 安定性:標準コネクタでは DirectQuery のレンダリングエラーが発生しましたが、CData コネクタでは発生しませんでした
  • セットアップ:CData なら SAP クライアントのインストールも SAP アカウントも不要で、DirectQuery を使う前にオプションを切り替える必要もありません

参考資料

  1. CData Power BI Connector for SAP HANA
  2. Microsoft Learn — Power Query SAP HANA データベース コネクタ
  3. Amazon Reviews 2023 データセット
  4. SAP Community — Import Data from Files to SAP HANA Cloud
  5. SAP HANA Client のダウンロード

CData Power BI Connector for SAP HANA をお試しください

CData Power BI Connector for SAP HANA は、DirectQuery のフルサポートやサーバーサイドでのクエリプッシュダウンに対応しています。さらに、オンプレミスでもクラウドでも、Power BI から SAP までを一社でまとめてサポートします。既存のレポートや更新設定を変更することなく、お使いの SAP HANA 環境で今回の結果をぜひ検証してみてください。

まずは 30日間の無償トライアルからお試しください。クレジットカードは不要で、機能制限もありません。本番規模の負荷テストも含めて、すべての機能をご利用いただけます。