電通総研 テックブログ

電通総研が運営する技術ブログ

Microsoft Fabric の Git 統合を試してみる

こんにちは、X(クロス)イノベーション本部 クラウドイノベーションセンターの田村です。

Microsoft Fabric では Git 統合が提供されており、ワークスペース内のアイテムに対して Git によるソース管理が可能です。
本記事では、実際に Git 統合を利用したソース管理の手順や制約事項についてご紹介します。
Microsoft Fabric とは?」という方は下記の紹介記事や Microsoft Fabric のドキュメントをご参照ください。

なお、本記事に記載されている情報は 2023 年 8 月時点のものとなります。
Microsoft Fabric のアップデートや一般公開(GA)で情報が更新される場合もありますのでご注意ください。

Microsoft Fabric の Git 統合について

概要

Git 統合は Microsoft Fabric のワークスペースと Git リポジトリを接続することで実現します。
両者を接続することでワークスペース内のアイテムが Git リポジトリと同期され、アイテムの変更差分が検出されます。

また、Git におけるコミットやコミット前の変更取り消しは Microsoft Fabric の UI 上から実施できるように設計されています。

ソース管理対象

Git 統合はプレビュー中のため、ソース管理がサポートされる Microsoft Fabric のアイテムは 2 つのみとなっています。

  • レポート:データセットをもとに Power BI により可視化されたグラフや表、マップなどのビジュアル群
  • データセット:Power BI での検出・可視化が可能となったデータソース

現時点ではデータ分析における可視化領域のみで Git 統合を利用できますが、Microsoft のドキュメントには次の記載があるため、今後サポート対象となるアイテムの追加に期待したいと思います。

現在、プレビュー段階ではいくつかのアイテムのみがサポートされていますが、一覧のサポートされているアイテムは増えています。

制約事項

ワークスペースと接続できる Git リポジトリは Azure Repos のみがサポートされており、GitHub 上のリポジトリは現在サポート外となっています。
Microsoft Fabric のコミュニティサイトでは、GitHub を含めたサポートの拡大要望が寄せられていますが、Microsoft 側の対応可否や時期は不明です。

Git 統合の実践

Azure Repos の準備

前述したとおり Git 統合にてサポートされるのは Azure Repos のみであるため、そちらで Git リポジトリを準備します。
Azure Repos とは、Microsoft が提供する DevOps 支援サービスである Azure DevOps に含まれる Git のホスティングサービスです。

今回は検証のために Azure DevOps プロジェクトを作成し、Azure Repos 上で Git 統合用のリポジトリを構成しました。
プロジェクト名と Git リポジトリ名は msfabric-test としています。

Azure Repos の初期設定については下記ドキュメントをご参照ください。

なお、以降 Azure Repos に対する操作はすべてプロジェクト管理者権限で実施しています。

Microsoft Fabric ワークスペースと Git リポジトリの接続

こちらのドキュメントに従って接続設定を実施します。

以降の Microsoft Fabric における操作は、作業者アカウントにワークスペースの管理者権限があることを前提としています。
Microsoft Fabric の[ワークスペースの設定] > [Git 統合]より、接続先の Azure Repos の情報を入力し[接続と同期]を実行します。

同期が完了すると、ワークスペース内のレポートとデータセットが Azure Repos の Git リポジトリへ反映されます。
このとき、末尾が.Datasetディレクトリと.Reportディレクトリにデータセットとレポートの構成ファイルがそれぞれ格納されています。

アイテムに対する変更適用

レポートとデータセットに対してそれぞれ変更を加え、ソース管理の流れを確認します。

検証用のデータセットMicrosoft Fabric のチュートリアルで提供されている卸売業の売上データを利用しました。
売上データが格納された 1 つのファクトテーブルと、商品や顧客、従業員といった情報が格納された 5 つのディメンションテーブルで構成されています。

検証用のレポートは前述のデータセットから自動生成しており、複数のグラフとカードおよびテキストビジュアルから構成されています。

まずはデータセットに対して変更を加えてみます。
今回は、Microsoft Fabric の GUI からデータセットに構成されているリレーションシップを 1 件削除し、構成ファイルにどのような変更があるか確認しました。

データセットに変更を加えると、ワークスペースのアイテム一覧画面で検出されます。
同画面でトピックブランチへチェックアウトして変更をコミットすると、同期先の Azure Repos にて変更された構成ファイルや箇所を確認できます。

検証用のデータセットは 4 つのファイルで構成されており、リレーションシップの設定についてはmodel.bimというファイルのみに変更が適用されていました。
各ファイルの説明を下表に記載します。

ファイル名  必須  説明
model.bim データベースオブジェクトの定義が Tabular Model Scripting Language(TMSL)で記述されている
definition.pbidataset データセットに関連付けられた Q&A やスキーマ共有に関する設定が記述されている
item.config.json ファイルのバージョン情報と同期先のワークスペース ID が記述されている
item.metadata.json Git 統合されているアイテムの種別(ここではデータセット)とアイテム名、説明が記述されている

上記をふまえると、データセットに対して想定される下記のような操作については、その変更がmodel.bimの記述に反映されると推測できます。

  • テーブルの追加・削除
  • データの挿入・更新や削除
  • データモデルでのメジャー作成
  • リレーションシップの変更

次にレポートに対しても変更を加えます。
Microsoft Fabric の Power BI にて、前述したレポートに下図のカードとグラフビジュアルを追加しました。

データセットに対する変更と同様、上記の変更はワークスペースのアイテム一覧画面で検出され、コミット後に Azure Repos 側で詳細を確認できます。

検証用のレポートは 5 つのファイルで構成されており、今回の変更についてはreport.jsonというファイルのみに変更が適用されていました。
各ファイルの説明を下表に記載します。

ファイル名  必須  説明
CY23SU08.json レポートのカスタムテーマ、イメージ、カスタムビジュアルなどの固有情報が記述されている
definition.pbir 参照するデータセットに関する情報が記述されている
report.json レポートに含まれるページ、ビジュアルの情報が記述されている
item.config.json ファイルのバージョン情報と同期先のワークスペース ID が記述されている
item.metadata.json Git 統合されているアイテムの種別(ここではレポート)とアイテム名、説明が記述されている

今回はレポートのビジュアルに関する変更のみを実施したため、report.jsonの記述のみが影響を受けたと考えられます。
また、データセットおよびレポートの設定によっては上記に加えて追加の構成ファイルが必要になる場合もあります。
詳細は下記ドキュメントをご参照ください。

変更内容をコミットした後は、Pull Request による一般的なレビュー手順に沿ってmainブランチへ変更を適用できました。

  1. トピックブランチとマージ先のブランチ(main)およびレビュアーを指定し、Pull Request を作成
  2. レビュアーは Pull Request の内容を確認し、指摘やコメントをレビュイーに伝える
  3. レビューに問題がなければレビュアーの承認をもって Pull Request を完了し、変更をmainブランチへマージする

また、今回は実施しませんでしたが Microsoft Fabric では Azure Pipelines を利用したテスト・デプロイの自動化についてもサポートしています。
Azure Pipelines は Azure Repos と同様 Azure DevOps に含まれるサービスのため、Git 統合とうまく組み合わせて CI/CD 環境を構築することで開発やテストの効率化が期待できます。

ソース管理時の注意点

Microsoft Fabric 上ではレポートやデータセットといったアイテムの構成ファイルを管理していないため、Git クライアントアプリケーションのように具体的な変更箇所がわかりません。
そのため、作業者自身が変更内容を正しく把握し、適切なコミットメッセージの記述等で円滑なコミュニケーションを図るといった意識が重要になります。

また、Microsoft Fabric の UI で可能な Git 操作は現状git commitgit checkoutのみです。
コミットの取り消しやリベースなどの操作が必要になった際は、Git コマンドラインツールや Git クライアントアプリケーションを Azure Repos と併用する必要があります。

まとめ

本記事では、Microsoft Fabric の Git 統合を利用したソース管理について、実際に利用した際の手順や注意事項、所感についてご紹介しました。

これまで Power BI のデータセットやレポートといったアイテムはテキストベースでのソース管理ができませんでしたが、Git 統合により GUI 上で可能になった点は魅力的だと感じています。
一方で、一般的なソース管理ではコミットの取り消しやその他 Git コマンドを利用した作業も多いため、Git クライアントやコマンドラインツールと併用した管理方法も選択肢になり得ます。

現時点では可視化領域のアイテムのみが Git 統合に対応していますが、将来的にはデータ加工や変換、分析といった領域で必要となる ETL パイプラインやデータフロー、各種クエリについてもソース管理の対象となることを期待します。


私たちは一緒に働いてくれる仲間を募集しています!

クラウドアーキテクト

執筆:@tamura.kohei、レビュー:@kano.nanami
Shodoで執筆されました