Power BI Dataflows: Centralized Data Preparation

Master Power BI dataflows to centralize ETL logic, eliminate duplicate data preparation across reports, and build a governed, reusable data layer for your organization.

E
ECOSIRE Research and Development Team
|2026年3月19日4 分で読める802 語数|

Power BI データフロー: 一元的なデータ準備

すべての Power BI 環境では、最終的には同じ問題が発生します。つまり、それぞれが「同じ」データ準備ロジックのわずかに異なるバージョンを備えた数十のレポートです。顧客データは、営業ダッシュボードではある方法でクリーニングおよび標準化され、マーケティング レポートでは少し異なる方法で、エグゼクティブ サマリーではまた異なる方法でクリーニングおよび標準化されます。ソース システムが変更されると (列の名前が変更されたり、新しいリージョンが追加されたり)、すべてのレポートを個別に更新するのはメンテナンスの悪夢です。

Power BI データフローは、データの準備を個々のレポート ファイル (Power BI Desktop .pbix) から Power BI サービスの共有の一元化されたレイヤーに移動することで、この問題を解決します。データフロー内に一度記述されたロジックは、どの開発者でもどのレポートでも利用でき、一貫した結果が得られます。このガイドでは、データフロー アーキテクチャ、実装パターン、およびデータフローを管理された Power BI 環境の基盤にする高度な機能について説明します。

重要なポイント

  • データフローは Power BI サービス内の Power Query ETL ロジックを一元化し、レポート間の重複を排除します
  • データフローは、複数のレポートが単一のソースから使用する標準化されたエンティティ (テーブル) を生成します。
  • リンクされたエンティティにより、データフローが他のデータフローからテーブルを参照できるようになり、階層化されたアーキテクチャが可能になります
  • 計算されたエンティティは、Premium データフロー エンジン内のリンクされたエンティティに対して変換を実行します
  • Microsoft Fabric の Dataflow Gen2 は、ステージング先と出力先を使用してデータフローを拡張します
  • AI インサイト (プレミアム) は、ML モデルをデータフロー出力に適用します - 異常検出、センチメント分析、キーフレーズ抽出
  • データフローの増分更新により、完全な再処理を行わずに大規模な変換出力が最新の状態に保たれます
  • データフロー ガバナンスは、ワークスペースの権限を通じてデータフローを作成、編集、使用できるユーザーを制御します

データフローが存在する理由

データフローを理解するには、データフローによって解決される問題を視覚化すると役立ちます。

データフローなし (一般的なパターン):

  • 開発者 A はレポート 1 を作成し、Salesforce に接続し、データをクリーンアップして変換するための 40 の Power Query ステップを作成します。
  • 開発者 B はレポート 2 を作成し、Salesforce にも接続し、38 の同様の Power Query ステップを作成します (わずかに異なります)。
  • 開発者 C がレポート 3、同じソース、45 ステップを作成
  • Salesforce API 認証情報は 3 つの異なるファイルに保存されます。
  • 「顧客セグメント」分類ロジックは、わずかに異なる 3 つの方法で実装されます。
  • APIが変更されると、3つのファイルを更新する必要があります
  • 3 つのレポートはすべて、Salesforce API に対して独自のスケジュールされた更新を実行します。

データフローの場合:

  • データ エンジニアは 40 の Power Query ステップで 1 つのデータフローを構築します
  • レポート 1、2、および 3 はすべて、データ ソースとしてデータフロー エンティティに接続します。
  • 1 つの API 認証情報、1 つの変換ロジック、1 つのスケジュールされた更新
  • APIが変更されると、1つのデータフローが更新されます

これは基本的な価値提案です。データフローは、ソース システムと使用するレポートの間の ETL レイヤーです。


データフロー アーキテクチャ パターン

適切に設計されたデータフロー アーキテクチャは、データ ウェアハウスのメダリオン アーキテクチャに似た階層化パターンに従います。

ブロンズ レイヤー (ステージング データフロー): 最小限の変換でソース システムからデータを抽出します。列の名前を変更し、タイプを修正し、明らかに無効なレコードをフィルターします。このレイヤーは、標準化された形式で生データをキャプチャします。

シルバー レイヤー (コア データフロー): ビジネス ロジックを適用します。派生フィールドの計算、参照データ ルックアップの適用、レコードの重複排除、組織固有のビジネス ルールの適用を行います。この層は、各ビジネス エンティティの正規表現を生成します。

ゴールド レイヤー (レポート データフローまたはセマンティック モデル): 事前に計算された集計、レポート固有のメジャー、期間の計算など、特定の分析ユース ケース向けにデータを集計および構造化します。

Power BI では、リンクされたエンティティがこれらのレイヤーに接続します。Silver データフローは、リンクされたエンティティを使用して Bronze データフローからエンティティを参照します。 Gold レイヤーは Silver エンティティを参照します。レポートはゴールド層エンティティに接続します。

このアーキテクチャは、ソース システムが変更された場合、Bronze データフローのみを更新する必要があることを意味します。シルバーのビジネス ロジックとゴールドのレポート構造は安定しています。


最初のデータフローの作成

データフローは、Power BI サービス (Power BI Desktop ではなく) で作成されます。ワークスペース→新規→データフローに移動します。

データフロー編集環境 は Power Query Online です。基本的に Power BI Desktop と同じ Power Query インターフェイスですが、ブラウザーで実行され、Microsoft のクラウド インフラストラクチャで実行されます。

ステップ 1: データ ソースを定義する

「新しいエンティティの追加」をクリックし、コネクタを選択します。すべての Power BI Desktop コネクタはデータフローで利用できるほか、一部のクラウドネイティブ コネクタ (Azure Data Factory 統合など) も利用できます。

SQL Server ソースの場合:

Server: your-server.database.windows.net
Database: YourDatabase
Authentication: Organizational account or service principal

ステップ 2: 変換クエリを作成する

Power Query インターフェイスには、適用されたステップ、数式バー、プレビューというおなじみの機能が表示されます。 Power BI Desktop とまったく同じように変換ロジックを構築します。行のフィルター処理、列の名前変更、参照テーブルとの結合、カスタム ロジックの適用を行います。

顧客データの標準化クエリの場合:

let
    Source = Sql.Database("server", "db"),
    Customers = Source{[Schema="dbo", Item="Customers"]}[Data],
    FilteredActive = Table.SelectRows(Customers, each [Status] = "Active"),
    RenamedColumns = Table.RenameColumns(FilteredActive, {
        {"cust_id", "CustomerID"},
        {"cust_nm", "CustomerName"},
        {"seg_cd", "SegmentCode"}
    }),
    SegmentLookup = Table.Join(
        RenamedColumns, "SegmentCode",
        SegmentDefinitions, "Code",
        JoinKind.LeftOuter
    ),
    RemovedDuplicates = Table.Distinct(SegmentLookup, {"CustomerID"})
in
    RemovedDuplicates

ステップ 3: 更新スケジュールを構成する

データフロー更新スケジュールを設定します (Premium では 1 日あたり最大 48 回、Pro では 1 日あたり最大 8 回)。データフローの更新では、ソースに対して変換クエリが実行され、結果が Power BI によって管理される Azure Data Lake Gen2 ストレージに書き込まれます。

ステップ 4: レポートをデータフローに接続する

Power BI Desktop の場合: データの取得 → Power Platform → Power BI データフロー → ワークスペースに移動 → エンティティを選択します。レポートは、ソース システムではなく、データフロー エンティティの保存された出力に接続します。


リンクされ計算されたエンティティ (プレミアム)

リンクされたエンティティにより、あるデータフローが別のデータフローのエンティティを参照できるようになります。これは、上で説明した階層化アーキテクチャがどのように実装されるかです。

リンクされたエンティティの作成: Silver データフロー → 新しいエンティティ → 他のデータフローからエンティティをリンク → ブロンズ エンティティを選択します。

リンクされたエンティティは、Bronze データフローの出力を指す仮想テーブルとして Silver データフローに表示されます。リンクされたエンティティの上に追加の変換ステップを追加できます。これらの追加ステップは、ソースではなくデータフロー エンジンで実行されます。

計算エンティティ は、追加の Power Query 変換が適用されたリンクされたエンティティです。これらはソースではなく、Premium データフロー エンジンのメモリ内処理で実行され、大規模なデータセットでの複雑な変換においてパフォーマンスが大幅に向上します。

主な違い:

  • プレミアムなし: リンクされたエンティティは他のデータフローのデータを参照しますが、すべての処理はソースに対するクエリ時に行われます。
  • プレミアム (計算エンティティ) の場合: リンクされたエンティティの変換は、ソースではなくキャッシュされたデータを使用して Power BI の分析エンジンで実行され、複雑な変換が劇的に高速化されます。

これは、ソースでの実行にコストがかかる変換 (大規模なテーブル間の結合、集計、ウィンドウ関数) ではあるが、データがレポートに到達する前に変換を実行する必要がある場合に特に役立ちます。


