共用方式為


Power BI 語意模型的譜系標籤

您可以在語意模型物件中使用 譜系標記,以在不同語意模型中穩定識別這類物件。 使用譜系標記可讓Power BI功能,例如 複合模型,以維持對參考數據表或數據行的系結(使用 SourceLineageTag),即使來源語意模型物件重新命名也一樣。

譜系標籤在其範圍內必須是唯一的;例如,相同語意模型中的兩個數據表不能有相同的譜系標記。 Power BI Desktop 通常會為每個需要譜系的語意模型物件指派 GUID,但這類指派並非必要,譜系標記可以變更為任何其他字串格式。

追蹤使用者自定義語意模型

語意模型可以包含衍生自其他模型或數據源的對象和屬性。 例如,在 Power BI 語意模型上建立 複合模型時,、數據表和數據行名稱、數據類型、格式字串和其他屬性源自來源模型。

自定義已從數據源同步處理之模型中的屬性或移除物件時,Power BI 預期 changedProperties 屬性,並 PBI_RemovedChildren 批注設定為指出使用者自定義,以便在下次與數據源的架構同步處理期間維護自定義。

下列物件/屬性會與數據源同步,並要求您宣告任何修改的屬性和物件移除:

場景 物件 屬性自定義 拿掉自定義
Import / DirectQuery 數據表、數據行、關聯性 Name、DataType 關聯性 1
複合 數據表、數據行、關聯性、量值、階層、層級 Name、DataType、IsHidden、FormatString、Description、SummarizeBy、DataCategory、SortByColumn、GroupByColumns、DisplayFolder、IsNullable 遠端模型中未包含在本機模型中的所有數據表
DirectLake 數據表、數據行 Name、DataType Lakehouse 中未包含在模型中的所有數據表

[1] Power BI 會自動根據數據源的主鍵和外鍵資訊建立關聯性。 如果使用者移除這些關聯性,Power BI 會追蹤變更,以避免在未來的架構同步處理期間重新新增這些變更。

ChangedProperties 集合

ChangedProperties 集合可讓您指定哪些物件屬性值已經過修改,表示這些值可能不再與來源同步處理。

例如,在Power BI語意模型上建立複合模型時,數據行名稱源自來源模型。 如果您重新命名本機模型中的數據行,則必須將 Name 屬性指定為已變更的屬性。

在下列範例中,來源模型中的 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 批注中。 在 Import 和 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 模型,只有在無法將變更折疊至數據表的 M 查詢時,才需要 changedProperty,例如使用原生查詢的 DirectQuery 數據表。
  • 對於 DirectLake 模型,sourceLineageTag 必須是 Lakehouse/data 倉儲中的數據表/數據行名稱。

下一步

下列文章包含有用的其他資訊: