Power BI 実装計画: コンテンツ開発と変更管理

Note

この記事は、Power BI 実装計画 シリーズの記事の一部です。 このシリーズでは、主に Microsoft Fabric 内での Power BI のエクスペリエンスに焦点を当てます。 シリーズの概要については、「Power BI 実装計画」を参照してください。

この記事は、コンテンツ ライフサイクル管理の一部としてコンテンツ開発と変更管理を行うのに役立ちます。 主な対象者は次のとおりです。

  • センター オブ エクセレンス (COE)、BI チーム: 組織内で Power BI の監視を担当するチーム。 これらのチームには、Power BI コンテンツのライフサイクル管理の方法を決める意思決定者が含まれます。 また、コンテンツ リリースのライフサイクルを扱うリリース マネージャーや、ライフサイクル管理の効果的な利用とサポートのために必要なコンポーネントの作成と管理を担うエンジニアなども含まれる可能性があります。
  • コンテンツ作成者とコンテンツ所有者: コンテンツを作成し、Fabric ポータルに発行して他者と共有するユーザー。 これらの人々は、自分が作成する Power BI コンテンツのライフサイクル管理について責任を負います。

ライフサイクル管理とは、コンテンツが生まれてから役割を終えるまでの全期間を含めた、コンテンツの取り扱いに関するプロセスとプラクティスです。 ライフサイクル管理の第 1 ステージは、コンテンツの計画と設計です。これには、ソリューション計画と、ライフサイクル管理のアプローチを左右する重要な意思決定が含まれます。 第 2 ステージは、コンテンツの開発と変更管理です。

ライフサイクルが継続する間、コンテンツの変更管理を続けることは、コンテンツ作成者間のコラボレーションを効果的に行い、利用者に対するコンテンツ供給の安定性、一貫性を確保するために重要です。

次の図は Power BI コンテンツのライフサイクルを表しており、特に、第 2 ステージ、コンテンツ開発と変更管理を強調したものです。

Power BI コンテンツのライフサイクルを表した図。第 2 ステージ、コンテンツ開発と変更管理が強調されています。

Note

コンテンツ ライフサイクル管理の概要については、このシリーズの最初の記事を参照してください。

ヒント

この記事では、コンテンツ開発とライフサイクル全体にわたる変更管理の参考のために、重要な意思決定事項と考慮事項を取り上げます。 コンテンツの開発方法と変更管理方法の詳細については、以下を参照してください。

コンテンツの作成者や所有者には、バージョン管理を使用してコンテンツの変更管理を行うことが推奨されます。 バージョン管理とは、ファイルやコードの変更を中央のリポジトリで管理するプラクティスです。 これは、よりスムーズで効果的なコラボレーションとコンテンツ管理の実現に役立ちます。

その他、バージョン管理には以下のメリットがあります。

  • 複数のコンテンツ作成者による変更をマージし、マージの競合に対処することができます。
  • 変更されたコンテンツはどれなのか、コンテンツの変更箇所はどこなのかを特定できます。
  • コンテンツの変更内容と特定の作業項目とを関連付けることができます。
  • 多数の変更点をグループ化し、バージョン履歴付きの異なるリリースに分類できます。
  • コンテンツの変更内容やバージョン全体をロールバックできます。

ヒント

可能な限り、作成するすべてのコンテンツにバージョン管理を適用することをお勧めします。 バージョン管理には、ファイルの損失や変更を元に戻せないことによる作業中断のリスクを軽減し、コンテンツの作成者と利用者の両方に大きなメリットをもたらす効果があります。

バージョン管理をセットアップする際の最初のステップは、コンテンツの開発方法を決定することです。

コンテンツの開発方法を決定する

コンテンツをどのような方法で作成するかは、管理方法についての意思決定に影響します。 たとえば、Power BI レポートとセマンティック モデルでは、Power BI Desktop (.pbix) ファイルを使用する場合のバージョン管理は、Power BI Desktop プロジェクト (.pbip) 形式の場合と比べて選択肢が少なくなります。 これは、.pbix ファイルがバイナリ形式であるのに対し、.pbip 形式は、人間が判読できるコンテンツとメタデータを含んだテキスト ベースの形式だからです。 人間が判読できるコンテンツとメタデータを使用するほうが、ソース管理によってモデルとレポートの変更を追跡管理することが容易になります。 ソース管理においては、コンテンツのコードとメタデータの内部まで変更箇所の確認と管理を行うことができます。

ヒント

Power BI Desktop でセマンティック モデルとレポートを開発する場合、.pbix ファイルではなく .pbip ファイルを使用することをお勧めします。 XMLA ツールでセマンティック モデルを開発する場合は、.bim ファイルではなく、表形式モデル定義言語 (TMDL) を使用することをお勧めします。

.pbip 形式と TMDL 形式では、オブジェクト レベルで容易に変更の追跡管理やマージができます。 つまり、DAX のメジャーやテーブルなど個々のオブジェクトの変更内容を参照することや管理することができます。

Power BI Desktop

Power BI Desktop では、セマンティック モデルまたはレポートを作成し、.pbix ファイルまたは .pbip ファイルとして保存できます。 また、Power BI Desktop の使用時には追加のカスタム コンテンツ ファイルをあわせて使用することもできます。Power BI Desktop でコンテンツを作成する場合、必要となる主な意思決定事項は以下のようなものです。

  • 使用するファイル形式: コンテンツの保存形式としては、.pbix ファイルまたは .pbip ファイルを選択できます。 たとえば、Git 統合には .pbip ファイルの使用が必須ですが、セルフサービスの作成者にとっては、Teams、SharePoint、または OneDrive で .pbix ファイルの管理と保守を行うほうが簡単で好都合である可能性もあります。
  • カスタム コンテンツの管理方法: Power BI Desktop ファイルにはテーマ、カスタム ビジュアル、画像を追加できますが、そのようなファイルのライフサイクル管理に関して特有の考慮事項が発生することがあります。 たとえば、コンテンツ作成者が独自のカスタム ビジュアルを作成する際には、ビジュアル定義を別のファイルに保存し、分けて管理することが推奨されます。
  • プレビュー機能の管理方法: Power BI Desktop のプレビューに関する機能や設定を活用すると、コンテンツの表示形態や利用方法を目的に応じて変更できます。 たとえば、プレビュー機能の対象となるコンテンツに追加の検証手順を適用することができます。

Web オーサリング

データフロー、ダッシュボード、スコアカードなどのような種類のコンテンツは、Fabric ポータルでのみ作成できます。 一方、セマンティック モデル、レポート、ページ割り付けレポートなど、Fabric ポータルとローカル ツールのどちらでも作成や変更を行える種類のコンテンツもあります。 Web オーサリングでコンテンツを作成する場合、必要となる主な意思決定事項は以下のようなものです。

  • 変更管理の方法: Web オーサリングではさまざまな種類のアイテムに変更を加えることができますが、場合によっては、直ちに以前のバージョンを上書きして変更内容が保存される可能性があります。 したがって、他のユーザーとの共同作業時には Web オーサリングで共有アイテムを直接編集せず、作業用のコピーを作成することが望ましい場合があります。
  • コンテンツのバックアップを保存する方法: Web オーサリングでは、レポートやセマンティック モデルなどのコンテンツを作成できますが、それらのアイテムをローカルの .pbix ファイルにダウンロードすることはできません。 そのようなコンテンツをバックアップするには、メタデータを取得して保存する方法などが考えられます。

ヒント

データフローとスコアカードの開発時には、アイテム定義を取得する方法で変更管理とバックアップ保存を行うことをお勧めします。 データフローとスコアカードの自動取得は Fabric REST API によって実現できます。 具体的には、Get Dataflow エンドポイントと Get Scorecards エンドポイントを使用します。

注意事項

コンテンツの種類によっては (ダッシュボードなど)、定義を取得する方法がなく、 コンテンツの変更を追跡管理することやバックアップを保存することが容易ではない場合があります。

その他のツール

作成と管理には、コンテンツの種類に応じて他のツールを使用できることがあります。 他のツールを使用する理由としては、別のメリットが得られること、お使いのワークフローへの適合性が高いこと、特定の機能やコンテンツ タイプの管理に必須であることなどが考えられます。 他の Microsoft ツールとサードパーティ ツールの両方を併用してコンテンツの作成と管理を行うこともできます。 コンテンツの作成と管理に使用できる他のツールとしては以下のようなものがあります。

  • Visual Studio または Visual Studio Code: 開発者向けの統合開発環境。セマンティック モデルまたは Fabric ノートブックの作成と管理が可能です。 また、Visual StudioVisual Studio Code の両方を使用してソース コントロール管理 (SCM) を行い、ローカルでの変更内容をコミット操作でリモート リポジトリにプッシュすることもできます。
  • 表形式エディター: セマンティック モデルの開発と管理ができるサードパーティ製ツール。
  • Excel: セマンティック モデルで扱えるピボット テーブルやライブ接続されたテーブルのためのクライアント ツール。
  • Power BI Report Builder: ページ割り付けレポート (.rdl) ファイルを作成するためのデスクトップ アプリケーション。

他のツールでコンテンツを作成する場合、必要となる主な意思決定事項は以下のようなものです。

  • ライセンスの管理方法: 他のツールについては、追加のライセンスとその管理が必要になる場合があります。
  • コンテンツの発行方法: 他のツールについては、コンテンツの発行時に追加の手順 (たとえば、XMLA エンドポイントや Power BI REST API を使用することなど) が必要な場合があります。

コンテンツの作成方法を決定した後は、コンテンツの開発中に発行とテストを行う場所の選択が必要になります。

ワークスペースのセットアップと使用方法を決定する

コンテンツの開発時には、組織で使われる運用コンテンツと開発中または検証中のコンテンツを分けるために複数のワークスペース (またはステージ) を使用することをお勧めします。 コンテンツ用に別個のワークスペースを複数用意することには以下のような利点があります。

  • 実際に使われている現行コンテンツに影響を与えることなく、コンテンツの開発やテストができます。 運用環境のコンテンツに、変更の影響で意図しない利用中断が発生することを回避できます。
  • コンテンツの開発とテストに別のリソースを使用できます (たとえば、別のデータ ゲートウェイ、別の Fabric 容量などを用意できます)。 このため、開発用やテスト用のリソースによって運用ワークロードが中断されるのを防ぎ、データ更新やレポート作成に遅れが出ることを回避できます。
  • コンテンツ開発、テスト、リリースに関するプロセスの構造化のレベルを高め、これらの段階ごとに異なる環境を用意できます。 このことは生産性の向上に役立ちます。

Fabric と Power BI では、テナント レベルワークスペース レベルの計画に関する記事で説明されているように、複数の Fabric ワークスペースを使い分けることをお勧めします。

重要

環境を分けることは、コンテンツ ライフサイクル管理アプローチを成功させるために欠かせない基本ステップです。

Fabric ワークスペースを使用して環境を分けるには複数の方法があります。 一般的には、ローカル環境に加えて 2 つ以上のワークスペースが用意され、コンテンツ ライフサイクルの中でコンテンツ管理に使用されます。

複数のワークスペースをコンテンツ ライフサイクル全体の中でどう使うかを計画する際には、以下の質問に答えていくとよいでしょう。

  • ワークスペースはいくつ必要ですか?
  • アイテムの種類別にワークスペースを分けますか?
  • どのワークスペースに誰がアクセスしますか?
  • これらのワークスペースは Fabric デプロイ パイプラインに属しますか? それとも、別のアプローチ (Azure Pipelines など) によってデプロイのオーケストレーションを行いますか?
  • クロス ワークスペースでの発行をどのように管理しますか? たとえば、レポート用テスト ワークスペース内にあるレポートと、別のデータ アイテム用テスト ワークスペース内にあるセマンティック モデルとの間に、接続が確実に成り立っている必要がありますか?
  • また、運用ワークスペース内のアイテムのために別のサポート リソース (別のオンプレミス データ ゲートウェイ クラスターなど) を使用する必要がありますか?

以降のセクションでは、別々のワークスペースを活用してライフサイクル管理をしやすくする各種のアプローチについて、それぞれの概要を説明します。

Note

以降のセクションでは、別々のワークスペースをセットアップして使用する方法について説明します。 それらのワークスペースにコンテンツをデプロイするには、以下 4 つの方法のいずれかを使用します。

  • Power BI Desktop から発行する。
  • Fabric デプロイ パイプラインを使用して別のワークスペースからコンテンツをデプロイする。
  • Git 統合を使用してリモート Git リポジトリからコンテンツを同期する。
  • Fabric REST API、Power BI REST API、または XMLA エンドポイントを使用して、プログラムでコンテンツをデプロイする。

これらのコンテンツ デプロイ方法の詳細については、このシリーズで後述する「ステージ 4: コンテンツをデプロイする」を参照してください。

テスト ワークスペースと運用ワークスペース

組織にとってクリティカルではないシンプルなコンテンツのデプロイには、多くの場合、2 つのワークスペースで十分です。 このシナリオの場合、コンテンツ作成者はコンテンツ開発作業をローカルで行い、同じアイテムについて複数人が共同作業を行う機会は限られているのが一般的です。

次の図は、テスト ワークスペースと運用ワークスペースの 2 つのみを使用して環境を分離する例の概略を示しています。

アプローチ 1: テスト ワークスペースと運用ワークスペースを使用する例を示した図。図の項目を次の表に示します。

この図は、このアプローチでワークスペースを分離する場合に関する、以下のプロセスと構成要素を示しています。

品目 説明
項目 1。 コンテンツ作成者は、ローカル環境でコンテンツを開発します。
項目 2。 準備ができたら、コンテンツ作成者はコンテンツをテスト ワークスペースに発行します。 コンテンツ作成者は、作成方法の選択肢が Web オーサリングのみであるようなコンテンツを開発し、テスト ワークスペースでコンテンツ検証を実行できます。
項目 3。 準備ができたら、コンテンツ作成者はコンテンツを運用ワークスペースにデプロイします。 コンテンツ作成者が運用ワークスペースでコンテンツを配布するには、Power BI アプリを発行するか、ワークスペースからコンテンツを共有します。

Note

別々のワークスペースをセットアップして使用する方法と、それらのワークスペース間でコンテンツのデプロイを行う方法にはさまざまな選択肢がありますが、 ローカル環境で開発したコンテンツを運用ワークスペースに直接発行する方法はお勧めできません。 そのような方法は、本来予防できる利用中断やエラーの原因になります。

開発、テスト、運用のワークスペース

ビジネス上クリティカルなコンテンツの配信には、3 つ以上のワークスペースを使用するのが一般的です。 このシナリオでは、多くの場合、コンテンツ作成者は最新バージョンのソリューションを含んだ追加の開発ワークスペース内で共同作業を行います。

次の図は、開発、テスト、運用の 3 つのワークスペースを使用して環境を分離する例の概略を示しています。

アプローチ 2: 開発、テスト、運用のワークスペースを使用する例を示した図。

この図は、このアプローチでワークスペースを分離する場合に関する、以下のプロセスと構成要素を示しています。

品目 説明
項目 1。 コンテンツ作成者は、ローカル環境でコンテンツを開発します。
項目 2。 準備ができたら、コンテンツ作成者はコンテンツを開発ワークスペースに発行します。 開発ワークスペースでは、コンテンツ作成者は、作成方法の選択肢が Web オーサリングのみであるようなコンテンツを開発できます。 コンテンツ作成者は、開発ワークスペースでコンテンツを検証することもできます。
項目 3。 準備ができたら、コンテンツ作成者はコンテンツをテスト ワークスペースにデプロイします。 テスト ワークスペースでは、ユーザーがワークスペース内またはアプリ内のコンテンツを検証します。
項目 4。 準備ができたら、コンテンツ作成者はコンテンツを運用ワークスペースにデプロイします。 コンテンツ作成者が運用ワークスペースでコンテンツを配布するには、Power BI アプリを発行するか、ワークスペースからコンテンツを共有します。

Note

デプロイ パイプラインでは、最大 10 個の異なる環境を使用できます。 たとえば、テストと運用の間の段階で、特別な種類の検証作業 (パフォーマンス テストなど) に特化した運用前環境が使用される場合があります。

プライベート ワークスペースと Git 統合

ビジネス上クリティカルなコンテンツの配信では、開発者が各自の開発用プライベート ワークスペースを使用することもできます。 このシナリオでは、それぞれのコンテンツ作成者がプライベート ワークスペースを持つことで、他の開発チーム メンバーの作業を中断させるリスクを冒すことなく、Fabric ポータルでコンテンツをテストすることや、スケジュールされた更新などの機能を利用することができます。 また、こちらの Fabric ポータルでデータフローなどのコンテンツを開発することもできます。 プライベート ワークスペースは、Git 統合と Azure DevOps を組み合わせてコンテンツの変更管理を行う場合にも適しています。

Note

Azure DevOps は、Power BI と Fabric と統合してコンテンツ ライフサイクル管理の計画や調整に役立つようにする一連のサービスです。 このように Azure DevOps を使用する場合は通常、次のサービスを利用します。

  • Azure Repos: コンテンツ変更を追跡および管理するために使用するリモート ストレージの場所であるリモート Git リポジトリを作成して使用できるようにします。
  • Azure Pipelines: コンテンツを処理およびテストし、リモート リポジトリからワークスペースに展開する一連の自動化されたタスクを作成して使用できるようにします。
  • Azure Test Plans: ソリューションを検証し、Azure Pipelines と共に品質管理を自動化するテストを設計できるようにします。
  • Azure Boards: ボードを使用して、タスクや計画を作業項目として追跡したり、他の Azure DevOps サービスの作業項目をリンクまたは参照したりできるようにします。
  • Azure Wiki: チームと情報を共有して、コンテンツを理解し、作成に協力することができます。

次の図は、プライベート ワークスペースと Git 統合を使用して環境を分離する例の概略を示しています。

アプローチ 3: プライベート ワークスペースと Git 統合を使用する例を示した図。

Note

この図は、複数の開発者がソリューションの別々のブランチ (ブランチ 1、ブランチ 2) でそれぞれ作業を進めた後、メイン ブランチに変更をマージする様子を示しています。 これは Git ブランチ戦略の説明を簡略化したものであり、開発者が自分の変更内容をリモートの Git リポジトリに統合する方法と、Fabric で Git 統合を使用することのメリットを表しています。

この図は、このアプローチでワークスペースを分離する場合に関する、以下のプロセスと構成要素を示しています。

品目 説明
項目 1。 各コンテンツ作成者は、自分用のローカル環境でコンテンツを開発します。
項目 2。 準備ができたら、コンテンツ作成者は変更をコミットし、リモート リポジトリ (Azure Repos Git リポジトリなど) にプッシュします。
項目 3。 リモート Git リポジトリでは、コンテンツ作成者はソース管理を使用してコンテンツの変更管理を行い、共同作業の便宜のためにコンテンツのブランチ化やマージを行います。
項目 4。 コンテンツ作成者は、リモート リポジトリのブランチをプライベート ワークスペースと同期します。 作成者がコミットしてブランチにプッシュした最新の変更内容は、同期されると、そのプライベート ワークスペースに反映されます。 異なるコンテンツ作成者はそれぞれ自分のブランチで作業し、変更を加えていきます。
項目 5。 プライベート ワークスペースで、コンテンツ作成者は Web オーサリングを使用してコンテンツを開発し、自分が加えた変更を検証できます。 Web オーサリングでコンテンツに加えられた変更内容は、コンテンツ作成者が変更をコミットしてワークスペースからプッシュすると、Git リポジトリ内のブランチに同期されます。 異なるコンテンツ作成者はそれぞれ自分のプライベート ワークスペースで作業を進めます。
項目 6。 準備ができたら、コンテンツ作成者は pull request を実行して、自分の変更内容をソリューションのメイン ブランチにマージします。
Item 7. 変更内容をマージすると、メイン ブランチは開発ワークスペースと同期されます。
Item 8. 開発ワークスペースでは、コンテンツ作成者は Fabric Git 統合でサポートされていないコンテンツ (ダッシュボードなど) を開発できます。 また、最新の変更をすべて含んだ統合ソリューションを検証することができます。
Item 9. 準備ができたら、コンテンツ作成者はコンテンツをテスト ワークスペースにデプロイします。 テスト ワークスペースでは、ユーザーがコンテンツのユーザー受け入れテストを実行します。
Item 10. 準備ができたら、コンテンツ作成者はコンテンツを運用ワークスペースにデプロイします。 コンテンツ作成者が運用ワークスペースでコンテンツを配布するには、Power BI アプリを発行するか、ワークスペースからコンテンツを共有します。

ワークスペースのサポート リソース

分離した環境を使用する際には、それらの環境内で使用するさまざまなサポート リソースについても、環境の分離によってどのような影響が生じるかを検討する必要があります。 サポート リソースを同じ数のステージに分割する必要があるかどうか、また、複数の環境間でリソースを共用する場合はその調整をどのように行うかを検討してください。

  • ゲートウェイ: 運用ワークロードのためのオンプレミス データ ゲートウェイ クラスターと VNet ゲートウェイを別途用意することを検討してください。 これには、利用中断を予防できるだけでなく、ゲートウェイの更新が必要になったときにアップタイムを維持できるメリットがあります。
  • アプリ: テスト ワークスペースと運用ワークスペースのアプリは別々に用意することを検討してください。 ステージをまたいでアプリをデプロイまたはコピーすることはできません。 テスト ワークスペースにアプリを配置する目的は、変更を運用ワークスペースにデプロイする前にコンテンツとアプリ エクスペリエンスをテストすることです。 運用ワークスペースにアプリを配置する目的は、エンド ユーザー向けにコンテンツを配信し、構造化されたエクスペリエンスの中で提供することです。
  • Azure DevOps: ソース管理とデプロイに関する共同作業とオーケストレーションに Azure DevOps を使用する場合は、ブランチと Azure Pipelines を使用して複数の環境にコンテンツをデプロイする方法を検討してください。 Azure Pipelines を使用してコンテンツをデプロイする方法の詳細については、「ステージ 4: コンテンツをデプロイする」を参照してください。

ワークスペースのセットアップと使用方法を決定した後は、次の手順として、コンテンツの変更を追跡および管理するためのバージョン管理の実行方法を決定します。

バージョン管理の使用方法を決定する

Power BI で バージョン管理を実行するには、SharePoint または OneDrive を使用する方法と、リモート Git リポジトリ (Azure DevOps のコンポーネントである Azure Repos など) を使用する方法があります。 どちらの場合も、ローカル コンテンツ ファイルをリモート ストレージの場所に追加して変更管理に役立てることができます。 SharePoint と OneDrive は、小規模でシンプルなプロジェクトにのみ採用することをお勧めします。機能と堅牢性の面で、大規模なシナリオや複雑度が高いシナリオをサポートする用途には適していません。

