Balises de traçabilité pour les modèles sémantiques Power BI
Vous pouvez utiliser balises de traçabilité dans les objets de modèle sémantique pour permettre l’identification stable de ces objets sur différents modèles sémantiques. L’utilisation de balises de traçabilité permet aux fonctionnalités Power BI telles que les modèles composites de maintenir leur liaison à des tables ou colonnes référencées (à l’aide de SourceLineageTag), même si l’objet de modèle sémantique source est renommé.
Les balises de traçabilité doivent être uniques dans leur étendue ; par exemple, deux tables du même modèle sémantique ne peuvent pas avoir la même balise de traçabilité. Power BI Desktop affecte généralement un GUID pour chaque objet de modèle sémantique nécessitant la traçabilité, mais cette affectation n’est pas obligatoire et les balises de traçabilité peuvent être modifiées en tout autre format de chaîne.
Important
Si les objets de modèle sémantique n’ont pas de balise de traçabilité, Power BI utilise par défaut le nom de l’objet, ce qui peut entraîner la perte de personnalisations si l’objet est renommé.
Suivi des personnalisations utilisateur sur des modèles sémantiques
Les modèles sémantiques peuvent inclure des objets et des propriétés dérivés d’autres modèles ou sources de données. Par exemple, lors de la création d’un modèle composite sur des modèles sémantiques Power BI, les noms de table et de colonnes, les types de données, les chaînes de format et d’autres propriétés proviennent du modèle source.
Lors de la personnalisation des propriétés ou de la suppression d’objets dans le modèle qui ont été synchronisés à partir de la source de données, Power BI s’attend à ce que la propriété changeProperties et PBI_RemovedChildren annotation soit définie pour indiquer une personnalisation de l’utilisateur afin que les personnalisations soient conservées lors de la prochaine synchronisation du schéma avec la source de données.
Les objets/propriétés suivants se synchronisent avec la source de données et vous obligent à déclarer à la fois toutes les propriétés modifiées et les suppressions d’objets :
Scénario | Objets | Personnalisation des propriétés | Personnalisation de la suppression |
---|---|---|---|
Import / DirectQuery | Tables, colonnes, relations | Name, DataType | Relations 1 |
Composite | Tables, colonnes, relations, mesures, hiérarchies, niveaux | Name, DataType, IsHidden, FormatString, Description, SummarizeBy, DataCategory, SortByColumn, GroupByColumns, DisplayFolder, IsNullable | Toutes les tables du modèle distant non incluses dans le modèle local |
DirectLake | Tables, colonnes | Name, DataType | Toutes les tables de Lakehouse non incluses dans le modèle |
[1] Power BI crée automatiquement des relations basées sur les informations de clé primaire et étrangère de la source de données. Si les utilisateurs suppriment ces relations, Power BI effectue le suivi des modifications pour éviter de les réinscrire lors de la synchronisation de schéma ultérieure.
Collection ChangedProperties
La collection ChangedProperties vous permet de spécifier les valeurs de propriété d’objet qui ont été modifiées, ce qui indique que ces valeurs peuvent ne plus être synchronisées avec la source.
Par exemple, lors de la création d’un modèle composite sur des modèles sémantiques Power BI, les noms de colonnes proviennent du modèle source. Si vous renommez une colonne dans votre modèle local, vous devez spécifier la propriété Name en tant que propriété modifiée.
Dans l’exemple suivant, la colonne ProductID du modèle source a été renommée ProductKey:
table Products
column ProductKey
dataType: int64
lineageTag: 9636345e-0328-43fb-acd3-e7894734d08a
sourceLineageTag: 6890686b-4899-4916-9ec2-2e8ff5a05eb7
sourceColumn: ProductID
changedProperty = Name
Annotation PBI_RemovedChildren
L’annotation PBI_RemovedChildren est une annotation de modèle déclarée sur l’objet parent de l’élément supprimé qui déclare l’intention de l’utilisateur d’exclure un objet de l’objet local. Par exemple, lors de la construction d’un modèle composite, vous pouvez choisir les tables à charger, et toutes les tables non sélectionnées sont incluses dans l’annotation PBI_RemovedChildren stockée dans la NamedExpression de la source de données. Dans les modèles Import et DirectQuery, l’annotation est stockée dans le modèle pour effectuer le suivi des suppressions de relations.
Si vous ne déclarez pas cette annotation, les objets de modèle sémantique doivent être récupérés pendant la synchronisation de schéma avec la source.
Dans l’exemple suivant, une table est supprimée du modèle composite. La balise de traçabilité de la table de modèle source est utilisée au lieu de son nom pour garantir une identification stable :
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"}]
Considérations et limitations
- Pour les modèles Import/DirectQuery, l'changedProperty n’est nécessaire que lorsque la modification ne peut pas être pliée dans la requête M de la table, par exemple dans les tables DirectQuery utilisant une requête native.
- Pour les modèles DirectLake, le sourceLineageTag
doit être le nom de la table/colonne de l’entrepôt de données Lakehouse/Data Warehouse.
Étape suivante
Les articles suivants contiennent des informations supplémentaires utiles :