PowerBIRESTAPIを使う①

Power BI Serviceにあるワークスペースや各アーティファクト(成果物という訳ですが、最新のMSの公式ドキュメントではどうやら「アイテム」という名前に名称変更)に関する情報をREST APIで取得するニーズがあり、以下Power BI REST APIというカスタムコネクタを使ったやり方について紹介していきます。

REST API

Power BI REST APIの話に入る前、まずはAPIについて理解しておく必要があります。APIという言葉、IT業界にいる人であれば当たり前の用語ですが、私のようなアナリストバックグランドの人の場合、最初にAPIという言葉を聞いた時、恐怖と好奇心が混ざった状態の”今にも狩られる小動物”のような状態だったと記憶しています。

APIApplication Programming Interfaceの頭文字をとった略称ですが、簡単に言ってしまえば、

企業(もしくは他社)が提供するサービス内の情報や機能を扱えるようにする仕組み

となります。”APIを叩く”(リクエスト=こういう情報が欲しい)というふうに表現しますが、情報を蓄えているサーバーに対してAPI使用者がリクエストを送り、リクエストされた情報を返す(レスポンス)という流れで情報を取得します。

REST APIのRESTはREpresentational State Transferの略ですが、

  1. アドレス可能性
  2. ステートレス性
  3. 接続性
  4. 統一インターフェース

という4つの原則から成り立っているものとなります。つまり、REST APIとはRESTの原則に従って実装されているAPIのことを意味します。このあたりの説明をすると、それだけで1回分のブログになってしまいますので、詳細については下記YouTubeをご参考ください。非常に分かりやすく解説されていると思います。


www.youtube.com

Power BI REST API

Power BIに置き換えて考えた場合、Power BI Serviceにある各種アーティファクト情報をAPIで取得してくるということになります。下記公式サイト(※日本語なし、英語のみ)より、各種コマンドを見ることができます。

docs.microsoft.com

Power BI REST APIについての情報はネット検索を行えばたくさん出てきますが、YouTubeが分かりやすいので、例えば以下のようなものが参考になります。

Guy in a Cube

BI Elite -Part 1

BI Elite -Part 2

BI Elite -Part 3

BI Elite -Part 4

なお、留意点として、これらのYouTubeでは公式サイトより各種APIコマンドを下図のように、「▷Try it」というボタンで試すことができると紹介されていますが、2022年8月時点、なぜかこのボタンが消えている状態2022年8月23日(日本時間)で復旧した模様です。関連チームが修正をしているようですが、具体的な回復日程は分かっていません。仕方ないですが、APIを叩く環境が非常に面倒になってきたと言えます。

カスタムコネクタ

POSTMANといったツールを使えば、APIを叩いて試すことも可能ですが、セルフサービス的にできないかを考えた場合、Power BIからカスタムコネクタで各種情報にアクセスできるのが最も簡単であるといえます。ようやく今回のブログの本題ですが、下記URLからこれを構築していきます。

PowerBIRESTAPIのダウンロード

github.com

READMEを読めば簡単ですが、念の為日本語で見ると、以下の通りになります。

このコネクタの目的は、エンドユーザーまたはテナント管理者として、次のことを簡単に行えるようにすることです。

  • テナントに配置されたすべてのリソースのカタログを作成する
  • アプリワークスペース内のメンバーおよび各メンバーのアクセスタイプ一覧を取得する(別名「グループ」)
  • 更新履歴とエラーコードを分析する
  • ゲートウェイクラスターとデータソースの詳細の表示
  • デプロイメントパイプラインの操作の分析
  • アクティビティイベントログの呼び出し

ここで一通り、やり方についておさらいしておきます。

  1. ファイルをダウンロード

  2. ファイル内にある「Power BI API.mez」をコピー
    ※ もう一つのやり方は、zipファイルをダウンロードせず、直接下記リンクからダウンロード
    >mezのダウンロード
  3. カスタムコネクタのフォルダを特定
    カスタムコネクタを使ったことがない場合、フォルダがどこにあるのか見当がつきません。そこで下記フォルダを開き、Power BI Desktopというフォルダが存在するかどうかを確認。この例では入っていないようですので、ステップ4よりフォルダを2つ作ります。

  4. Power BI DesktopとCustom Connectorsフォルダを作り、ステップ2でコピーしたmezファイルをCustom Connectorsの直下に入れる。なお、Custom Connectorsのフォルダパスは以下のようになるはずです。
    C:\Users\●●\OneDrive\ドキュメント\Power BI Desktop\Custom Connectors

  5. 空のPower BI Desktopを立ち上げる。すると、下記のメッセージが出現しますが、そのままOK

  6. 次の手順に従って、Power BI API(ベータ)コネクトに接続

  7. 接続に成功すれば、認証画面が出現します

  8. 最終的に接続に成功すると、下図のような形で各種情報を取得できます

    例として、Datasetsクエリを読み込み、詳細エディタを開くと、以下のMクエリとなっており、Keyを変更することで各種異なるアーキテクトの情報を取得することができます。

    ※ 参考「Custom Connector を作ろうとして困ったことと対処法」
    https://qiita.com/baku2san/items/5dda4a35138522e66c9c

今回はワークスペース等の管理者(Admin)情報をPower BI REST API(カスタムコネクタ)で簡単に取得できることを紹介しましたが、次回はこちらのデータをPower BI Serviceに発行し、スケジュール更新を行うやり方について紹介したいと思います。

marshal115.hatenablog.com