Tag di derivazione per i modelli semantici di Power BI
È possibile usare tag di derivazione negli oggetti modello semantico per consentire l'identificazione stabile di tali oggetti in modelli semantici diversi. L'uso dei tag di derivazione consente a Power BI funzionalità come modelli compositi di mantenere il binding a tabelle o colonne a cui si fa riferimento (usando SourceLineageTag), anche se l'oggetto modello semantico di origine viene rinominato.
I tag di derivazione devono essere univoci all'interno dell'ambito; Ad esempio, due tabelle nello stesso modello semantico non possono avere lo stesso tag di derivazione. Power BI Desktop assegna in genere un GUID per ogni oggetto modello semantico che richiede la derivazione, ma tale assegnazione non è obbligatoria e i tag di derivazione possono essere modificati in qualsiasi altro formato di stringa.
Rilevamento delle personalizzazioni utente nei modelli semantici
I modelli semantici possono includere oggetti e proprietà derivati da altri modelli o origini dati. Ad esempio, quando si crea un modello composito nei modelli semantici di Power BI, i nomi di tabella e di colonna, i tipi di dati, le stringhe di formato e altre proprietà provengono dal modello di origine.
Quando si personalizzano le proprietà o si rimuovono oggetti nel modello sincronizzati dall'origine dati, Power BI prevede che la proprietà changedProperties e PBI_RemovedChildren annotazione da impostare per indicare una personalizzazione dell'utente in modo che le personalizzazioni vengano mantenute durante la successiva sincronizzazione dello schema con l'origine dati.
Gli oggetti o le proprietà seguenti vengono sincronizzati con l'origine dati e richiedono di dichiarare le eventuali proprietà modificate e le rimozioni degli oggetti:
Scenario | Oggetti | Personalizzazione delle proprietà | Personalizzazione della rimozione |
---|---|---|---|
Importa/DirectQuery | Tabelle, colonne, relazioni | Name, DataType | Relazioni 1 |
Composito | Tabelle, colonne, relazioni, misure, gerarchie, livelli | Name, DataType, IsHidden, FormatString, Description, SummarizeBy, DataCategory, SortByColumn, GroupByColumns, DisplayFolder, IsNullable | Tutte le tabelle nel modello remoto non sono incluse nel modello locale |
DirectLake | Tabelle, colonne | Name, DataType | Tutte le tabelle in Lakehouse non sono incluse nel modello |
[1] Power BI crea automaticamente relazioni basate su informazioni sulla chiave primaria e esterna dall'origine dati. Se gli utenti rimuovono tali relazioni, Power BI tiene traccia delle modifiche per evitare di aggiungerle nuovamente durante la sincronizzazione dello schema futura.
Insieme ChangedProperties
L'insieme ChangedProperties consente di specificare i valori delle proprietà dell'oggetto modificati, a indicare che tali valori non possono più essere sincronizzati con l'origine.
Ad esempio, quando si crea un modello composito nei modelli semantici di Power BI, i nomi delle colonne provengono dal modello di origine. Se si rinomina una colonna nel modello locale, è necessario specificare la proprietà nome
Nell'esempio seguente la colonna ProductID del modello di origine è stata rinominata ProductKey:
table Products
column ProductKey
dataType: int64
lineageTag: 9636345e-0328-43fb-acd3-e7894734d08a
sourceLineageTag: 6890686b-4899-4916-9ec2-2e8ff5a05eb7
sourceColumn: ProductID
changedProperty = Name
Annotazione PBI_RemovedChildren
L'annotazione PBI_RemovedChildren è un'annotazione del modello dichiarata nell'oggetto padre dell'elemento rimosso che dichiara la finalità dell'utente di escludere un oggetto dall'oggetto locale. Ad esempio, quando si costruisce un modello composito è possibile scegliere quali tabelle caricaree tutte le tabelle non selezionate sono incluse nell'annotazione PBI_RemovedChildren archiviata nell'NamedExpression dell'origine dati. Nei modelli Import e DirectQuery l'annotazione viene archiviata all'interno del modello per tenere traccia delle rimozioni delle relazioni.
La mancata dichiarazione di questa annotazione comporta il recupero di oggetti modello semantico durante la sincronizzazione dello schema con l'origine.
Nell'esempio seguente una tabella viene rimossa dal modello composito. Il tag di derivazione della tabella del modello di origine viene usato anziché il relativo nome per garantire un'identificazione stabile:
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"}]
Considerazioni e limitazioni
- Per i modelli Import/DirectQuery, la changedProperty è necessaria solo quando la modifica non può essere piegata nella query M della tabella, ad esempio nelle tabelle DirectQuery che usano una query nativa.
- Per i modelli DirectLake, il sourceLineageTag deve essere il nome della tabella/colonna nel lakehouse/data warehouse.
Passaggio successivo
Gli articoli seguenti contengono informazioni aggiuntive utili: