Essbase

まとめ

項目 説明
リリース状態 一般提供
製品 Power BI (セマンティック モデル)
サポートされている認証の種類 基本 (ユーザー名/パスワード)
関数リファレンス ドキュメント Essbase.Cubes

前提条件

Essbase 11.1.2.x バージョンがサポートされています。

サポートされる機能

  • インポート
  • Direct Query (Power BI セマンティック モデル)
  • 高度なオプション
    • 分単位のコマンド タイムアウト
    • [サーバー]
    • アプリケーション
    • MDX ステートメント

Power Query Desktop から Essbase に接続する

Essbase サーバーに接続するには:

  1. [データの取得] エクスペリエンスで [Essbase] オプションを選びます。

  2. Oracle Essbase Hyperion サーバーの URL を入力します。 通常、URL は http://[hostname]:[port number]/aps/XMLA のようになっています。 URL の内容は次のとおりです。

    • hostname (たとえば、yourservername.domain.com) は、お使いのシステムの Oracle Hyperion アプリケーション プロバイダー サービス (APS) サーバーのホスト名または IP アドレスです。

    • port number (たとえば、19000) は、APS サーバーが XMLA 要求をリッスンするポート番号です。

    • URL の最後の部分であるパス (つまり、/aps/XMLA) では大文字と小文字が区別され、示されているとおりに指定する必要があります。

      Essbase 接続ビルダー。

    URL の例を次に示します。

    • http://apsserver.company.com:19000/aps/XMLA—デフォルトのポート 19000 で完全修飾ホスト名を使用します。
    • http://hypserver01:13080/aps/XMLA—デフォルトのポート 13080 で不完全修飾ホスト名を使用します。
    • http://10.10.10.10/aps/XMLA—IP アドレスとポート 80 を使用 - デフォルトの 19000 から変更。
  3. インポート またはDirectQueryデータ接続モードを選択します。 詳細情報: Power BI Desktop で DirectQuery を使用する

    必要に応じて、接続クエリを変更する場合に使う詳細オプションに値を入力します。 詳細情報: 詳細オプションを使用して接続

  4. データ ソース (一意の URL で識別される) に初めて接続する場合は、アカウントの資格情報の入力を求めるメッセージが表示されます。 接続に使うユーザー名パスワードを入力します。 詳細情報: データ ソースを使用した認証

    Essbase 接続認証。

  5. [ナビゲーター] で、必要なデータを選びます。 次に、[データの変換] を選んで Power Query エディターのデータを変換するか、[読み込む] を選んで Power BI のデータを読み込みます。

    Essbase インポート データ ナビゲーター。

詳細オプションを使用して接続する

Power Query では、必要に応じてクエリに追加できる詳細オプションのセットが用意されています。 次の表に、Power Query で設定できるすべての詳細オプションを示します。

詳細オプション 説明
分単位のコマンド タイムアウト Power BI が呼び出しを破棄する前に、コマンドの実行を許可する最大時間を設定できるようにします。 コマンドのタイムアウトに達した場合、呼び出しを完全に放棄する前に、Power BI はさらに 2 回再試行する可能性があります。 この設定は、大量のデータに対してクエリを実行する場合に役立ちます。 コマンドのタイムアウトの既定値は 140 秒です。
[サーバー] オプションの MDX ステートメントを実行するサーバーの名前。 この値では大文字と小文字は区別されます。
アプリケーション オプションの MDX ステートメントを実行するアプリケーションの名前。 この値では大文字と小文字は区別されます。
MDX ステートメント 必要に応じて、実行する特定の MDX ステートメントを Oracle Essbase サーバーに指定します。 通常、Power BI は返されるキューブのメジャーとディメンションを対話的に決定します。 ただし、MDX ステートメントを指定すると、その特定の MDX ステートメントの結果が読み込まれます。 MDX ステートメントを指定する場合は、MDX ステートメントを実行する場所を示すサーバー (たとえば、essbaseserver-1) とアプリケーション (たとえば、Sample) の詳細オプションも指定する必要があります。 また、MDX ステートメントは、インポートに設定されたデータ接続モードと組み合わせてのみ使用できます。

一般に、SmartView によって生成されたか、Essbase Admin に受け入れられた MDX は、Power BI と 100% の互換性がありません。

PowerBI では、MDX クエリで 0 軸にメジャーを指定する必要があります。 さらに、XMLA ではレベルの番号付けは反転されます。 最も粒度の小さいレベルは、XML ではレベル 0、1 などですが、Essbase ではその "正反対" です。 したがって、レベル番号が MDX クエリで明示的に使われている場合は、調整する必要があります。

コマンドのタイムアウトと MDX の詳細オプションが設定された Essbase 接続認証。

データ インポート時にデータ ソース ナビゲーターを使う

データ接続モードインポートに設定されている場合、データ ソース ナビゲーターでは、URL で指定した APS サーバー用に構成されたサーバーを読み込みます。 ツリー内のサーバー ノードを展開すると、使用可能なアプリケーションが表示されます。 アプリケーション ノードを展開すると、使用可能なデータベース (キューブとも呼ばれる) が表示されます。 データベース ノードを展開すると、使用可能なメジャーとディメンションが表示されます。 ディメンションをさらに展開して、各ディメンションの階層内のレベルを表示することができます。

名前の横にあるチェック ボックスをオンにして、メジャーとすべての (または特定の) ディメンション レベルを選びます。 右側のペインにデータのプレビューが表示されます。 [読み込み] ボタンを選ぶと、選択内容に関連付けられているデータを取得したり、[データの変換] ボタンを選んで、Power BI にデータを読み込む前にデータに対してさらにフィルターを設定したりできます。

Essbase インポート データ ナビゲーター。

Essbase 管理と比較した表示の違い

ナビゲーターでディメンション階層を展開すると、Essbase Administration Services コントロール パネルの使用と比較して、ディメンション階層が異なって見える場合があります。

例として、次の画像は、Essbase Administration Services からエンティティのディメンション階層を展開したものです。

Essbase Administration Services。

一方、Power Query ナビゲーターでは、同じエンティティが次のように展開されて表示されます。

Essbase インポート データ ナビゲーターの選択。

この外観は、スタイル上のものであり、データに違いがない点に注意してください。 Power Query ナビゲーターのレベルは、階層レベルに対応しています。

上の例では、レベル 1 には "R_ReportingUnits"、"Adjustment Entity Input" と "No_Entity" が含まれます。 レベル 2 には、"R_Americas"、"R_EMEA"、"R_AsiaPacific"、"1_ReportingUnits_Adjustment"、"CALA_HFM_Input"、"CALA_Total" などが含まれています。

その理由は、Power Query のナビゲーターが表示できるメンバーが 10,000 個に制限されており、階層の下に数百万または数十億のメンバーが存在する可能性があるからです。 (Power Query Online などのように) メンバーの表示制限がない場合でも、多くの有効な値が存在するツリー形式で個々のメンバーを移動して選ぶのは面倒であり、すぐに使い勝手が悪くなります。

そのため、階層レベルをグループ化すると、インポートする項目の選択が容易になり、その後のレポート生成ではフィルターを使って、エンド ユーザーが必要とするメンバーのみを対象にすることができます。

DirectQuery にデータ ソース ナビゲーターを使う

DirectQueryデータ接続モードが選ばれている場合、データ ソース ナビゲーターでは、URL で指定した APS サーバー用に構成されたサーバーを読み込みます。 ツリー内のサーバー ノードを展開すると、使用可能なアプリケーションが表示されます。 アプリケーション ノードを展開すると、使用可能なデータベース (キューブとも呼ばれる) が表示されます。

Essbase Direct Query データ ナビゲーターの選択。

既知の制限事項

Essbase コネクタでは、メジャー階層はサポートされていません。 すべてのメジャーが同じレベルに表示されます。 必要なすべてのメジャーを選ぶこともできます。 メジャーの数が多い場合は、検索フィールドを使って、表示されるメジャーを絞り込むことができます。

パフォーマンスに関する考慮事項

DirectQuery モードでの Power BI との対話処理は非常に動的です。 チェックボックスをオンにして、メジャーまたはディメンション レベルを視覚化に含めるようにした場合、Power BI Desktop によってクエリが生成され、Oracle Essbase サーバーに送信されて結果を取得します。 Power BI は、パフォーマンス向上のために、繰り返されるクエリをキャッシュするよう最適化されています。 ただし、新しいクエリが生成された場合は、新しい結果を生成するように Oracle Essbase サーバーに送信します。 選ばれたメジャーの数、ディメンション レベル、適用されているフィルターによっては、Oracle Essbase サーバーから応答が返されるよりも速くクエリが送信されることがあります。 パフォーマンスを改善し、応答性を向上させるには、Oracle Essbase サーバーとの対話を最適化するために、次の 3 つの方法を検討してください。

クエリを減らすオプション

送信するクエリの数を減らすには、3 つのオプションがあります。 Power BI Desktopで、ファイルタブを選択し、オプションと設定>オプションを選択し、現在のファイルセクションでクエリの削減を選択します。

クエリを減らすオプション。

[次によって送信されるクエリの数を減らす] の下の [既定でクロス強調表示/クロス フィルターを無効にしています] オプションを選ぶと、既定によるクロス強調表示/クロス フィルター処理が無効になります。 無効にした場合、同じディメンションの他のレベルのメンバーをフィルター処理しても、フィルター内のメンバー リストは更新されません。 [[適用] ボタンを表示し、次についてのクエリの送信を 1 回だけにする] の下にある [スライサーの選択] オプションを選ぶと、スライサーの選択が変更されたときに [適用] ボタンが表示されます。 [[適用] ボタンを表示し、次についてのクエリの送信を 1 回だけにする] の下にある [フィルターの選択] オプションを選ぶと、フィルターの選択が変更されたときに [適用] ボタンが表示されます。

Note

これらのオプションは、現在作業中のファイルにのみ適用されます。 [現在のファイル] オプションの設定は、ファイルと共に保存され、同じファイルを開くときに復元されます。

インポート モードでディメンション レベルを追加するときのフィルターの反復適用

Oracle の Essbase などの多次元キューブ データ ソースを使ってインポート モードで操作する場合、Power Query では、最初にデータベースの [ナビゲーター] ダイアログ ボックスにメジャー、ディメンション、ディメンション レベルが表示されます。 ただし、Power BI を使うと、データの選択と視覚化は簡単になりますが、サーバーから取得するデータが大量になる場合があります。

次の手順では、各レベルでディメンション メンバーにフィルターを反復的に適用することによって、Power BI にデータをインポートするときに必要以上のデータを取得する可能性を減らす方法を示しています。

Oracle Essbase データ ソースへの接続

  1. Power Query Desktop から Essbase に接続する」の手順に従い、インポート モードを使って Essbase サーバーに接続します。

  2. ツリーを展開して、目的のサーバー、アプリケーション、データベースにドリルダウンし、データベースのメジャーとディメンションが表示されるようにします。 ここでは、メジャーと 1 つのディメンション レベルだけを選びます。 最も重要なディメンション レベルを選びます。 後の手順では、ディメンション レベルを段階的に追加して、結果を作成していきます。

    最も重要なディメンションとメジャーの選択

  3. 選んだメジャーとディメンション レベルをインポートするには、[読み込み] を選びます。

    インポートがロードされた

ディメンション レベルを追加するためのクエリの編集

これで開始点ができたので、ディメンション レベルを追加したり、フィルターを適用したりしながら進めることができます。

  1. Power BI Desktop リボンで [クエリを編集] を選び、プロセスを開始します。

    [クエリの編集] を選択する

  2. 初期ディメンジョンにフィルタ処理したいメンバがある場合は、列プロパティ・ボタン [列プロパティ] ボタン を選択して、このレベルで使用可能なディメンジョン・メンバのリストを表示します。 このレベルで必要なディメンション メンバーのみを選び、[OK] を選んでフィルターを適用します。

    フィルターの適用

  3. これで結果のデータは、適用されたフィルターで更新されます。 [適用したステップ] に、設定したフィルターの新しいステップ ([フィルターされた行]) が含まれるようになりました。 ステップの設定ボタン [設定] ボタン を選択して、後でフィルタを変更することができます。

    フィルターを変更する

  4. ここで、新しいディメンション レベルを追加します。 この場合は、最初に選んだのと同じディメンションからすぐ下のレベルを追加します。 リボンの [項目の追加] を選ぶと、[ナビゲーター] ダイアログ ボックスが表示されます。

    [項目の追加] を選択する

  5. 同じディメンションに移動しますが、今回は、最初のレベルからすぐ下のレベルを選びます。 次に、[OK] を選んで、結果にディメンション レベルを追加します。

    新しいディメンションを選んで追加する

  6. 結果グリッドには、新しいディメンション レベルのデータが含まれるようになりました。 最上位レベルでフィルターを適用したので、2 番目のレベルの関連するメンバーだけが返されることに注意してください。

    新しいディメンション レベルを示すグリッド

  7. 最初のレベルで行ったように、2 番目のレベルのディメンションにフィルターを適用できるようになりました。

    2 番目のレベルにフィルターを適用する

  8. これにより、この後の各手順で、必要なメンバーとデータだけがサーバーから取得されます。

    適用されたフィルター

  9. ここで、前の手順を繰り返して、新しいディメンション レベルを追加してみましょう。 リボン バーの [項目の追加] をもう一度選びます。

    [項目の追加] を再選択する

  10. 目的のディメンション レベルに移動して選び、[OK] を選んで結果にディメンション レベルを追加します。

    必要なディメンションを再選択する

  11. 新しいディメンション レベルが結果に追加されます。

    追加された新しいディメンション

  12. 必要に応じて、このディメンション レベルにフィルターを適用します。

    新しいディメンションへフィルターを適用する

  13. 結果を観察します。

    結果を観察する

変更の適用とデータの読み込み

  1. 必要なすべてのディメンション レベルを追加し、必要なすべてのフィルターを設定したら、右上隅の [閉じる] を選んでエディターを閉じます。

    [閉じる] ボタンを選択する

  2. [はい] を選択して変更を適用します。

    [はい] ボタンを選択する

  3. 変更が適用されるまで待ちます。

    変更を待機する

  4. [フィールド] ペインで、新しいディメンション レベルを確認します。

    新しいディメンションを確認する

これで、レポートと視覚化を作成する準備ができました。

DirectQuery モードでディメンション レベルを追加するときのフィルターの反復適用

(Oracle の Essbase などの) 多次元キューブ データ ソースを使って DirectQuery モードで操作する場合、Power BI では、[フィールド] ペインにキューブのディメンションとレベルが表示されます。

ディメンションとレベル ディメンション メンバーに基づいて表示およびフィルター処理するには。

  1. ディメンション レベルを [フィールド] ペインから [フィルター] ペインにドラッグ アンド ドロップします。 ディメンション レベルは、必要に応じて、[このビジュアルでのフィルター] の下の [ここにデータ フィールドを追加してください] 領域、[このページでのフィルター]、または [すべてのページでのフィルター] にドラッグできます。

    ここにフィールドを追加する

  2. ディメンション レベルが [フィルター] ペインにあり、[基本フィルター] にフィルターの種類が設定されている場合は、そのディメンションのレベルのメンバーが使用可能なフィルターの一覧として表示されます。

  3. 結果に含めるメンバーを確認することができます。

    または、[すべて選択] を選び、結果に含めないメンバーをオフにすることもできます。

    リスト内のメンバーを検索するには、そのフィルターの検索フィールドに文字をいくつか入力します。

    必要なメンバーを確認する

  4. 同じディメンションの複数のレベルに対してフィルターがある場合、ディメンションの上位レベルのメンバーを選ぶと、そのディメンションの下位レベルで使用できるメンバーが変更されることがわかります。

    このクロス強調表示/クロス フィルター動作を無効にするには、「クエリを減らすオプション」で説明されているように、[既定でクロス強調表示/クロス フィルターを無効にしています] オプションをオンにします。

    フィルター処理の変更をメンバーに通知する

  5. ディメンション レベルのフィルターで必要なメンバーを選び終わったら、そのディメンション レベルを視覚化に追加すると便利です。 [フィールド] ペインで一致するディメンション レベルを確認すると、現在の視覚化に追加されます。

    新しいディメンションを追加する

フィルターの追加の詳細については、「Power BI でのレポートへのフィルターの追加」を参照してください。

トラブルシューティング

このセクションでは、発生する可能性がある一般的な問題の概要と、問題に対処するためのトラブルシューティング手順について説明します。

接続に関する問題

症状 1

Power BI Desktop で "リモート サーバーに接続できません" というエラー メッセージが返されます。

解像度

  1. Essbase Administration Service (EAS) コンソールのプロバイダー サーバーとスタンドアロン サーバーに対して、Essbase Analytic Provider Services (APS) サーバーが正しく構成されていることを確認します。 詳細情報: Essbase クラスターの構成

  2. URL が正しいか確認します。

    • ホスト名と IP アドレスが正しいか確認します。
    • 指定されたポートが正しいか確認します。
    • http (https ではない) プロトコルが指定されているのを確認します。
    • URL の /aps/XMLA パスの大文字と小文字が正しいか確認します。
  3. Power BI Desktop と指定されたホスト名の間にファイアウォールがある場合は、指定されたホスト名とポートでファイアウォールを経由して送信できることを確認します。

検証

もう一度接続を試してもエラーが表示されず、キューブとメンバーの一覧がナビゲーション ウィンドウに表示されます。 インポート モードで、選んでプレビューを表示することもできます。

症状 2

Power BI Desktop で次のエラー メッセージが返されます。"提供された資格情報で認証することができませんでした。 再試行してください。"

解像度

指定されたユーザー名とパスワードが正しいか確認します。 値を慎重に再入力します。 パスワードでは大文字と小文字が区別されます。

検証

ユーザー名とパスワードを修正した後は、プレビューでメンバーと値を表示したり、データを読み込んだりできるようになります。

症状 3

Power BI Desktop で次のエラー メッセージが返されます。"ルート レベルのデータが無効です。 行 1、位置 1。"

解像度

Essbase Administration Service (EAS) コンソールのプロバイダー サーバーとスタンドアロン サーバーに対して、Essbase Analytic Provider Services (APS) サーバーが正しく構成されていることを確認します。 詳細情報: Essbase クラスターの構成

検証

もう一度接続を試してもエラーが表示されず、キューブとメンバーの一覧がナビゲーション ウィンドウに表示されます。 インポート モードで、選んでプレビューを表示することもできます。

症状 4

Oracle Essbase Analytic Provider Services (APS) サーバーに正常に接続されると、データ ソース ナビゲーターの URL ノードの下にサーバーが一覧表示されます。 ただし、サーバー ノードを展開すると、そのサーバー ノードの下にはアプリケーションが表示されません。

解像度

Oracle Hyperion サーバーを構成して、Essbase Administration Service (EAS) コンソールからプロバイダー サーバーとスタンドアロン サーバーを定義することをお勧めします。 Essbase Administration Service (EAS) Console でのプロバイダー サーバーとスタンドアロン サーバーの登録に関する補遺セクションを参照してください。

検証

もう一度接続を試してもエラーが表示されず、キューブとメンバーの一覧がナビゲーション ウィンドウに表示されます。 インポート モードで、選んでプレビューを表示することもできます。

タイム アウトまたは大規模なデータの問題

症状 1

Power Query で次のエラー メッセージが返されます。"操作がタイムアウトしました"

解像度

  1. ネットワークが安定しており、データ ソース URL に指定されている Essbase Analytic Provider Services (APS) サーバーへの信頼性の高いネットワーク パスがあることを確認します。

  2. サービスに対するクエリが大量のデータを返す可能性がある場合は、コマンドのタイムアウト間隔を長めに (またはより長く) 指定します。 可能であれば、クエリにフィルターを追加して、返されるデータの量を減らします。 たとえば、取得したい各ディメンションの特定のメンバーのみを選びます。

検証

再試行してデータを読み込み、問題が解決しない場合は、タイムアウト間隔をもっと長くするか、さらにデータをフィルター処理してください。 それでも問題が解決しない場合は、症状 3 の解決策を試してください。

症状 2

クエリは、「内部エラー: クエリは大きすぎるメモリ (> 4GB) を割り当てているため、実行できません」というエラー メッセージを返します。 Query allocation exceeds allocation limits." (内部エラー: クエリのメモリ割り当てが大きすぎる ( > 4GB) ため、実行できません。クエリの割り当てが割り当て制限を超えています。)

解像度

実行しようとしているクエリは、Oracle Essbase サーバーが処理できる範囲を超える結果を生成しています。 クエリのフィルターを指定するか、または増やして、サーバーから返されるデータの量を減らします。 たとえば、各ディメンションのレベルごとに特定のメンバーを選んだり、メジャーの値に数値制限を設定したりします。

検証

再試行してデータを読み込み、問題が解決しない場合は、タイムアウト間隔をもっと長くするか、さらにデータをフィルター処理してください。 それでも問題が解決しない場合は、症状 3 の解決策を試してください。

症状 3

Essbase Analytic Provider Services (APS) または Essbase サーバーで、長時間実行しているセッションを持つ接続が多数あります。

解像度

接続モードが DirectQuery の場合、選んだ視覚化に追加するメジャーまたはディメンション レベルを簡単に選択できます。 ただし、新しい選択ごとに、Essbase Analytic Provider Services (APS)、Essbase サーバーへの新しいクエリと新しいセッションが作成されます。 クエリの数を減らしたり、各クエリ結果のサイズを減らしたりするには、いくつかの方法があります。 「パフォーマンスに関する考慮事項」を確認して、サーバーのクエリ回数を減らし、クエリ結果のサイズも減らします。

検証

再試行してデータを読み込みます。

MDX の実行時にキーが一致しない

症状:

MDX ステートメントで、"キーがテーブルのどの行とも一致しませんでした" というエラー メッセージが返されます。

解像度

[サーバー] フィールドと [アプリケーション] フィールドの値または大文字と小文字が一致していない可能性があります。 [編集] ボタンを選び、[サーバー] フィールドと [アプリケーション] フィールドの値と、大文字と小文字を修正します。

検証

再試行してデータを読み込みます。

キューブを取得できない問題 - MDX

症状:

MDX ステートメントで次のエラー メッセージが返されます。"Unable to get the cube name from the statement. Check the format used for specifying the cube name" (ステートメントからキューブ名を取得できません。キューブ名の指定に使われた形式を確認してください)。

解像度

MDX ステートメントの FROM 句のデータベース名が、アプリケーション名とデータベース名で完全修飾されていることを確認します (例: [Sample.Basic])。 [編集] ボタンを選び、MDX ステートメントの FROM 句の完全修飾データベース名を修正します。

検証

再試行してデータを読み込みます。

Essbase エラー (1260060) の問題 - MDX

症状:

MDX ステートメントで、"Essbase Error (1260060): The cube name XXXX does not match with current application/database" (Essbase エラー (1260060): キューブ名 XXXX が現在のアプリケーション/データベースと一致しません) というエラー メッセージが返されます

解像度

アプリケーション名と FROM 句の完全修飾データベース名が一致していることを確認します。 [編集] ボタンを選び、アプリケーション名か MDX ステートメントの FROM 句の完全修飾データベース名のどちらかを修正します

検証

再試行してデータを読み込みます。

Essbase エラー (1200549): MDX クエリでの繰り返しディメンション [Measures]

症状:

ディメンションを読み込むと、MDX クエリで "Essbase Error (1200549): Repeated dimension [Measures] in MDX query" (Essbase エラー (1200549): 繰り返しディメンション [Measures]) というエラー メッセージが返されます。

解像度

  1. Essbase サーバーにサインインし、Essbase Administration Services Console を開き、管理者ユーザー (または問題のあるデータベースへのアクセス許可を持つユーザー) でサインインします。

  2. 問題のある「メジャー」ディメンションを持つ Essbase サーバー > アプリケーション > データベースに移動します。

  3. データベースのアウトラインをロック解除して編集します。

  4. どのディメンションを "アカウント" ディメンションの種類にするか決めます。 それを右クリックし、[Edit member properties]\(メンバーのプロパティを編集\) を選びます。

  5. [ディメンションの種類] フィールドを選び、[アカウント] に設定します。 [OK] を選択します。

    アカウント ディメンション

  6. アウトラインを確認して保存します。

検証

再試行してディメンションを読み込みます。