Agile育成ブログ
未来を変える喜びを
未分類

Power BI

Power BI徹底解説:データ分析と可視化のためのMicrosoftプラットフォーム

Power BI は、Microsoftが提供するビジネスインテリジェンス(BI)およびデータ可視化ツールです。ExcelやOffice製品との高い親和性と、Microsoft AzureやTeamsなどのプラットフォームとのシームレスな統合を強みとし、世界中の企業で広く利用されています。

1. Power BIの核となる技術:DAXとインメモリエンジン

Power BIは、ただデータを表示するだけでなく、高度なデータモデリングと分析を可能にする独自の技術を搭載しています。

🔹 DAX(Data Analysis Expressions)

DAXは、Power BI(およびExcelのPower Pivot)で使用される数式言語です。

  • 定義: 複雑な計算(例:前年比、移動平均、累計)や、分析に特化した新しいメトリクス(指標)を定義するために使用されます。
  • 特徴: ユーザーが複雑なデータ処理を行うための柔軟性と表現力を提供し、Excel関数に似た形式で記述できるため、Excelユーザーにとって比較的学習しやすい言語です。

🚀 xVelocityエンジン(VertiPaq/In-Memoryエンジン)

Power BIの裏側では、Microsoft独自のxVelocityと呼ばれる強力なインメモリエンジンが動作しています。

  • 役割: データを圧縮し、メモリ内に格納して処理することで、大規模なデータセットに対しても極めて高速なクエリ応答と集計を実現します。
  • 特徴: データ分析に特化したカラム型ストレージ技術が用いられており、これがPower BIの高速なパフォーマンスの基盤となっています。

2. 主要な機能と製品構成

Power BIは、デスクトップアプリケーション、クラウドサービス、モバイルアプリが連携して機能します。

製品名役割概要
Power BI Desktopオーサリング(作成)ツールダッシュボードやレポートを作成するための無料のデスクトップアプリケーション。データの接続、変換、モデリング、ビジュアル作成を行う。
Power BI Service共有・コラボレーションクラウドベースのサービス(SaaS)。作成したレポートの共有、セキュリティ管理、データ更新の自動化を行う。
Power BI Mobile閲覧ツールiOS/Android向けモバイルアプリ。外出先や移動中にダッシュボードを閲覧・操作する。
Power BI Gatewayオンプレミス接続企業のオンプレミス(社内サーバーなど)にあるデータソースとPower BI Serviceを安全に接続するためのゲートウェイ。

3. Microsoftエコシステムとの統合

Power BIの最大の強みは、広範なMicrosoft製品群との高い親和性です。

① Office製品との連携

  • Excel: Excelファイルからのデータ取り込みが容易であり、作成したレポートをExcel形式でエクスポートしたり、Power BIのデータをExcelで分析したりといった双方向の連携が可能です。
  • PowerPoint: レポートのライブビュー(動的な埋め込み)をPowerPointに挿入し、常に最新のデータを表示できます。

② AzureとDynamics 365との統合

  • Azure: Azure SQL Database、Azure Synapse AnalyticsなどのAzureデータサービスとの接続がシームレスであり、クラウドデータ基盤を構築する上で不可欠なBIツールとなっています。
  • Dynamics 365: Dynamics 365(CRM/ERP)に蓄積されたビジネスデータに対する分析レポートを標準で提供します。

③ AI・機械学習機能

Tableau GPTと同様に、Power BIも自然言語による質問応答(Q&A機能)や、データに隠された要因を自動で分析・解説するAI機能を搭載しており、データ分析を支援します。

🌉 1. ブリッジテーブル(Bridge Table)

ブリッジテーブルは、データモデル内の多対多(Many-to-Many)の関係を解決するために使用される中間テーブルです。

🔹 役割

リレーショナルデータベースや分析モデルでは、パフォーマンスとデータの一貫性を保つため、一対多(One-to-Many)の関係を基本とします。ブリッジテーブルは、多対多の関係にある 2 つのテーブルの間に挿入され、それぞれと一対多の関係を築くことで、多対多の関係を間接的に表現します。

  • 構造: 2 つの主となるテーブル(ファクトテーブルまたはディメンションテーブル)の主キーのみを格納し、それらを組み合わせた複合キーを持つことが多いです。

🔹 例

**「生徒 (Students)」「受講クラス (Classes)」**の関係を考えます。

  • 一人の生徒は複数のクラスを受講でき(多)、一つのクラスには複数の生徒が参加します(多)。
  • この多対多の関係を解消するために、間に**「履修登録 (Enrollment)」**というブリッジテーブルを置きます。
    • 生徒 → 履修登録:一対多
    • 受講クラス → 履修登録:一対多

➡️ 2. 単一/両方向のフィルター伝播

フィルター伝播とは、データモデル内でフィルター(絞り込み)がどのテーブルに、どの方向に伝わるかを示すルールです。

🔹 単一方向のフィルター伝播 (Single Directional)

  • 特徴: フィルターは一方向にのみ流れます。通常は、「One」側から「Many」側へ流れます(例:ディメンションテーブルからファクトテーブルへ)。
  • デフォルト: Power BI の標準設定では、リレーションシップは単一方向です。
  • メリット: フィルターの流れが予測しやすく、パフォーマンスが安定し、**循環参照(Ambiguity)**を防ぐことができます。

🔹 両方向のフィルター伝播 (Bi-directional)

  • 特徴: フィルターが双方向(One から Many、および Many から One)に流れます。
  • メリット: 特定の複雑な分析(例:ファクトテーブルを介して 2 つのディメンションテーブルをフィルターする)を可能にします。
  • リスク: フィルターが予期せぬテーブルに伝わり、分析結果が曖昧になったり、パフォーマンスが低下したり、循環参照を引き起こすリスクがあるため、使用には注意が必要です。

🛠️ 3. DAXの USERELATIONSHIP 関数

USERELATIONSHIP 関数は、リレーションシップを一時的に有効化する DAX 関数です。

🔹 役割

データモデル内の 2 つのテーブル間に複数のリレーションシップが存在する場合、DAX 関数を使用して非アクティブなリレーションシップを一時的にアクティブ化し、計算に利用できるようにします。

  • アクティブなリレーションシップ: テーブル間で同時にアクティブにできるリレーションシップは一つだけです。
  • 非アクティブなリレーションシップ: それ以外のリレーションシップは非アクティブ(点線で表示)としてモデルに存在します。

🔹 使用例

例えば、「日付テーブル」と「注文ファクトテーブル」があり、「注文日」と「出荷日」の 2 つのリレーションシップがある場合を考えます。通常は「注文日」がアクティブです。

「出荷日」に基づいて売上を計算したい場合、CALCULATE 関数のフィルター引数内で USERELATIONSHIP を使用して、「出荷日」のリレーションシップを一時的に有効化します。

出荷日基準売上 = 
CALCULATE(
    [売上合計],
    USERELATIONSHIP('日付'[日付キー], '注文'[出荷日キー])
)

この関数は、主にフィルターコンテキストを変更する CALCULATE 関数内で使用されます。