1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQL Server Reporting Services (SSRS) から Power BI への .rdl レポートの移行

Posted at

はじめに

以前からSQL Server Reporting Services(SSRS)を使っているけど、Power BIも使っている状況だし、折角なのでPower BIに全部持っていきたいなと思うことは結構あるかと思う。今回はSSRSの.rdlレポートをPower BIに移行することを試したので、どのようにして移行できるかをここにメモする。

移行パターン

移行方法は大きく以下の2つになる。

  1. .rdlレポートのみをLift and Shiftする
    • データソースを変更せずに、レポートファイルをPower BIプラットフォームに移行する。
    • Power BIからデータソースへのアクセス経路を確保するために、オンプレミスデータゲートウェイが必要
  2. データソースとレポートの両方を完全に移行する。
    • データソースをFabric LakehouseやWarehouseなどに移行する。
    • レポートが新しいデータソースを参照するように改修する必要がある。

移行方法

.rdlレポートのみをLift and Shiftする

.rdl レポートの移行方式

ソース環境 移行方式
Power BI Report Server および SSRS 2017 以降 レポートを Power BI に発行するための組み込みツールを使用可能。 Power BI への .rdl ファイルの発行
以前のバージョンの SQL Server の移行ツール (SQL Server 2012 ~ SQL Server 2016) RDL 移行ツールを使用。移行ツールは以下を実行可能:

- サポートされていないデータ ソースおよびサポートされていないレポート機能をチェックする。
- "共有" リソースを "埋め込み" リソースに変換する
    - 共有データ ソースは埋め込みデータ ソースになる。
    - 共有データセットは埋め込みデータセットになる。
- チェックに合格したレポートを、"ページ分割されたレポート" として、指定した Power BI ワークスペースに発行。

移行できないレポートサーバ項目や機能

以下の種類のレポート サーバー項目はPower BIに移行できない。

  • 共有データ ソースと共有データセット: RDL移行ツールによって、共有のデータ ソースとデータセットが埋め込みのデータ ソースとデータセットに自動的に変換される(サポートされているデータ ソースが使われている場合)。
  • 画像ファイルなどのリソース
  • リンク レポート: リンクする "親" レポートが移行用に選択されているかどうかに関係なく、移行される。 Power BIサービスでは、それらは通常の.rdlレポートとなる。
  • KPI: Power BI Report Server、またはReporting Services 2016以降 — Enterprise Editionのみ。
  • モバイル レポート: Power BI Report Server、またはReporting Services 2016以降 — Enterprise Editionのみ。
  • レポート モデル: 非推奨
  • レポート パーツ: 非推奨
  • カスタムフォント
  • カスタムアセンブリ
  • カスタムコードDLLファイルの参照

その他の事前準備とか考慮事項

  • レポートの データソース のサポートを確認し、オンプレミスのデータ ソースとの接続を許可するように オンプレミスデータゲートウェイ を設定する。
  • レポートの UserID 組み込みフィールドの確認。 レポート データをセキュリティで保護するために UserID を利用している場合は、Power BIのページ分割されたレポートでは、ユーザー プリンシパル名 (UPN) が返されることに注意。そのため、組み込みフィールドでは domain\username などの NT アカウント名を返さず、 username@adventureworks.com のような値を返す。 データセット定義と、場合によってはソースデータを修正する必要がある。 修正して発行したら、データ アクセス許可が期待どおりに動作することを確認するためにレポートを入念にテストする必要がある。
  • レポートの ExecutionTime 組み込みフィールドの確認。 Power BIのページ分割されたレポートでは、組み込みフィールドから UTC で日時が返されます。 これは、レポートパラメーターのデフォルト値や、フッターなどに追加するレポート実行時間のラベルに影響する可能性がある。
  • データソースがSQL Server (オンプレミス) の場合は、レポートでマップの視覚化が使用されていないことを確認。 マップの視覚化はSQL ServerのGEOGRAPHYのようなSpatial Data Typesに依存し、これらがオンプレミスデータゲートウェイ経由ではサポートされない。
  • Power BIのページ分割されたレポートのサイジングに関しては このドキュメント が有用。

データソースへの接続

以下の図のように、.rdlレポートを移行する前に、Power BIからデータソースへの接続準備が必要。
オンプレミスデータゲートウェイについては こちら を参考にデータソースに近い場所でセットアップする。
image.png

.rdlレポートを移行

具体的な手順は このドキュメント にスクリーンショット付きで説明されているので、リンクに飛んでもらうとわかりやすい。
SSRS2027以降の場合はおおむね以下のような手順になる。

  1. レポートサーバポータルを開く
  2. 書くレポート定義をダウンロードし、.rdlファイルをローカル環境に保存
  3. 対象の.rdlファイルをレポートビルダーで開く(2022以降の新しいバージョンの場合はWebポータルから発行作業ができる)
  4. Entra IDでログインしてPower BIサービスに接続
  5. 発行 を選択し、Power BIサービス を選択
  6. レポートを保存するワークスペースを選択
  7. 保存されたことを確認。非互換のものがあると失敗するのでエラーをよく見ること

SSRS2016以前の場合はRDL移行ツールを使用する

  1. RDL 移行ツールを使用するためにPower BI Report Builderをインストール
  2. インストールが完了したら、コマンドプロンプトで RdlMigration.exe を実行。
RdlMigration <your Base url endpoint> <file Path> <WorkspaceName>

コマンド実行例:"/Sales" フォルダのレポートを Power BI の "Sales" ワークスペースにアップロード (コマンドを実行するとPower BIへのサインインが求められる)

RdlMigration https://ssrsservername/reportserver "/Sales" "Sales"

※ベースURLはSSRS Configuration Manager内で確認可能
image.png

データソースとレポートの両方を完全に移行する

.rdlファイルのLift and Shift方式では、既存のデータソースを変更しない。Fabric上にデータソースも移行する必要がある場合は、データ移行を行ったうえで、レポートでのデータセットの置換または再作成する必要がある。

イメージ図
image.png

Power BI Report Builderでは、最新のコネクターを使用して結構いろんなデータソースにアクセスできるようになっている。WarehouseやLakehouseについてもOneLakeメニューから指定可能。

データソースの選択
image.png

OneLakeメニュー
image.png

レポートのデータセットの変更

Power BI Report Builderで対象の.rdlファイルを開く。
image.png

Datasetsを右クリックして Get data 開いて、新しいデータに接続。
image.png

データソース選択画面が開く。 View more をクリック。
image.png

Microsoft Fabricにフィルタし、ここではWarehouseを選択。(データを格納しているソースに読み替えてOK)
image.png

Warehouseへの接続のために必要な認証情報を設定。
image.png

認証が通ると、候補のワークスペース > Warehouse がエクスプローラーペインに表示されるので、対象の Warehouseを展開して、読み込むテーブルを選択する。
image.png

選択したテーブルに対するPower Query開発画面に遷移。必要に応じて変換処理を作成し Create を押下。
image.png

次に以前のデータセットとデータソースを削除。それぞれ該当の名称を右クリックして Delete を押下。
データセット
image.png

データソース
image.png

レポートのオブジェクトのプロパティを開き、参照しているデータセットを新規作成したデータセットに切り替える。
image.png
image.png

切替が完了したらレポートの実行を行い、正常にレポートが動作することを確認する。必要に応じてレポート側の調整も行う。

Power BI Report Builderから修正したレポートをFabricのワークスペースに直接レポートを発行。
image.png

最後に、Fabricにアクセスし、発行したレポートが正常に動作することを確認。
image.png

その他動作が違う部分の対処案

  • URLリンクを相対パスで使用している場合は、Power BI上では絶対パスに変更しなければならない。
  • 絶対パスでHTTPで遷移していた内部リンクが動作しなくなる。Power BIはHTTPSのみが使用されるのでHTTPと書かれている場合はHTTPSに書き換える必要がある。
  • URLリンクを使用すると別タブで開く動作となるため、回避したい場合かつ.rdlレポート間での遷移の場合はURLリンクの代わりに「ドリルスルー」を使用したほうがいい。
  • Power BI Report Builderの GUI のツールでは共有データセットを埋め込みデータセットに変換する機能がない。その場合は付属のRdlMigration.exeを使用すればOK。
  • SSRSのWebポータルのレポートの一覧から詳細の画面に入るようなランディングページは用意されない。代わりとして、Power BIのアプリとして発行することでレポート一覧から選択して表示するような類似の構造は用意できる。この場合はPower BIネイティブのレポートもまぜこぜで作れるのでこっちのほうがいいと思う。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?