ラボ - Power BI Desktop でデータをモデル化する (パート 2)

完了

環境にアクセスする

(前のラボから続行する場合を除き) このラボを開始する前に、上の [ラボの起動] を選択します。

data-ai\student としてラボ環境に自動的にログインします。

これで、このラボの作業を開始できます。

ヒント

ラボ環境をドッキングしてウィンドウいっぱいに表示されるようにするには、上部中央にある画びょうのアイコンを選択します。

画びょうのアイコンが強調表示されているラボのスクリーンショット。

このラボの推定所要時間: 45 分

このラボでは、Salesperson テーブルと Sales テーブルの間に多対多のリレーションシップを作成します。 また、営業担当者が確実に自分の担当地域の売上データだけを分析できるように、行レベルのセキュリティも適用します。

このラボでは、次の作業を行う方法について説明します。

  • 多対多リレーションシップを構成する

  • 行レベルのセキュリティを適用する

ラボのストーリー

このラボは、データの準備に始まり、レポートおよびダッシュボードとして発行するまでの完全なストーリーとして設計されたラボ シリーズの 1 つです。 ラボは任意の順序で完了できます。 しかしながら、複数のラボに取り組む場合は、最初の 10 のラボについては、次の順序で行うことをお勧めします。

  1. Power BI Desktop でデータを準備する

  2. Power BI Desktop でデータを読み込む

  3. Power BI Desktop でデータをモデル化する (パート 1)

  4. Power BI Desktop でデータをモデル化する (パート 2) << 現在はここです。 これは、現在のモジュールのラボです。

  5. Power BI Desktop で DAX 計算を作成する (パート 1)

  6. Power BI Desktop で DAX 計算を作成する (パート 2)

  7. Power BI Desktop でレポートをデザインする (パート 1)

  8. Power BI Desktop でレポートをデザインする (パート 2)

  9. Power BI ダッシュボードを作成する

  10. Power BI Desktop でデータ分析を実行する

  11. Power BI のページ分割されたレポートを作成する

注意

各ラボは、前のラボ作業がすべて完了した PBIX ファイルを使用して開始されます。 何らかの理由で作業が失われた場合は、次のラボの冒頭に示されているフォルダーから、その時点までの進行状況を含む PBIX ファイルを開くことができます。

演習 1: 多対多リレーションシップを作成する

この演習では、Salesperson テーブルと Sales テーブルの間に多対多のリレーションシップを作成します。

タスク 1: 開始する

このタスクでは、ラボの環境を設定します。

重要

前のラボから継続している (そのラボを正常に完了した) 場合は、このタスクは行わないでください。 代わりに、次のタスクから続行してください。

  1. Power BI Desktop を開くには、タスク バーにある Microsoft Power BI Desktop ショートカットを選択します。

  2. 開始ウィンドウを閉じるには、ウィンドウの左上にある [X] を選択します。

  3. スターター Power BI Desktop ファイルを開くには、[ファイル] リボン タブを選択して Backstage ビューを開きます。

  4. [レポートを開く] を選択します。

  5. [レポートを参照] を選択します。

  6. [開く] ウィンドウで、D:\DA100\Labs\04-configure-data-model-in-power-bi-desktop-advanced\Starter フォルダーに移動します。

  7. Sales Analysis ファイルを選択します。

  8. [Open] を選択します。

  9. 情報ウィンドウが開いている場合はすべて閉じます。

  10. ファイルのコピーを作成するには、[ファイル] リボン タブを選択して Backstage ビューを開きます。

  11. [名前を付けて保存] を選択します。

  12. 変更の適用を求めるメッセージが表示されたら、[適用] を選択します。

  13. [名前を付けて保存] ウィンドウで、D:\DA100\MySolution フォルダーに移動します。

  14. [保存] を選択します。

タスク 2: 多対多リレーションシップを作成する

このタスクでは、Salesperson テーブルと Sales テーブルの間に多対多のリレーションシップを作成します。

  1. Power BI Desktop のレポート ビューの [フィールド] ペインで、次の 2 つのフィールドを選択してテーブル ビジュアルを作成します。

    • Salesperson | Salesperson

    • Sales | Sales

    このラボでは、フィールドを参照するために簡略表記を使用します。 Salesperson | Salesperson のようになります。 この例では、Salesperson はテーブル名、Salesperson はフィールド名です。

    結果のテーブル ビジュアルのスクリーンショット。

    このテーブルには、各営業担当者の売上が表示されます。 ただし、営業担当者と売上の間には別のリレーションシップがあります。 営業担当者により、担当する地域の数は 1 つ、2 つ、またはそれより多い可能性もあります。 さらに、1 つの営業地域に複数の営業担当者が割り当てられている場合もあります。

    パフォーマンス管理の観点からは、営業担当者の (割り当てられた担当地域に基づく) 売上を分析し、売上目標と比較する必要があります。 次の演習では、この分析をサポートするリレーションシップを作成します。

  2. Michael Blythe の売上が約 900 万ドルであることにご注意ください。

  3. モデル ビューに切り替えます。

  4. SalespersonRegion テーブルをドラッグして、Region テーブルと Salesperson テーブルの間に配置します。

  5. ドラッグ アンド ドロップ手法を使用して、次の 2 つのモデル リレーションシップを作成します。

    • Salesperson | EmployeeKey から SalespersonRegion | EmployeeKey

    • Region | SalesTerritoryKey から SalespersonRegion | SalesTerritoryKey

    SalespersonRegion テーブルは、ブリッジ テーブルと考えることができます。

  6. レポート ビューに切り替えて、ビジュアルが更新されていないことを確認します。 Michael Blythe の売上結果は変わっていません。

  7. モデル ビューに戻り、Salesperson テーブルからのリレーションシップ フィルターの方向 (矢印の向き) をたどります。

    Salesperson テーブルによって Sales テーブルがフィルター処理されると考えます。 SalespersonRegion テーブルもフィルター処理されますが、続けて Region テーブルにフィルターが伝播されることはありません。 (矢印が間違った向きを指しています。)

    Region、SalespersonRegion、Salesperson テーブル間のリレーションシップのスクリーンショット。

  8. Region テーブルと SalespersonRegion テーブル間のリレーションシップを編集するには、リレーションシップをダブルクリックします。

  9. [リレーションシップの編集] ウィンドウの [クロス フィルターの方向] ボックスの一覧で、[両方] を選択します。

  10. [両方向にセキュリティ フィルターを適用する] チェック ボックスをオンにします。

    この設定により、行レベルのセキュリティが適用されているときは、双方向にフィルター処理が確実に適用されるようになります。 次の演習では、セキュリティ ロールを構成します。

    [クロス フィルターの方向] ドロップダウン リストのスクリーンショット。

  11. [OK] を選択します。

  12. リレーションシップの矢印の向きが両方になっていることにご注意ください。

    向きが両方向になっているリレーションシップの矢印のスクリーンショット。

  13. レポート ビューに切り替えて、売上の値が変わっていないことを確認します。

    この問題は、今度は、Salesperson テーブルと Sales テーブルの間に 2 つのフィルター伝播パスが可能であるという事実に関連します。 この曖昧さは、"テーブル数最小" の評価に基づいて内部的に解決されます。 明確にするため、モデルの設計にはこの種の曖昧さが存在しないようにする必要があります。 この問題には、このラボの後のパートで対処するか、Power BI Desktop で DAX 計算を作成する (パート 1) のラボを完了することによって対処します。

  14. モデル ビューに切り替えます。

  15. ブリッジ テーブルを介してフィルターを強制的に伝播するには、Salesperson テーブルと Sales テーブルの間のリレーションシップをダブルクリックします。

  16. [リレーションシップの編集] ウィンドウで、[このリレーションシップをアクティブにする] チェック ボックスをオフにします。

  17. [OK] を選択します。

    フィルターの伝播が、アクティブなパスのみを進むようになります。

  18. 図で、非アクティブなリレーションシップは破線で表されていることにご注意ください。

    点線のリレーションシップ矢印のスクリーンショット。

  19. レポート ビューに切り替えて、Michael Blythe の売上が今度は約 2,200 万ドルになっていることを確認します。

    Michael Blythe の売上が更新されたテーブル ビジュアルのスクリーンショット。

  20. また、各営業担当者 (追加されている場合) の売上がテーブルの合計を超えていることもわかります。

    地域の売上実績が 2 重、3 重などにカウントされるため、これは多対多のリレーションシップではよくあることです。 もう 1 人の営業担当者 Brian Welcker がリストに含まれるものとします。 彼の売上金額は合計売上金額と同じです。 彼は営業部長なので、これは正しい結果です。彼の売上は、すべての地域の売上によって測定されます。

    これで多対多リレーションシップは動作するようになりましたが、今度は営業担当者の売上を分析することができません (リレーションシップが非アクティブなため)。 Power BI Desktop で DAX 計算を作成する (パート 1) のラボで、営業担当者を表す計算テーブルを (各自の地域の) 実績分析のために導入すると、リレーションシップをもう一度アクティブにすることができます。

  21. モデリング ビューに切り替えて、図で Salesperson テーブルを選択します。

  22. [プロパティ] ペインの [名前] ボックスで、テキストを「Salesperson (Performance)」に置き換えます。

    名前が変更されたテーブルは、その目的を反映するようになりました。これは、担当営業地域の売上に基づいて営業担当者の実績を報告および分析するために使用されます。

タスク 3: Targets テーブルを関連付ける

このタスクでは、Targets テーブルへのリレーションシップを作成します

  1. Salesperson (Performance) | EmployeeID 列と Targets | EmployeeID 列からのリレーションシップを作成します。

  2. レポート ビューで、Targets | Target フィールドをテーブル ビジュアルに追加します。

  3. テーブル ビジュアルを拡大して、すべてのデータを表示します。

    Salesperson、Sales、Target の各列が含まれるようにテーブル ビジュアルを拡大したスクリーンショット。

    売上と目標を視覚化できるようになりました。 ただし、2 つの理由から注意が必要です。 第 1 に、期間に対するフィルターがないため、目標に将来の目標値も含まれます。 第 2 に、目標は加算できないため、合計が表示されないようにする必要があります。 これらは、ビジュアルの書式設定プロパティを使用して無効にするか、計算ロジックを使用して削除することができます。 Power BI Desktop で DAX 計算を作成する (パート 2) のラボでは、2 番目の方法に従って、複数の営業担当者をフィルター処理すると BLANK が返される目標メジャーを作成します。

演習 2: 行レベルのセキュリティを適用する

この演習では、行レベルのセキュリティを適用して、営業担当者は自分の担当地域で計上された売上しか見られないようにします。

タスク 1: 行レベルのセキュリティを適用する

このタスクでは、行レベルのセキュリティを適用して、営業担当者は自分の担当地域で計上された売上しか見られないようにします。

  1. データ ビューに切り替えます。

  2. [フィールド] ペインで、Salesperson (Performance) テーブルを選択します。

  3. データを確認すると、Michael Blythe (EmployeeKey 281) の UPN の値が michael-blythe@adventureworks.com になっています。

    Michael Blythe の担当営業地域が US Northeast (米国北東部)、US Central (米国中部)、US Southeast (米国南東部) の 3 つであることを思い出してください。

  4. レポート ビューに切り替えます。

  5. [モデリング] リボン タブで、[セキュリティ] グループ内から [ロールの管理] を選択します。

    [モデリング] リボン タブの [ロールの管理] が強調表示されたスクリーンショット。

  6. [ロールの管理] ウィンドウで、[作成] を選択します。

  7. [ロール] ボックスで、選択したテキストをロールの名前 (Salespeople) に置き換えて Enter キーを押します。

    [ロールの管理] ウィンドウの [ロール] オプションが強調表示されたスクリーンショット。

  8. Salesperson (Performance) テーブルにフィルターを割り当てるには、省略記号アイコン (…) を選択してから [フィルターの追加] | [UPN] を選択します。

    [テーブル] ペインで Salesperson (Performance) の省略記号ボタン、[フィルターの追加] の順に選択して UPN オプションが強調表示されたスクリーンショット。

  9. [Table Filter DAX Expression](テーブル フィルターの DAX 式) ボックスで、ValueUSERPRINCIPALNAME() に置き換えて式を変更します。

    [Table Filter DAX Expression](テーブル フィルターの DAX 式) ボックスのスクリーンショット。

    USERPRINCIPALNAME() は、認証されたユーザーの名前を返す Data Analysis Expressions (DAX) 関数です。 つまり、Salesperson (Performance) テーブルは、モデルをクエリするユーザーのユーザー プリンシパル名 (UPN) によってフィルター処理されます。

  10. [保存] を選択します。

  11. セキュリティ ロールをテストするには、[モデリング] リボン タブで、[セキュリティ] グループ内から [View As](表示方法) を選択します。

  12. [ロールとして表示] ウィンドウで [その他のユーザー] 項目を選択してから、対応するボックスに「michael-blythe@adventureworks.com」と入力します。

  13. Salespeople ロールを選択します。

    [ロールとして表示] ウィンドウで Salespeople と [その他のユーザー] を選択したスクリーンショット。

    この構成により、Salespeople ロールと、Michael Blythe の名前を借りたユーザーが使用されることになります。

  14. [OK] を選択します。

  15. レポート ページの上に、テストのセキュリティ コンテキストを説明する黄色のバナーが表示されていることに注目してください。

    Salespeople (営業担当者) としてレポートを表示しているというメッセージの黄色バナーのスクリーンショット。michael-blythe@adventureworks.com

  16. テーブル ビジュアルでは、営業担当者 Michael Blythe のみが表示されていることに注目してください。

    Michael Blythe のみが表示されたテーブル ビジュアルのスクリーンショット。

  17. テストを停止するには、黄色のバナーの右側にある [表示の停止] を選択します。

    Power BI Desktop ファイルが Power BI サービスに発行されるときに、発行後のタスクを完了して、セキュリティ プリンシパルを Salespeople ロールにマップする必要があります。 このラボでは行いません。

  18. ロールを削除するには、[モデリング] リボン タブで、[セキュリティ] グループ内から [ロールの管理] を選択します。

    行レベルのセキュリティについては、ラボでこれ以上は扱いません。

  19. [ロールの管理] ウィンドウで、[削除] を選択します。

    [ロールの管理] ウィンドウの [削除] ボタンが強調表示されたスクリーンショット。

  20. 削除するかどうかを確認するメッセージが表示されたら、[はい****、削除します] を選択します。

  21. [保存] を選択します。

タスク 2: 完了

このタスクでは、ラボを完了します。

  1. Power BI Desktop ファイルを保存します。

  2. クエリの適用を求めるメッセージが表示されたら、[後で適用] を選択します。

  3. 次のラボを開始する場合は、Power BI Desktop を開いたままにすることを選択できます。

    警告

    ラボを開いたままにしておくと、1 時間から 4 時間後にタイムアウトになります。 "現在" のモジュールのラボでの作業は失われますが、最初のラボの後の各ラボには、前のラボのすべての作業が完了した PBIX ファイルが含まれているので、最初からやり直す必要はありません。

Power BI Desktop で DAX 計算を作成する (パート 2) のラボでは、DAX を使用した計算でデータ モデルを強化します。

ラボを終了する

このラボを終了するには、この指示ウィンドウの右下隅にある [完了] ボタンを選択します。