SAP BW のインポートと DirectQuery の比較
Note
この記事では、Power BI Desktop のインポート モードと DirectQuery モードの違いについて説明します。 Power Query Desktop または Power Query Online でインポート モードを使う場合の説明については、次のセクションを参照してください。
SAP BW Application Server コネクタ:
- Power Query Desktop から SAP BW Application Server に接続する
- Power Query Online から SAP BW Application Server に接続する
SAP BW Message Server コネクタ:
Power Query を使うと、オンライン サービス、データベース、異なるファイル形式など、さまざまなデータ ソースに接続することができます。 Power BI Desktop を使っている場合、これらのデータ ソースに接続するには 2 つの方法があります。データを Power BI にインポートする方法と、ソース リポジトリのデータに直接接続する方法 (DirectQuery と呼ばれます) です。 SAP BW システムに接続する場合も、この 2 つの接続モードを選択できます。 DirectQuery をサポートするデータ ソースの一覧については、「Power BI データ ソース」を参照してください。
ここでは、2 つの接続モードの主な違いと、SAP BW の接続に関連するガイドラインと制限事項について説明します。 DirectQuery モードの詳細については、Power BI での DirectQuery の使用に関する記事を参照してください。
Import Connections\(接続のインポート\)
Power BI Desktop を使ってデータ ソースに接続すると、ナビゲーターで一連のテーブル (リレーショナル ソースの場合) または一連のソース オブジェクト (多次元ソースの場合) を選択できます。
SAP BW 接続の場合は、表示されたツリーから、クエリに含めるオブジェクトを選択できます。 InfoProvider または InfoProvider 用の BEx クエリを選び、その主要な数値とディメンションを展開し、クエリに含める特定の主要な数値、特性、属性 (プロパティ)、または階層を選択できます。
この選択により、列と行で構成されるフラット化されたデータ セットを返すクエリが定義されます。 選んだ特性レベル、プロパティ、主要な数値は、データ セット内で列として表現されます。 主要な数値は、選んだ特性とそのレベルに従って集計されます。 データのプレビューがナビゲーターに表示されます。 データを読み込む前に、Power Query でこれらのクエリを編集して、フィルターの適用、データの集計、異なるテーブルの結合などを行うことができます。
クエリで定義したデータを読み込むと、Power BI のメモリ内キャッシュにインポートされます。
Power BI Desktop で視覚化の作成を開始すると、キャッシュにインポートされたデータに対してクエリが実行されます。 キャッシュされたデータのクエリは非常に高速であり、視覚化の変更はすぐに反映されます。
ただし、データをさらに集計する視覚化を構築するときに、非加算的なメジャーを扱う場合は注意が必要です。 たとえば、Sales Office (営業所) とそれぞれの Growth % (成長率) をクエリでインポートした場合、ユーザーがすべての Sales Office (営業所) の Growth % (成長率) の値を [合計] する視覚化を作成すると、その集計はキャッシュされたデータに対してローカルで実行されます。 この結果は、SAP BW から全体の Growth % (成長率) を要求した場合と同じではなく、おそらく意図したものではありません。 このような偶発的な集計を避けるには、このような列の [既定の概要] を [集計しない] に設定すると便利です。
基になるソースのデータが変更された場合に視覚化に反映されません。 [最新の情報に更新] を実行し、基となるソースから Power BI のキャッシュにデータを再インポートする必要があります。
Power BI サービスにレポート (.pbix ファイル) を発行すると、セマンティック モデルが作成され、Power BI サーバーにアップロードされます。 キャッシュにインポートされたデータは、そのセマンティック モデルに含まれます。 Power BI サービスでレポートを操作している間に、アップロードされたデータに対してクエリが実行されるので、応答時間と対話機能が高速になります。 セマンティック モデルの定期更新を設定することや、データを手動で再インポートすることができます。 オンプレミスの SAP BW データ ソースの場合は、オンプレミス データ ゲートウェイを構成する必要があります。 オンプレミス データ ゲートウェイのインストールと構成については、次のドキュメントを参照してください。
DirectQuery の接続
DirectQuery モードで SAP BW ソースに接続する場合のナビゲーション エクスペリエンスは少し異なります。 ナビゲーターには、SAP BW で使用できる InfoProvider および BEx クエリの一覧が表示されますが、プロセスに定義されている Power BI クエリはありません。 ソース オブジェクト自体、つまり InfoProvider または BEx クエリを選びます。接続すると、特性や主要な数値を含むフィールド一覧が表示されます。
変数を使う SAP BW クエリの場合は、クエリのパラメーターとして値を入力または選択できます。 [適用] ボタンを選んで、指定したパラメーターをクエリに含めます。
データ プレビューではなく、選んだ InfoCube または BEx クエリのメタデータが表示されます。 [ナビゲーター] で [読み込み] ボタンを選んでも、データはインポートされません。
Power BI Desktop リボンの [クエリの編集] オプションを使って、SAP BW クエリの変数値を変更することができます。
Power BI Desktop で視覚化の作成を開始すると、SAP BW の基となるデータ ソースに対してクエリが実行され、必要なデータが取得されます。 視覚化の更新にかかる時間は、基となる SAP BW システムのパフォーマンスによって変わります。
基となるデータが変更されても、すぐには視覚化に反映されません。 この場合も [最新の情報に更新] を実行する必要があります。その結果、基となるデータ ソースに対して各視覚化のクエリが再実行されます。
レポートを Power BI サービスに発行すると、インポート接続の場合と同様に、Power BI サービスにセマンティック モデルが作成されます。 ただし、そのモデルにデータは含まれません。
Power BI サービスでレポートを操作している間に、基となるデータ ソースに対してクエリを再実行し、必要なデータを取得します。 SAP BW および SAP HANA システムへの DirectQuery 接続の場合、オンプレミス データ ゲートウェイをインストールし、データ ソースをそのゲートウェイに登録しておく必要があります。
変数を使う SAP BW クエリの場合、エンド ユーザーはクエリのパラメーターを編集できます。
Note
エンド ユーザーがパラメーターを編集できるようにするには、セマンティック モデルを Premium ワークスペースに発行し、DirectQuery モードにして、シングル サインオン (SSO) を有効にする必要があります。
一般的な推奨事項
可能な場合は常に、Power BI にデータをインポートすることをお勧めします。 データをインポートすると、Power BI の高パフォーマンス クエリ エンジンを活用し、データに対する高い対話性とあらゆる機能を備えたエクスペリエンスを提供することができます。
ただし、DirectQuery の場合、SAP BW に接続するときに次のような利点があります。
SSO を使って SAP BW データにアクセスする機能を提供し、基となる SAP BW ソースに定義したセキュリティを確実に適用できます。 SSO を使って SAP BW にアクセスする場合、SAP のユーザーのデータ アクセス許可が適用されるため、ユーザーによって異なる結果になる可能性があります。 ユーザーが閲覧権限を持たないデータは、SAP BW によってトリミングされます。
基となる SAP BW ソースで変更が頻繁に行われる場合でも、最新のデータを簡単に確認できます。
ソース SAP BW に対して常に集計データのクエリを実行するという、複雑なメジャーを簡単に処理できます。インポートされたデータのキャッシュに対して意図しない誤解を招くような集計が実行されるリスクはありません。
データのキャッシュが抽出および発行されません。このようなことは、データの主権や適用されるセキュリティ ポリシーに違反する可能性があります。
一般に、DirectQuery を使うのが適しているのは、基になるデータ ソースが一般的な集計クエリに対する対話型クエリを数秒以内に提供でき、生成されるクエリの負荷を処理できる場合のみです。 さらに、DirectQuery の使用に付随する制限事項の一覧を検討し、それでも目的を達成できることを確認する必要があります。
非常に大規模なデータ セットを使う場合や、DirectQuery モードで SAP BW クエリの応答時間が遅い場合、Power BI にはクエリの送信数を減らすレポートのオプションがあります。これによってレポートを扱いやすくなります。 Power BI Desktop でこのようなオプションにアクセスするには、[ファイル]>[オプションと設定]>[オプション] の順に進み、[クエリを減らす] を選びます。
レポート全体のクロス強調表示を無効にすることで、SAP BW に送信されるクエリ数を減らすことができます。 また、スライサーまたはフィルターの選択に [適用] ボタンを表示することもできます。 スライサーやフィルターはいくつでも選択できますが、[適用] ボタンを選ぶまではクエリは SAP BW に送信されません。 選択項目はすべてのデータのフィルター処理に使われます。
これらの変更は、Power BI Desktop でレポートを操作しているときにレポートに適用され、ユーザーが Power BI サービスでレポートを利用しているときに適用されます。
Power BI サービスでは、DirectQuery 接続のクエリ キャッシュは、データ ソースに対するクエリ実行によって定期的に更新されます。 既定では、この更新は 1 時間ごとに行われますが、セマンティック モデルの設定で異なる間隔に構成することができます。 詳細については、「Power BI でのデータの更新」を参照してください。
また、Power BI での DirectQuery の使用に関する記事で説明されている一般的なベスト プラクティスの多くは、SAP BW に対して DirectQuery を使う場合にも同様に適用できます。 SAP BW に固有のその他の詳細については、「Power BI で DirectQuery を使用して SAP Business Warehouse に接続する」を参照してください。