Power BI セマンティック モデルの系列タグ
セマンティック モデル オブジェクトで
系列タグは、スコープ内で一意である必要があります。たとえば、同じセマンティック モデル内の 2 つのテーブルに同じ系列タグを付けることはできません。 通常、Power BI Desktop は系列を必要とするセマンティック モデル オブジェクトごとに GUID を割り当てますが、このような割り当ては必須ではなく、系列タグを他の任意の文字列形式に変更できます。
セマンティック モデルへのユーザーカスタマイズの追跡
セマンティック モデルには、他のモデルまたはデータ ソースから派生したオブジェクトとプロパティを含めることができます。 たとえば、power BI セマンティック モデルに
データ ソースから同期されたモデル内のプロパティをカスタマイズしたり、モデル内のオブジェクトを削除したりする場合、Power BI では、changedProperties プロパティ と PBI_RemovedChildren 注釈がユーザーのカスタマイズを示すように設定され、データ ソースとの次のスキーマ同期中にカスタマイズが維持されます。
次のオブジェクト/プロパティはデータ ソースと同期し、変更されたプロパティとオブジェクトの削除の両方を宣言する必要があります。
シナリオ | オブジェクト | プロパティのカスタマイズ | 削除のカスタマイズ |
---|---|---|---|
インポート/DirectQuery | テーブル、列、リレーションシップ | Name、DataType | リレーションシップ 1 |
複合 | テーブル、列、リレーションシップ、メジャー、階層、レベル | Name、DataType、IsHidden、FormatString、Description、SummarizeBy、DataCategory、SortByColumn、GroupByColumns、DisplayFolder、IsNullable | ローカル モデルに含まれていないリモート モデル内のすべてのテーブル |
DirectLake | テーブル、列 | Name、DataType | モデルに含まれていない Lakehouse のすべてのテーブル |
[1]、データ ソースからの主キーと外部キーの情報に基づいてリレーションシップが自動的に作成されます。 ユーザーがこれらのリレーションシップを削除した場合、Power BI は変更を追跡して、将来のスキーマ同期中に再追加されないようにします。
ChangedProperties コレクション
ChangedProperties コレクションを使用すると、変更されたオブジェクト プロパティ値を指定して、それらの値がソースと同期されなくなった可能性があることを示します。
たとえば、Power BI セマンティック モデルで複合モデルを作成する場合、列名はソース モデルから生成されます。 ローカル モデルの列の名前を変更する場合は、名前 プロパティを変更されたプロパティとして指定する必要があります。
次の例では、ソース モデルの
table Products
column ProductKey
dataType: int64
lineageTag: 9636345e-0328-43fb-acd3-e7894734d08a
sourceLineageTag: 6890686b-4899-4916-9ec2-2e8ff5a05eb7
sourceColumn: ProductID
changedProperty = Name
PBI_RemovedChildren注釈
PBI_RemovedChildren 注釈は、削除された項目の親オブジェクトで宣言されたモデル注釈で、ローカル オブジェクトからオブジェクトを除外するユーザーの意図を宣言します。 たとえば、複合モデルを構築する場合 、を読み込むテーブルを選択できます。選択されていないテーブルはすべて、データ ソースの NamedExpression に格納されている PBI_RemovedChildren 注釈に含まれます。 インポート モデルと DirectQuery モデルでは、リレーションシップの削除を追跡するために、注釈がモデル内に格納されます。
この注釈を宣言しないと、ソースとのスキーマ同期中にセマンティック モデル オブジェクトが取得されます。
次の例では、複合モデルからテーブルが削除されています。 ソース モデル テーブルの系列タグは、名前の代わりに使用され、確実に確実に識別されます。
expression 'DirectQuery to AS - AdventureWorks' =
let
Source = AnalysisServices.Database("[XMLA Endpoint]"),
Cubes = Table.Combine(Source[Data]),
Cube = Cubes{[Id="Model", Kind="Cube"]}[Data]
in
Cube
annotation PBI_RemovedChildren = [{"remoteItemId":{"analysisServicesObject":{"sourceName":null,"sourceLineageTag":"8e47b52e-1c1a-4029-b6cc-25200d213fcf"}},"objectType":"Table"}]
考慮事項と制限事項
- Import/DirectQuery モデルの場合、changedProperty は、ネイティブ クエリを使用する DirectQuery テーブルなど、テーブルの M クエリに変更を折りたたむことができない場合にのみ必要です。
- DirectLake モデルの場合、sourceLineageTag は、Lakehouse/data warehouse のテーブル/列の名前である必要があります。
次の手順
次の記事には、役に立つ追加情報が含まれています。
- XMLA エンドポイント を使用したモデル書き込みサポートの
- XMLA の変更と複合モデルの