次の方法で共有


Power BI セマンティック モデルの系列タグ

セマンティック モデル オブジェクトで 系列タグを使用すると、さまざまなセマンティック モデル間でこのようなオブジェクトを安定して識別できます。 系列タグを使用すると、ソース セマンティック モデル オブジェクトの名前が変更された場合でも、複合モデル などの Power BI 機能を使用して、参照先のテーブルまたは列へのバインドを (SourceLineageTagを使用して) 維持できます。

系列タグは、スコープ内で一意である必要があります。たとえば、同じセマンティック モデル内の 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 セマンティック モデルで複合モデルを作成する場合、列名はソース モデルから生成されます。 ローカル モデルの列の名前を変更する場合は、名前 プロパティを変更されたプロパティとして指定する必要があります。

次の例では、ソース モデルの ProductID 列の名前が ProductKeyに変更されました。

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 のテーブル/列の名前である必要があります。

次の手順

次の記事には、役に立つ追加情報が含まれています。