7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Power BI]データセットの『高度な増分更新』を試してみよう😃/Advanced incremental refresh

Posted at

はじめに

本記事はPower BI Premiumの機能を利用しています。
Power BI Premiumを導入する理由の一つになるので、Proユーザーもぜひご一読を😁

やりたいこと

増分更新を設定したDatasetをPower BI Serviceに公開したあと、初回更新はとても時間がかかりますよね:thinking:

データをパーテーションに分けて(年ごと、四半期ごと、など)、データソースから全行スキャンしたうえでパーテーションごとにデータを格納する処理が重いためです。一度パーテーションごとのデータ格納が済んでしまえば、過去のデータは更新されず、指定したパーテーションだけが更新されるので更新時間はとても早くなる・・はずなのですが・・

データが多すぎると、初回のデータ更新が既定の制限時間内に終わらない! ことがあります。初回のデータ更新さえ終わってくれれば2回目以降は早いのに・・だけど、初回のデータ更新ができないと始まらない!

そんな状況を解決するためのひとつの方法です。

image.png

データセット更新時間の制限

データセット更新時間の制限は下記の通りです。

  • Power BI Pro
    • 2時間
  • PPU/Premium
    • 5時間
  • XMLAエンドポイント経由の更新は時間無制限

XMLAエンドポイントの接続は制限時間無制限😊

Power BI Service上で更新ボタンを押した場合と違い、XMLAエンドポイント経由でデータセットの更新をした場合には制限時間はありません。5時間以上かかる更新にはこれを利用します。XMLAエンドポイント経由でアクセスすると、Premiumワークスペースやそのワークスペースに置いてあるデータセットには、SSMSやTabularEditorなどのツールを利用して直接さわることが可能です。ワークスペースがデータサーバーで、データセット一つ一つがデータベースです。

ワークスペース、データセットへのアクセス用文字列の取得方法

ワークスペースにアクセスするには、設定>Premium>ワークスペース接続にある接続文字列をコピーします。

image.png

データセットへのアクセスは、3点リーダーの設定>サーバー文字列の項目にいき、コピーします。

image.png

今回のケースでは

  1. Tabular Editorを使用してパーテーションの設定
  2. SSMSを使用して各パーテーションにデータを格納

までをXMLAエンドポイント経由で自力で行います💪
時間はもちろんかかりますが、制限時間はありません。大きなデータセットの初回更新を

Tabular Editor を使用したパーテーションの設定

SSMSを使用したパーテーションの設定もできますが、重複がないようにしたり、ひとつひとつ設定したりするのが非常にめんどうです。Tabular Editorを使用すれば一括で設定可能。

先ほど取得した接続文字列を使用して、ワークスペースやデータセットにアクセスし、増分更新をしたいテーブルで右クリックをし、「Apply refresh policy」 をクリックします。プロパティウィンドウで、増分更新の設定がされていることを確認しましょう。ここで任意の数値に設定も変えられます。

設定後にパーテーションを開くと、年や四半期ごとにパーテーションが自動で設定されていることを確認することができます。

ただこのままだとパーテーションは設定できましたが、肝心のデータはまだ入っていません。いま変更を加えたデータモデルを保存して、次はSSMSを開きます。

image.png

image.png

SSMSでデータをパーテーションに読み込む

SSMSでの接続はTabular Editorと同様で、サーバー接続用の文字列を入力するだけです。Power BIの裏側はAnalysis Servicesなので、サーバータイプを「Analysis Services」に変えるのを忘れずに😁

ターゲットのテーブルを右クリックするとPartitionsという項目が出てきます。こちらをクリックすると、先ほどTabular Editorで作成したパーテーションを確認することができます。

全てのパーテーションを選択して、OKを押せばデータ読込が開始します。あとは待つだけ😚

image.png

増分更新の対象テーブルをすべて更新すると、Power BI Serviceでの初回更新は行われず、指定したパーテーションのみの更新になります。

注意点

XMLAエンドポイント経由でいじったPBIXファイルはダウンロードすることができなくなります。

image.png

まとめ

増分更新をしないといけないシナリオは確実にありますが、その前にできることは要確認😉データモデルに不要な列はないの?そこまで過去のデータは必要なの?ダイレクトクエリじゃダメ?いろいろなやり方の中のひとつだということを意識しておこう💪

参考リンク

7
5
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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?