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?

More than 1 year has passed since last update.

Tabular Editor 2 DocsAdvent Calendar 2022

Day 18

[Tabular Editor 2 Docs] 増分更新

Last updated at Posted at 2022-12-17

Tabular Editor 2 Docs

こちらはTabular Editor 2 Docs Advent Calendar 2022への投稿記事です。

2022年11月下旬ごろのDocsを日本語訳しています。
最新情報は公式ページ・公式リポジトリをご確認ください。

増分更新

Power BI Serviceでホストされているデータセットでは、1つ以上のテーブルで Incremental Refresh を設定できます。Power BIデータセットでIncremental Refreshを設定・変更するには、Power BIサービスのXMLAエンドポイントを直接使用するか、後述のようにXMLAエンドポイントに接続したTabular Editorを使用することが可能です。

Tabular Editorでゼロから増分更新を設定する

  1. ワークスペースのPower BI XMLA R/Wエンドポイントに接続し、増分更新を設定するデータセットを開きます。
  2. 増分更新には RangeStartRangeEnd パラメーターを作成する必要があります (追加情報) ので、まずTabular Editorで新しいShared Expressionsを2つ追加してみましょう。
    Add shared expressions
  3. それぞれ RangeStartRangeEnd という名前を付け、Kind プロパティを "M" に設定し、式を以下のように設定します(実際に指定する日時の値は、データ更新の開始時にPBIサービスによって設定されるため、重要ではありません)。
#datetime(2021, 6, 9, 0, 0, 0) meta [IsParameterQuery=true, Type="DateTime", IsParameterQueryRequired=true]

Set kind property

  1. 次に、増分更新を有効にするテーブルを選択します。
  2. テーブルのEnableRefreshPolicyプロパティを "true "に設定します。
    Enable Refresh Policy
  3. 残りのプロパティは、必要なインクリメンタルリフレッシュポリシーにしたがって設定します。SourceExpression プロパティにM式を指定することを忘れないでください (これは、増分更新ポリシーによって作成されるパーティションに追加される式です。ソースのデータをフィルターするために RangeStartRangeEnd パラメーターを使用する必要があります)。データ重複をする可能性があるため、= 演算子はRangeStartまたはRangeEndのいずれかにのみ適用し、両方には適用しないでください。
    Configure Properties
  4. モデルの保存 (Ctrl+S).
  5. テーブルを右クリックし"Apply Refresh Policy"を選択します。
    Apply Refresh Policy

これで完了です。この時点で、Power BI Serviceが、指定したポリシーに基づいてテーブルのパーティションを自動的に生成していることが確認できるはずです。

Generated Partitions

次に、パーティション内のデータのリフレッシュを行います。これにはPower BIのサービスを利用することもできますし、SQL Server Management StudioによるXMLA/TMSLや、Tabular Editorのスクリプトを使ってパーティションを一括でリフレッシュすることも可能です。

Modifying existing refresh policies

Power BI Desktopで設定した既存のリフレッシュポリシーをTabular Editorで変更することもできます。この場合は、上記のステップ6-8を実行するだけです。

Applying refresh policies with EffectiveDate

現在の日付を上書きしながらパーティションを生成したい場合(異なるローリングウィンドウ範囲を生成する目的で)、Tabular Editorの小さなスクリプトを使用して、EffectiveDate パラメーターでリフレッシュポリシーを適用できます。

増分更新テーブルを選択した状態で、上記のステップ8の代わりに、Tabular Editorの「アドバンススクリプト」ペインで以下のスクリプトを実行します。

var effectiveDate = new DateTime(2020, 1, 1);  // Todo: replace with your effective date
Selected.Table.ApplyRefreshPolicy(effectiveDate);

Use scripts to apply refresh policy

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?