Härledningstaggar för Power BI-semantikmodeller
Du kan använda ursprungstaggar i semantiska modellobjekt för att möjliggöra stabil identifiering av sådana objekt i olika semantiska modeller. Med hjälp av ursprungstaggar kan Power BI-funktioner som sammansatta modeller behålla sin bindning till refererade tabeller eller kolumner (med hjälp av SourceLineageTag), även om källsemantikmodellobjektet har bytt namn.
Ursprungstaggar måste vara unika inom deras omfång. Till exempel kan två tabeller i samma semantiska modell inte ha samma ursprungstagg. Power BI Desktop tilldelar vanligtvis ett GUID för varje semantiskt modellobjekt som kräver ursprung, men sådan tilldelning är inte obligatorisk och ursprungstaggar kan ändras till något annat strängformat.
Viktig
Om semantiska modellobjekt inte har någon ursprungstagg använder Power BI som standard objektnamnet, vilket kan leda till att anpassningar går förlorade om objektet byter namn.
Spåra användaranpassningar till semantiska modeller
Semantiska modeller kan innehålla objekt och egenskaper som härletts från andra modeller eller datakällor. När du till exempel skapar en sammansatt modell på Power BI-semantiska modellerkommer tabell- och kolumnnamnen, datatyperna, formatsträngarna och andra egenskaper från källmodellen.
När du anpassar egenskaper eller tar bort objekt i modellen som har synkroniserats från datakällan förväntar sig Power BI att egenskapen changedProperties och PBI_RemovedChildren anteckning anges för att indikera en användaranpassning så att anpassningarna underhålls under nästa schemasynkronisering med datakällan.
Följande objekt/egenskaper synkroniseras med datakällan och kräver att du deklarerar både ändrade egenskaper och objektborttagningar:
Scenario | Objekt | Anpassning av egenskaper | Anpassning av borttagning |
---|---|---|---|
Importera/DirectQuery | Tabeller, kolumner, relationer | Namn, DataType | Relationer 1 |
Sammansättning | Tabeller, kolumner, relationer, mått, hierarkier, nivåer | Name, DataType, IsHidden, FormatString, Description, SummarizeBy, DataCategory, SortByColumn, GroupByColumns, DisplayFolder, IsNullable | Alla tabeller i fjärrmodellen ingår inte i den lokala modellen |
DirectLake | Tabeller, kolumner | Namn, DataType | Alla tabeller i Lakehouse ingår inte i modellen |
[1] Power BI skapar automatiskt relationer baserat på primär och sekundär nyckelinformation från datakällan. Om användarna tar bort dessa relationer håller Power BI reda på ändringarna för att förhindra att de läggs till igen under framtida schemasynkronisering.
Samlingen ChangedProperties
Med samlingen ChangedProperties kan du ange vilka objektegenskapsvärden som har ändrats, vilket indikerar att dessa värden kanske inte längre synkroniseras med källan.
När du till exempel skapar en sammansatt modell på Power BI-semantiska modeller kommer kolumnnamnen från källmodellen. Om du byter namn på en kolumn i din lokala modell måste du ange egenskapen Name som en ändrad egenskap.
I följande exempel har kolumnen ProductID från källmodellen bytt namn till ProductKey:
table Products
column ProductKey
dataType: int64
lineageTag: 9636345e-0328-43fb-acd3-e7894734d08a
sourceLineageTag: 6890686b-4899-4916-9ec2-2e8ff5a05eb7
sourceColumn: ProductID
changedProperty = Name
Den PBI_RemovedChildren kommentaren
Den PBI_RemovedChildren kommentaren är en modellanteckning som deklarerats för det överordnade objektet i det borttagna objektet som deklarerar användarens avsikt att undanta ett objekt från det lokala objektet. När du till exempel skapar en sammansatt modell kan du välja vilka tabeller som ska läsas in, och alla icke-valda tabeller ingår i den PBI_RemovedChildren anteckning som lagras i NamedExpression för datakällan. I Import- och DirectQuery-modeller lagras anteckningen i modellen för att hålla reda på relationsborttagningar.
Om den här anteckningen inte deklareras hämtas semantiska modellobjekt under schemasynkroniseringen med källan.
I följande exempel tas en tabell bort från den sammansatta modellen. Ursprungstaggen för källmodelltabellen används i stället för dess namn för att säkerställa en stabil identifiering:
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"}]
Överväganden och begränsningar
- För Import-/DirectQuery-modeller krävs endast changedProperty när ändringen inte kan vikas in i M-frågan i tabellen, till exempel i DirectQuery-tabeller som använder en intern fråga.
- För DirectLake-modeller måste sourceLineageTag vara namnet på tabellen/kolumnen i Lakehouse/data warehouse.
Nästa steg
Följande artiklar innehåller användbar ytterligare information: