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でゼロから増分更新を設定する
- ワークスペースのPower BI XMLA R/Wエンドポイントに接続し、増分更新を設定するデータセットを開きます。
- 増分更新には
RangeStart
とRangeEnd
パラメーターを作成する必要があります (追加情報) ので、まずTabular Editorで新しいShared Expressionsを2つ追加してみましょう。
- それぞれ
RangeStart
とRangeEnd
という名前を付け、Kind
プロパティを "M" に設定し、式を以下のように設定します(実際に指定する日時の値は、データ更新の開始時にPBIサービスによって設定されるため、重要ではありません)。
#datetime(2021, 6, 9, 0, 0, 0) meta [IsParameterQuery=true, Type="DateTime", IsParameterQueryRequired=true]
- 次に、増分更新を有効にするテーブルを選択します。
- テーブルの
EnableRefreshPolicy
プロパティを "true "に設定します。
- 残りのプロパティは、必要なインクリメンタルリフレッシュポリシーにしたがって設定します。
SourceExpression
プロパティにM式を指定することを忘れないでください (これは、増分更新ポリシーによって作成されるパーティションに追加される式です。ソースのデータをフィルターするためにRangeStart
とRangeEnd
パラメーターを使用する必要があります)。データ重複をする可能性があるため、= 演算子はRangeStart
またはRangeEnd
のいずれかにのみ適用し、両方には適用しないでください。
- モデルの保存 (Ctrl+S).
- テーブルを右クリックし"Apply Refresh Policy"を選択します。
これで完了です。この時点で、Power BI Serviceが、指定したポリシーに基づいてテーブルのパーティションを自動的に生成していることが確認できるはずです。
次に、パーティション内のデータのリフレッシュを行います。これには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);