データフローの増分更新

データセットと同様に、データフローは増分更新をサポートしており、サイクルごとにすべてのデータを再ロードするのではなく、新規レコードと変更されたレコードのみを処理します。

要件:

  • プレミアムワークスペース
  • ソースクエリの日時列
  • データフロー クエリで定義された RangeStart パラメーターと RangeEnd パラメーター

構成はデータセットの増分更新と同じです。パラメーターを定義し、クエリに日付フィルターを適用し、エンティティに増分更新ポリシーを構成します。データフロー エンジンは、履歴ウィンドウをカバーするパーティションを作成し、各サイクルで最近のウィンドウのみを更新します。

データフローの増分更新は、次の場合に最も価値があります。

  • 変換は計算コストが高く、変更されていない履歴データに対して再実行したくない
  • ソース クエリはテーブル サイズが大きいため遅く、クエリ ウィンドウを制限するとフェッチ時間が大幅に短縮されます。
  • ストレージ コストが重要 - 増分パーティションにより、履歴データを再クエリせずに保存したままにすることができます

ほとんどの中小規模のデータフロー (1,000 万行未満) では、完全更新がより簡単で十分です。更新時間が 30 ~ 60 分を超える場合、増分更新が重要になります。


データフローの AI インサイト (プレミアム)

Power BI Premium データフローには、Power Query Online で直接利用できる事前構築された機械学習機能である AI Insights が含まれています。

利用可能な AI 機能:

機能説明使用例
テキスト分析: 感情スコアポジティブ/ネガティブ/ニュートラル + スコアを返しますお客様からのフィードバック、レビュー
テキスト分析: 重要なフレーズテキストから主要なトピックを抽出サポートチケット、コメント
テキスト分析: 言語検出テキストの言語を識別します多言語コンテンツの分類
テキスト分析: 固有表現の認識人、場所、組織を識別する文書処理
ビジョン: タグ画像画像内のオブジェクトにラベルを付ける製品カタログ分類
ビジョン: イメージを説明する画像の説明を生成しますコンテンツモデレーション
AutoML (カスタム モデル)トレーニングされた Azure ML モデルを適用する任意のカスタム分類/回帰

これらの関数は、Power Query エディターでカスタム列変換として呼び出されます。 customer_comments 列のセンチメント スコアリング ステップ:

= Table.AddColumn(Source, "Sentiment", each
    TextAnalytics.SentimentScore([CustomerComment]),
    type number
)

AI 機能は、舞台裏で Azure Cognitive Services を呼び出します。結果 (0 から 1 までの感情スコア) が新しい列として表示されます。これにより、別個のデータ サイエンス パイプラインを必要とせずに、強化されたデータセットが可能になります。


データフローのガバナンスとセキュリティ

中央のデータ準備レイヤーとして、データフローには品質を確保し、不正な変更を防ぐためのガバナンス制御が必要です。

ワークスペース権限 は、データフローを作成および編集できるユーザーを制御します。データフローの作成には、ワークスペースへの共同作成者または管理者アクセスが必要です。コンシューマ (データフローに接続するレポート開発者) には、閲覧者アクセスのみが必要です。この役割の分離により、ブロンズ層とシルバー層のビジネス ロジックが認定されたデータ エンジニアによって維持されることが保証されます。

認定 は、データフローが中央当局によって承認されたものであることを示します。認定されたデータフローは Power BI Desktop のデータ ソース ピッカーで強調表示され、レポート開発者を最初から独自に構築するのではなく、信頼できる管理されたデータ ソースに誘導します。

機密ラベル は、機密データを含むデータフローに Microsoft Purview Information Protection ラベルを適用します。 PII を含むデータフローには「機密」ラベルが付けられ、そのデータフローを使用するレポートにカスケードされます。

Power BI 管理ポータルの データ系統 には、ソース → データフロー → データセット → レポートのフローが表示されます。ソース システムが変更された場合、データ リネージは、影響を受ける可能性のあるすべてのダウンストリーム レポートを特定するのに役立ちます。

データフロー更新の監視: Power BI の管理ポータルには、データフロー更新履歴、期間、および失敗が表示されます。失敗したデータフロー更新に対して Power Automate 経由でアラートを設定すると、データの鮮度に関する問題が、ユーザーが古いデータを報告したときに発見されるのではなく、即座に捕捉されます。


データフローとデータ ウェアハウス

データフローは専用のデータ ウェアハウスに代わるものではなく、それを補完するものです。それぞれがどこに適合するかを理解することで、アーキテクチャ上の間違いを防ぐことができます。

能力データフローデータウェアハウス
Power Query 変換ネイティブネイティブではありません
SQL 変換サポートされていませんネイティブ
大規模なテーブルにわたる複雑な結合限定最適化された
ストレージコスト管理された固定価格設定変数
バージョン管理 (dbt、GitHub)サポートされていません素晴らしい
Power BI 以外のコンシューマー (Tableau、Python)限定はい
複数の BI ツールの提供Power BI のみあらゆるツール
エンタープライズガバナンスの成熟度中程度

成熟したデータ エンジニアリング プラクティスを持つ組織は、データ ウェアハウスを主要な変換およびストレージ レイヤーとして使用し、データフローを Power BI 固有のロジックのオプションの軽量変換として使用する必要があります。データ エンジニアリング リソースを持たない組織では、多くの場合、別のウェアハウスを必要とせずにデータフローでニーズを十分に満たすことができます。


よくある質問

Power BI データフローと Power BI データセットの違いは何ですか?

データフローは ETL/データ準備レイヤーであり、データを抽出、変換し、Azure Data Lake のテーブル (エンティティ) として保存します。データセット (セマンティック モデル) は分析レイヤーであり、保存されたデータに基づいてメジャー、階層、関係、セキュリティを定義します。一般的なパターン: データフローがクリーンなデータを準備して保存する → データセットがデータフローからインポートして分析ロジックを追加する → レポートがデータセットに接続する。これらはアーキテクチャ内でさまざまな役割を果たします。

データフローを使用するには Power BI Premium が必要ですか?

基本的なデータフローは、Power BI Pro ワークスペースで利用できます。プレミアム (またはファブリック) では、計算されたエンティティ、AI の洞察、増分更新、および強化されたパフォーマンスが追加されます。ほとんどの中小規模の組織では、プロ層のデータフローで十分です。プレミアム機能は、変換ボリュームが大きい場合、AI 強化が必要な場合、または増分更新が必要な場合に重要になります。

Power BI 以外のツールをデータフロー データに接続できますか?

はい。 Power BI データフローは、出力を CDM (Common Data Model) 形式で Azure Data Lake Gen2 に保存します。 Premium または Fabric を使用している組織は、独自の Azure Data Lake アカウントを使用するようにデータフローを構成し、他のツール (Azure Synapse Analytics、Azure Databricks、Python、Tableau) から寄木細工のファイルにアクセスできるようにすることができます。この「Bring Your Own Lake」構成は、Premium ワークスペースと Fabric ワークスペースで利用できます。

データフローはデータ ソースの認証情報管理をどのように処理しますか?

データフロー内のデータ ソース資格情報は Power BI サービスに保存され、ワー​​クスペース管理者によって管理されます。これは、レポート レベルの資格情報の改善点です。各レポート開発者が資格情報を .pbix ファイルに保存するのではなく、資格情報がデータフローに対して集中管理されます。自動化された運用データフローには、ユーザーが組織を離れると期限切れになる個人のユーザー資格情報ではなく、サービス プリンシパル (Azure AD アプリケーション) 認証をお勧めします。

データフローは REST API または非標準のデータ ソースを呼び出すことができますか?

はい。データフローは、Web コネクタ経由の REST API コネクタ、カスタム コネクタ (.mez ファイル)、関数コネクタなど、Power BI Desktop と同じ Power Query コネクタ エコシステムを使用します。カスタム M 関数をデータフロー内で定義して、API ロジックをカプセル化できます。複雑な API ページネーション、認証フロー、レート制限はすべて、データフロー環境内の Power Query で処理できます。


次のステップ

データフローは、スケーラブルで管理された Power BI 分析環境の基盤です。適切なデータフロー アーキテクチャに早期に投資することで、重複した一貫性のないデータ準備ロジックを備えた何百もの切断されたレポートによる技術的負債を防ぐことができます。

ECOSIRE の Power BI データ モデリング サービス には、データフロー アーキテクチャの設計、階層化されたブロンズ、シルバー、ゴールドのデータ準備パターンの実装、およびガバナンス構成が含まれます。現在の環境を評価し、組織に合わせて拡張するデータフロー戦略を設計するには、お問い合わせください。

E

執筆者

ECOSIRE Research and Development Team

ECOSIREでエンタープライズグレードのデジタル製品を開発。Odoo統合、eコマース自動化、AI搭載ビジネスソリューションに関するインサイトを共有しています。

WhatsAppでチャット