Delen via


Herkomsttags voor semantische Power BI-modellen

U kunt herkomstlabels in semantische modelobjecten gebruiken om stabiele identificatie van dergelijke objecten in verschillende semantische modellen mogelijk te maken. Met behulp van herkomsttags kunnen Power BI-functies zoals samengestelde modellen hun binding onderhouden naar tabellen of kolommen waarnaar wordt verwezen (door gebruik te maken van SourceLineageTag), zelfs als de naam van het bronsemantische modelobject wordt gewijzigd.

Herkomsttags moeten uniek zijn binnen hun bereik; Twee tabellen in hetzelfde semantische model kunnen bijvoorbeeld niet dezelfde herkomsttag hebben. Power BI Desktop wijst doorgaans een GUID toe voor elk semantisch modelobject waarvoor herkomst is vereist, maar deze toewijzing is niet verplicht en herkomsttags kunnen worden gewijzigd in elke andere tekenreeksindeling.

Belangrijk

Als semantische modelobjecten geen herkomsttag hebben, gebruikt Power BI standaard de objectnaam, wat kan leiden tot het verlies van aanpassingen als de naam van het object wordt gewijzigd.

Gebruikersaanpassingen bijhouden in semantische modellen

Semantische modellen kunnen objecten en eigenschappen bevatten die zijn afgeleid van andere modellen of gegevensbronnen. Wanneer u bijvoorbeeld een samengesteld model maakt op semantische Power BI-modellen, zijn de tabel- en kolomnamen, gegevenstypen, opmaaktekenreeksen en andere eigenschappen afkomstig van het bronmodel.

Bij het aanpassen van eigenschappen of het verwijderen van objecten in het model dat is gesynchroniseerd vanuit de gegevensbron, verwacht Power BI dat de eigenschap changedProperties-eigenschap en PBI_RemovedChildren-aantekening moet worden ingesteld om een aanpassing van een gebruiker aan te geven, zodat de aanpassingen worden gehandhaafd tijdens de volgende schemasynchronisatie met de gegevensbron.

De volgende objecten/eigenschappen worden gesynchroniseerd met de gegevensbron en vereisen dat u zowel gewijzigde eigenschappen als objectverwijderingen declareert:

Scenario Objecten Aanpassing van eigenschap Aanpassing verwijderen
Importeren/DirectQuery Tabellen, kolommen, relaties Naam, DataType Relaties 1
Composiet Tabellen, kolommen, relaties, metingen, hiërarchieën, niveaus Name, DataType, IsHidden, FormatString, Description, SummarizeBy, DataCategory, SortByColumn, GroupByColumns, DisplayFolder, IsNullable Alle tabellen in het externe model die niet zijn opgenomen in het lokale model
DirectLake Tabellen, kolommen Naam, DataType Alle tabellen in lakehouse die niet zijn opgenomen in het model

[1] Power BI automatisch relaties maakt op basis van primaire en refererende sleutelgegevens uit de gegevensbron. Als gebruikers deze relaties verwijderen, houdt Power BI de wijzigingen bij om te voorkomen dat ze opnieuw worden toegevoegd tijdens toekomstige schemasynchronisatie.

De verzameling ChangedProperties

Met de verzameling ChangedProperties kunt u opgeven welke objecteigenschapswaarden zijn gewijzigd, waarmee wordt aangegeven dat deze waarden niet meer met de bron kunnen worden gesynchroniseerd.

Wanneer u bijvoorbeeld een samengesteld model maakt op semantische Power BI-modellen, zijn de kolomnamen afkomstig van het bronmodel. Als u de naam van een kolom in uw lokale model wijzigt, moet u de eigenschap Naam opgeven als een gewijzigde eigenschap.

In het volgende voorbeeld is de kolom ProductID van het bronmodel gewijzigd in ProductKey-:

table Products 

    column ProductKey 
        dataType: int64          
        lineageTag: 9636345e-0328-43fb-acd3-e7894734d08a 
        sourceLineageTag: 6890686b-4899-4916-9ec2-2e8ff5a05eb7               
        sourceColumn: ProductID 

        changedProperty = Name

De aantekening PBI_RemovedChildren

De PBI_RemovedChildren aantekening is een modelaantekening die is gedeclareerd op het bovenliggende object van het verwijderde item dat de intentie van de gebruiker declareert om een object uit te sluiten van het lokale object. Wanneer u bijvoorbeeld een samengesteld model maakt, kunt u kiezen welke tabellen moeten worden geladenen worden alle niet-geselecteerde tabellen opgenomen in de PBI_RemovedChildren aantekening die is opgeslagen in de NamedExpression- van de gegevensbron. In Import- en DirectQuery-modellen wordt de aantekening opgeslagen in het model om relatieverwijderingen bij te houden.

Als u deze aantekening niet declareren, worden semantische modelobjecten opgehaald tijdens schemasynchronisatie met de bron.

In het volgende voorbeeld wordt een tabel verwijderd uit het samengestelde model. De herkomsttag van de bronmodeltabel wordt gebruikt in plaats van de naam om een stabiele identificatie te garanderen:

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"}]

Overwegingen en beperkingen

  • Voor Import-/DirectQuery-modellen is de changedProperty- alleen vereist wanneer de wijziging niet kan worden gevouwen in de M-query van de tabel, zoals in DirectQuery-tabellen die gebruikmaken van een systeemeigen query.
  • Voor DirectLake-modellen moet de sourceLineageTag- de naam zijn van de tabel/kolom in het Lakehouse/datawarehouse.

Volgende stap

De volgende artikelen bevatten nuttige aanvullende informatie: