WEB問題集
ストリーミング データ ソースに接続する Power BI セマンティック モデルを作成します。データ ソースは頻繁に更新され、レポートには「リアルタイム分析」「データ ソースへの性能影響の最小化」「更新を実行せず最新データを表示」が求められます。どの接続(ストレージ)モードを選択すべきですか。
解説
【正解: B】の理由
DirectQuery モードはデータをモデルにコピーせず、ビジュアル操作のたびにソースへクエリを発行して結果を取得します。そのため明示的な更新を行わなくても常に最新のデータが表示され、リアルタイム分析の要件を満たせます。Import はデータを取り込むため最新表示にはスケジュール更新が必要で、要件の「更新を実行せず最新」に反します。要件がソースへの負荷最小化と最新性の両立であれば、まず DirectQuery が基本選択となります。したがって DirectQuery モードが適切です。
【他選択肢が違う理由】
- A: LiveConnect は既存の公開済みセマンティック モデルや Analysis Services へ接続する方式で、ストリーミング ソース直結の用途とは異なります。
- C: デュアルは Import と DirectQuery を兼ねるテーブル単位の設定で、リアルタイム最新表示そのものを保証する選択肢ではありません。
- D: Import はデータをモデルへ取り込むため、最新表示にはスケジュール更新が必要で『更新せず最新』に反します。
【参考】
各マージ要件を、適切な結合の種類に対応付けてください。
- 左テーブルの全行を保持し、一致する右の列を付与したい
- 両方のテーブルに一致する行だけを残したい
- 両方のテーブルのすべての行を残したい
解説
【正しいマッチング完全版】
- 両方のテーブルに一致する行だけを残したい → 内部結合
- 左テーブルの全行を保持し、一致する右の列を付与したい → 左外部結合
- 両方のテーブルのすべての行を残したい → 完全外部結合
【正解マッチング】
| 項目 | カテゴリ |
|---|---|
| 両方のテーブルに一致する行だけを残したい | 内部結合 |
| 左テーブルの全行を保持し、一致する右の列を付与したい | 左外部結合 |
| 両方のテーブルのすべての行を残したい | 完全外部結合 |
【ポイント】
テーブルを結合(マージ)する際の結合の種類は、どの行を結果に残すかで使い分けます。内部結合は、両方のテーブルに一致する行だけを残すため、対応のない行は落ちます。左外部結合は、左テーブルの全行を必ず保持し、一致する右テーブルの列を付与するので、基準表をすべて残したい場合に向きます。完全外部結合は、両方のテーブルのすべての行を残し、突き合わない側の列は null になります。どの結合を選ぶかで結果の行数と欠損の有無が変わるため、目的に合った結合を選ぶことがデータの取りこぼしや重複を防ぐ鍵になります。一致する行だけか、左を全部残すか、両方を全部残すかという結果の違いで対応付けると確実です。
【参考】
Microsoft Teams 内で完全にホストされているプロジェクト管理アプリがあります。このアプリは Microsoft Power Apps で開発されています。このアプリに接続する Power BI レポートを作成する必要があります。どのコネクタを選択すべきですか。
解説
【正解: B】の理由
Power Apps で作成されたアプリのデータは、既定で Microsoft Dataverse に格納されます。したがって、そのアプリのデータに Power BI から接続するには Dataverse コネクタを使用します。Dataverse コネクタはテーブル単位での接続や DirectQuery にも対応し、アプリの基盤データを直接分析できます。SQL Server や Web などの汎用コネクタはアプリの実体である Dataverse を指していないため適切ではありません。アプリの開発基盤から格納先を特定して選ぶのが要点です。したがって Dataverse が適切です。
【他選択肢が違う理由】
- A: SQL Server コネクタは独立した SQL データベース向けで、Power Apps アプリの既定の格納先である Dataverse には対応しません。
- C: データフローは Power Query による再利用可能な ETL であり、アプリ本体への直接接続コネクタではありません。
- D: Web コネクタは Web ページや REST 用で、Dataverse のテーブルへ構造化接続する用途には適しません。
【参考】
各要件を、適切なストレージ モードに対応付けてください。
- Fabric の OneLake 上の大規模データに、取り込みなしで高速アクセスしたい
- 更新を実行せず、ソースの最新データを常に表示したい
- データをモデルに取り込み、最速の応答で分析したい(更新はスケジュールで可)
解説
【正しいマッチング完全版】
- データをモデルに取り込み、最速の応答で分析したい(更新はスケジュールで可) → Import
- 更新を実行せず、ソースの最新データを常に表示したい → DirectQuery
- Fabric の OneLake 上の大規模データに、取り込みなしで高速アクセスしたい → DirectLake
【正解マッチング】
| 項目 | カテゴリ |
|---|---|
| データをモデルに取り込み、最速の応答で分析したい | Import |
| 更新を実行せず、ソースの最新データを常に表示したい | DirectQuery |
| Fabric の OneLake 上の大規模データに、取り込みなしで高速アクセスしたい | DirectLake |
【ポイント】
セマンティック モデルのストレージ モードは要件で使い分けます。Import は、データをモデルに取り込み、最速の応答で分析したい場合に適し、更新はスケジュールで行います。DirectQuery は、更新を実行せずソースの最新データを常に表示したい場合に適します。DirectLake は、Fabric の OneLake 上の大規模データに、取り込みなしで高速にアクセスしたい場合に適します。取り込んで最速か、常に最新を直接参照か、OneLake へ取り込みなしの高速アクセスかという要件の違いで対応付けると確実です。
【参考】
Power Query で次の「列の品質(データ プロファイル)」を確認しました。
| 列 | 有効 | エラー | 空(null) |
|---|---|---|---|
| OrderID | 100% | 0% | 0% |
| Discount | 80% | 13% | 7% |
| Region | 93% | 0% | 7% |
分析の前にデータ品質の問題を解決します。最も優先して対処すべき列と方針はどれですか。
解説
【正解: A】の理由
表の品質集計を読むと、OrderID は有効 100%、Region は空が 7% のみであるのに対し、Discount は有効 80%・エラー 13%・空 7% と品質問題が最も集中しています。列の品質は各列を有効・エラー・空の 3 区分で百分率表示します。既定では先頭 1000 行を集計するため、全体を評価するにはデータセット全体のプロファイルへ切り替えます。エラー値や null は集計や計算でビジュアルの欠落や誤りを招くため、Discount のエラーを既定値へ置換し空を補完するのが最優先の対処です。品質指標の数値から問題の大きい列を特定して対処する運用が求められます。したがって Discount 列のエラー・空の値への対処が適切です。
【他選択肢が違う理由】
- B: Region は空が 7% あるのみで、列の削除は分析に必要な情報を失うため過剰な対応です。
- C: 一律に文字列化すると数値計算ができなくなり、品質問題の解決にもならないため不適切です。
- D: OrderID は有効 100% で重複や欠損の兆候はなく、優先対処の対象ではありません。