ここでは、バージョン管理のセットアップと使用に役立つ一般的な推奨事項をいくつか紹介します。

  • アラート: 他のユーザーによる重要なファイルの追加、削除、変更操作が通知されるようにアラートを設定します。
  • スコープ: リモート ストレージの場所に関して、スコープを明確に定義します。 リモートストレージの場所の最も望ましいスコープ設定は、利用者へのコンテンツ配信においてダウンストリームのワークスペースとアプリに適用されるのと同じスコープです。
  • アクセス: リモート ストレージの場所に対するアクセス許可のセットアップには、デプロイ パイプラインのアクセス許可とワークスペース ロールに関するセットアップと同様のアクセス許可モデルを使用します。 コンテンツ作成者には、リモート ストレージの場所に対するアクセス許可が必要です。
  • ドキュメント: リモート記憶域の場所にテキスト ファイルを追加し、そのリモート記憶域の場所、用途、所有権、アクセス、および定義されたプロセスの説明を記述します。

以降のセクションでは、それぞれのアプローチの概要と、採用するアプローチを決定する際の主な考慮事項について説明します。

SharePoint または OneDrive for Work and School を使用したバージョン管理

SharePoint にはファイルのバージョン管理機能が組み込まれています。 コンテンツ作成者はセマンティック モデルまたはレポートをローカル環境で開発でき、その変更内容は SharePoint または OneDrive for Work and School ドキュメント ライブラリに同期されます。

ヒント

SharePoint と OneDrive は、シンプルで小規模なシナリオ (セルフサービスのコンテンツ発行など) のバージョン管理にのみ採用することをお勧めします。 大規模なシナリオや複雑度が高いシナリオの場合は、リモート Git リポジトリを使用したソース管理の採用を検討してください。

次の図は、SharePoint または OneDrive を使用してバージョン管理を実行する方法の概略を示しています。

アプローチ 1: SharePoint または OneDrive を使用したバージョン管理を示す図。

この図は、以下のプロセスと構成要素を示しています。

品目 説明
項目 1。 コンテンツ作成者は、ローカル環境でセマンティック モデルとレポートを開発し、それらのモデルとレポートを .pbix ファイルとして保存します。
項目 2。 準備ができたら、コンテンツ作成者は変更を保存し、リモートの SharePoint または OneDrive for Work and School ライブラリに同期します。
項目 3。 リモート ライブラリではコンテンツ作成者がファイル レベルの変更を追跡管理できるため、バージョン管理が容易です。
項目 4。 コンテンツ作成者は、発行済みのセマンティック モデルまたはレポートを .pbix ファイルにリンクすることができ、容易に OneDrive の更新を行えます。 OneDrive の更新により、コンテンツの変更内容は 1 時間ごとに、自動的に発行されます。
項目 5。 OneDrive の更新が完了した後、コンテンツ作成者は、Power BI コンテンツの変更内容が反映されたことを Fabric ワークスペースで確認できます。

重要

SharePoint または OneDrive によるバージョン管理は、セマンティック モデルまたはレポートを含んだ Power BI Desktop ファイルについてのみ実行できます。 その他の Power BI アイテム タイプ (データフローなど) や、Fabric アイテム タイプ (ノートブックなど) について、SharePoint または OneDrive で簡単にバージョン管理を実行することはできません。 そうした他のアイテム タイプに関するバージョン管理は、リモート Git リポジトリ (Azure Repos など) によって実行してください。

要約すると、コンテンツ作成者は、SharePoint または OneDrive for Work and School ライブラリに格納した .pbix ファイルに、発行済みのセマンティック モデルまたはレポートをリンクすることができます。 このアプローチの場合、変更を反映するためにコンテンツ作成者がセマンティック モデルを発行する必要はなくなり、 1 時間ごとに行われる OneDrive の更新によって、変更が自動的に反映されます。 これは便利なアプローチですが、いくつか注意事項があるだけでなく、元に戻すことは容易ではありません。

SharePoint または OneDrive によるバージョン管理は、セットアップと管理が簡単である反面、多くの制約があります。 たとえば、変更内容をコンテンツの内部まで確認することはできず、バージョン間の比較もできません。 また、より複雑な変更管理プロセス (たとえば、この記事内で後述するブランチ化や pull request など) を設定することはできません。

SharePoint または OneDrive による変更管理は、以下のようなシナリオの場合に検討対象となります。

  • コンテンツが、.pbix ファイルとして保存されたセマンティック モデルやレポートのみで構成されている場合。
  • セルフサービスのユーザーがコンテンツの作成と管理を行う場合。
  • Microsoft Teams を使用してコンテンツ作成者間の共同作業が行われる場合。
  • コンテンツ作成者が Git とソース コントロール管理に慣れていない場合。
  • コンテンツ作成者が単一のアイテムを扱い、複雑度や共同作業の必要性が小さい場合。
  • .pbix ファイルに、内容の暗号化が必要な秘密度ラベルが適用される場合。

Note

OneDrive と SharePoint は、若干の例外的なシナリオを除き、秘密度ラベルが適用されるコンテンツを扱うことができます。 一方、Fabric Git 統合では秘密度ラベルがサポートされていません。

以下のようなシナリオの場合、SharePoint または OneDrive による変更管理は避けてください。

  • コンテンツが、セマンティック モデルでもレポートでもないアイテム タイプで構成されている場合。
  • コンテンツの複雑度が高い、または適用範囲が広い場合。
  • 複数のコンテンツ作成者が共同作業を行い、同じアイテムを同時に作業対象とする必要がある場合。

以降のセクションでは、SharePoint または OneDrive と Power BI で効果的にバージョン管理を行うための追加の考慮事項について説明します。

Microsoft Teams 統合

Microsoft Teams でコンテンツ作成者間の共同作業を行う場合、Teams のドキュメント ライブラリを使用することがあります。 ドキュメント ライブラリは SharePoint サイト上で機能します。(別の SharePoint サイトや OneDrive フォルダーではなく) ドキュメント ライブラリを使用すると、コンテンツ、ファイル、共同作業を確実に一元管理することができます。

ファイルのチェックインとチェックアウト

変更の競合を避けるために、作業対象ファイルはチェックアウトすることが推奨されます。 チェックアウトされたファイルは、作業完了後、変更内容を説明するコメント付きでチェックインされます。 ファイルのチェックインとチェックアウトは、SharePoint または OneDrive for Work and School でのバージョン管理において、コンテンツ作成者間の共同作業の質を高めるのに役立ちます。 ファイルのチェックインとチェックアウトをしながら複数のコンテンツ作成者が作業する場合は、SharePoint サイトのライブラリに変更を加える際、直前の変更内容と、直前のチェックイン時に付けられたコメントを確認できます。

バージョンの履歴

SharePoint サイトのドキュメント ライブラリに予期しない稼働中断が発生した場合に備え、コンテンツを別の場所にバックアップしておくことは重要です。 また、SharePoint サイトに保持するバージョン数の制限を設定し、古いバージョンが削除されるようにしておくことが推奨されます。 そのようにすると、いつも有意義なバージョン履歴情報を参照でき、占有スペースが大きくなりすぎるのを防ぐこともできます。

さらに高度なバージョン管理が必要な場合は、リモート リポジトリ (Azure Repos など) にファイルを格納し、ソース管理によって変更管理を行う方法があります。

リモート Git リポジトリを使用したソース管理

リモート Git リポジトリは、ファイル ソース管理の利便性に優れており、コンテンツ作成者が変更管理を行う際の選択肢が豊富に用意されています。 簡単にいえば、コンテンツ作成者はローカル環境でも Power BI サービス内でもコンテンツを開発することができ、その変更内容を、コミット操作によってリモート Git リポジトリ (Azure Repos など) にプッシュすることができます。

Note

コンテンツのソース管理は、Git 統合を使用せずに行うこともできます。 その場合、コンテンツの変更管理をリモート Git リポジトリ内で行う点は同じですが、コンテンツのデプロイには REST API または XMLA 読み取り/書き込みエンドポイントを使用します。 これらのコンテンツ デプロイ方法の詳細については、「ステージ 4: コンテンツをデプロイする」を参照してください。

次の図は、Azure Repos を使用してソース管理を実行する方法の概略を示しています。

アプローチ 2: Azure DevOps を使用したソース管理を示す図。

この図は、以下のプロセスと構成要素を示しています。

品目 説明
項目 1。 コンテンツ作成者は、セマンティック モデルとレポートをローカル環境で開発し、それらのモデルとレポートを .pbip ファイルとして保存します。 また、セマンティック モデルを開発してモデルのメタデータを保存することもできます。
項目 2。 準備ができたら、コンテンツ作成者は変更を保存し、定期的にコミットしてリモート Git リポジトリにプッシュします。
項目 3。 リモート Git リポジトリではコンテンツ作成者がオブジェクト レベルの変更を追跡管理できるため、バージョン管理が容易です。 また、ブランチを作成してコンテンツを操作し、そこでの変更内容を、pull request を使用して 1 つのブランチにマージすることもできます。
項目 4。 コンテンツ作成者は、Git 統合を使用してリモート リポジトリからコンテンツを同期できます。 また、他のアプローチでコンテンツをデプロイすることもできます (たとえば、Azure Pipelines と REST API の併用など)。
項目 5。 同期またはデプロイの完了後、コンテンツ作成者は、Power BI コンテンツの変更内容が反映されたことを Fabric ワークスペースで確認できます。 コンテンツ作成者は、データフローやノートブックなどのコンテンツをワークスペース内で作成できます。 Git 統合を使用する場合には、このワークスペースを、リモート リポジトリの特定のブランチにリンクします。
項目 6。 コンテンツ作成者は、ワークスペースでの変更内容を、Git 統合を使用してリモート リポジトリにコミットおよびプッシュできます。 この変更では、ワークスペースで作成したサポート対象コンテンツ (データフローやノートブックなど) のアイテム定義をインポートできます。

要約すると、コンテンツ作成者は、集中管理された Azure Repos リモート リポジトリに .pbip ファイル、メタデータ ファイル、ドキュメントを格納できます。 このようなファイルは "技術所有者" によって管理されます。 コンテンツ作成者がソリューションを開発するのに対し、技術所有者はソリューションを管理し、変更点を確認し、1 つのソリューションにマージする作業を担当します。 Azure Repos には、変更管理に関して、SharePoint や OneDrive よりも高度なオプションが用意されています。 すべてのコンテンツとコラボレーションの基盤になるので、適切にキュレーションし、文書化したリポジトリを保守することが不可欠です。

ソース管理による変更管理は、以下のようなシナリオの場合に検討対象となります。

  • 集中型または分散型のチームがコンテンツの作成と管理を行う場合。
  • Azure DevOps を使用してコンテンツ作成者間の共同作業が行われる場合。
  • コンテンツ作成者が Git、ソース コントロール管理、または DataOps の原則に慣れている場合。
  • コンテンツ作成者が扱うコンテンツの複雑度または重要度が高いか、コンテンツの複雑度と重要度が増大する見込みである場合。

以下は、Azure DevOps で効果的にソース管理を行うための前提条件や考慮事項の一部です。

  • Git: コンテンツ作成者が変更をコミットしてリモート リポジトリにプッシュするには、Gitダウンロードしてインストールする必要があります。 Git は、ファイルの変更を追跡する分散バージョン管理システムです。 Git の基本については、「Git とは」を参照してください。
  • ツール: コンテンツ作成者が Git を使用するには、SCM (Visual StudioVisual Studio Code など) 用のコマンド ライン インターフェイス (CLI) またはグラフィカル ユーザー インターフェイス (GUI) クライアントを使用する必要があります。
  • ライセンスとアクセス許可: コンテンツ作成者が Azure Repos Git リポジトリを作成および使用するには、以下の条件を満たす必要があります。
  • Fabric Git 統合: リモート リポジトリ内のコンテンツを Microsoft Fabric ワークスペースと同期する際、コンテンツ作成者は Fabric Git 統合を使用します。 このことは、Fabric ポータルで作成したコンテンツ (データフローなど) の変更管理を行うために重要です。

ヒント

ローカル開発においてソース管理を便利に行うには、Visual Studio Code などのクライアント アプリケーションの使用をお勧めします。 Power BI Desktop を使用してコンテンツを開発した後、そのコンテンツのソース コントロール管理 (変更内容のステージング、コミット、リモート リポジトリへのプッシュ) を Visual Studio Code で実行できます。

警告

サポート対象のアイテムとシナリオに関して、Fabric Git 統合には若干の制限事項があります。 Fabric Git 統合が実際の利用シナリオに最適かどうか、別のアプローチでソース管理を実装することが望ましいかどうかを、必ず最初の段階で検証してください。

また、Fabric Git 統合では秘密度ラベルがサポートされていないこと、秘密度ラベルを含んだアイテムのエクスポートは無効化されている可能性があることに注意が必要です。 コンテンツに秘密度ラベルが適用される場合は、バージョン管理の実現とデータ損失防止ポリシーの遵守を両立する方法について計画を立ててください。

Azure Repos でソース管理を使用することの主な利点としては、コンテンツ作成者間の共同作業の質を高められること、コンテンツの変更とデプロイに関するカスタマイズと監視を強化できることが挙げられます。

次の図は、Azure DevOps を使用してソース管理付きの共同作業を実現する方法の概略を示しています。

Azure DevOps を使用した共同作業の方法を示す図。

Note

上の図は、Azure DevOps を使用して共同作業を行う方法の一例です。 実際のチームのニーズと作業方法に応じて、最適なアプローチを選択してください。

この図は、次のユーザー アクション、プロセス、機能を示しています。

Item 説明
項目 1。 コンテンツ作成者は、最新バージョンのコンテンツを含む main ブランチを複製することで、新しい有効期間の短いブランチを作成します。 新しいブランチは、特定の機能の開発や特定の問題の修正に使用されるため、多くの場合、機能ブランチと呼ばれます。
項目 2。 コンテンツ作成者は開発中に変更をローカル リポジトリにコミットします。
項目 3。 コンテンツ作成者は変更を Azure Boards で管理されている作業項目にリンクします。 作業項目には、ブランチにスコープされた特定の開発、改善、またはバグ修正を記述します。
項目 4。 コンテンツ作成者は定期的に変更をコミットします。 準備ができたら、コンテンツ作成者はブランチをリモート リポジトリに公開します。
項目 5。 コンテンツ作成者は、変更をテストするために、ソリューションを開発用に分離されたワークスペース (この図には示されていません) にデプロイします。 コンテンツ作成者は、Fabric Git 統合を使用して機能ブランチをワークスペースに同期することもできます。
項目 6。 コンテンツ作成者とコンテンツ所有者は、ソリューションとそのプロセスを Azure Wiki に記載し、開発チームの全員が使用できるようにします。
Item 7. 準備ができたら、コンテンツ作成者は pull request を開いて、機能ブランチを main ブランチにマージします。
Item 8. 技術所有者は、pull request を確認し、変更をマージする作業を担当します。 pull request を承認したら、機能ブランチを main ブランチにマージします。
Item 9. マージに成功すると、Azure Pipeline を使用したソリューションの開発ワークスペース (この図には示されていません) へのデプロイがトリガーされます。 Fabric Git 統合を使用すると、main ブランチは開発ワークスペースに同期されます。
Item 10. リリース マネージャーがソリューションの最終レビューと承認を行います。 このリリース承認により、準備が整う前にソリューションがリリースされるのを防ぐことができます。 通常、エンタープライズ コンテンツ公開では、リリース マネージャーがテストおよび運用ワークスペースへのコンテンツ リリースを計画し、調整します。 また、コンテンツ作成者、関係者、ユーザーとの間を調整し、コミュニケーションを取ります。
Item 11. リリース マネージャーがリリースを承認すると、Azure Pipelines でソリューションのデプロイが自動的に準備されます。 または、Azure Pipeline でデプロイ パイプラインをトリガーして、ワークスペース間でコンテンツのレベルを上げることもできます。
Item 12. ユーザーは、テスト ワークスペースのコンテンツをテストして検証します。 デプロイに Git と Azure Pipelines の統合を使用する場合、テスト ワークスペースはどのブランチとも同期しません。
Item 13. ユーザーが変更を受け入れて検証すると、リリース マネージャーはソリューションの最終的なレビューと承認を実行して、運用ワークスペースにデプロイします。
Item 14. ユーザーは、運用ワークスペースに公開されたコンテンツを表示します。 デプロイに Git と Azure Pipelines の統合を使用する場合、運用ワークスペースはどのブランチとも同期しません。

以降のセクションでは、Azure DevOps と Power BI で効果的にソース管理を行うための追加の考慮事項について説明します。

重要

Power BI コンテンツのライフサイクル管理においてソース管理のメリットを最大限に引き出すためには、ブランチ、コミット、pull request、マージを効果的に使用することが不可欠です。

ブランチを使用する

コンテンツ作成者の共同作業を実現するには、ブランチ戦略を採用します。 分岐戦略を使うことで、個々のコンテンツ作成者が自分のローカル リポジトリで分離して作業できます。 準備ができたら、リモート リポジトリで 1 つのソリューションとして変更を結合することができます。 コンテンツ作成者は、特定の開発、改善、バグ修正の作業項目にリンクすることで、ブランチに作業のスコープを設定する必要があります。 各コンテンツ作成者は、リモート リポジトリに作業スコープに対応した独自のブランチを作成します。 ローカル ソリューション上での作業内容は、わかりやすい説明のコミット メッセージ付きでコミットされ、リモート リポジトリ内にあるブランチのバージョンの 1 つとしてプッシュされます。 コミット メッセージには、そのコミットで加えられた変更を記述します。

ブランチ戦略で Fabric コンテンツの管理を行うにあたっては、以下の要因について検討してください。

  • コンテンツ作成者に自分の作業を行わせる際、どのブランチのクローンを作成するか。 たとえば、メイン ブランチのクローンで作業する場合 (トランク ベースの開発と呼ばれる) と、その他のブランチで作業する場合 (特定のリリース予定バージョンを含んだリリース ブランチのコンテンツなど) があります。
  • リリース ブランチを使用し、スコープを特定のコンテンツ リリース向けに限定した作業を行うかどうか。
  • Fabric Git 統合を使用する場合、どのブランチをどのワークスペースに接続するか。

ヒント

スムーズな共同作業を促すための効果的なブランチ戦略の活用方法については、「Git ブランチ戦略を採用する」で具体的なガイダンスと推奨事項を参照してください。

変更をバッチにまとめてコミットする

コンテンツ開発を進める際は、小まめに段階を区切り、変更内容をバッチ (またはグループ) にまとめることをお勧めします。 グループ化するには、そのソリューションに関する個々の具体的な作業項目 (機能や問題など) に対応する変更内容をまとめます。 準備ができたら、コンテンツ作成者はそれらの段階的な変更をコミットします。

このように変更内容をグループ化することには、以下のような利点があります。

  • 開発作業を構造化しやすくなります。コンテンツ作成者自身が変更内容をグループ単位でレビューし、文書化する機会が得られます。
  • 計画時の方針と開発作業の方向性との調整や、機能間、問題間の関連付けがしやすくなって、作業の進捗状況を透過的に把握できます。
  • 変更内容が適切にグループ化され、明確なコミット メッセージが記録されていると、技術担当者がコンテンツ作成者からの pull request をレビューしやすくなります。

Power BI コンテンツに対する変更内容の段階的なグループ化とコミットを行うにあたっては、以下の要因について検討してください。

  • 変更内容のグループ化とコミットを、ローカル リポジトリから行うか、それとも Fabric ワークスペースから行うか。
  • 複数のモデルやレポートを 1 つのリポジトリに格納する場合、.pbip ファイルは最上位フォルダーに配置することをお勧めします。 そうすると、変更内容の識別とグループ化がしやすくなります。
  • メタデータ内の不要な変更点やメリットがない変更点については、gitignore ファイルまたは .gitattributes ファイルを使用して無視することができます。 これを利用すると、コミットするすべての変更内容が有意義なものになります。

ヒント

作業内容を段階的にグループ化して Git リポジトリにコミットする方法については、「作業内容をコミットして保存する」で具体的なガイダンスと推奨事項を参照してください。

変更をマージするための pull request を作成する

変更をマージするには、コンテンツ作成者が pull request を開きます。 pull request とはピア レビューの送信です。この結果、行われた作業が 1 つのソリューションにマージされます。 マージによって競合が生じる可能性があります。ブランチをマージするには、これを解決する必要があります。 pull request のレビューは、開発、品質、コンプライアンスに関する組織の標準やプラクティスを作成者が順守していることを確認するために重要です。

pull request を使用して変更内容を Power BI コンテンツにマージする際には、以下の要因について検討してください。

ヒント

コンテンツの変更内容をマージしてスムーズな共同作業を促すための最も効果的な pull request 使用方法については、「pull request について」と「マージ戦略とスカッシュ マージ」で具体的なガイダンスと推奨事項を参照してください。

チェックリスト - ファイルの保存場所について計画を立てる際の主な意思決定事項とアクションは以下のようなものです。

  • 開発ツールを選択する: コンテンツ開発のアプローチと、他のコンテンツ作成者との共同作業方法やバージョン管理の使用方法とを適合させることが重要です。
  • モデルとレポートのファイル形式を .pbip にするか、.pbix にするかを選択する: 一般的に、.pbip 形式にはソース管理面で大きなメリットがある一方、セルフサービスのユーザーには .pbix 形式のほうが簡単で使いやすい場合があります。
  • セマンティック モデルとレポート開発を分離する: アイテム タイプの違いに応じて変更管理の方法を分けると、バージョン管理の効果を最大化することができます。 モデル開発とレポート開発の分離は効果的な慣行の 1 つと見なされています。
  • 必要なワークスペースの数を決定する: コンテンツ ライフサイクル管理を効果的に行うには、環境を分離することが不可欠です。 必要なワークスペースの数を明確化し、適切なワークスペース レベルの計画を立てることが重要です。
  • バージョン管理の実装方法を決定する: SharePoint または OneDrive for Business を使用するシンプルな方法と、Azure DevOps を使用してソース管理の利便性を高める方法があります。
  • リモート リポジトリを設定する: OneDrive フォルダー内または Git リポジトリ内に構造化されたスペースを作成し、そこにコンテンツを格納して変更管理を行います。
  • ソース管理を使用する場合、.gitignore ファイルと .gitattributes ファイルをセットアップする: 有意義な変更内容だけを変更管理の対象とするようにリポジトリをセットアップします。
  • ソース管理を使用する場合、ブランチ戦略とマージ戦略を定義する: 開発作業を最良の形でサポートするには、ソース管理のセットアップと使用方法について明確なプロセスを定義することが重要です。 過度に複雑なプロセスを定義することは避け、 開発チームの現行の作業方法を補完する形にすることをお勧めします。

このシリーズの次の記事では、コンテンツ ライフサイクル管理の一部としてコンテンツ検証を行う方法について説明します。