Développer des modèles sémantiques Direct Lake

Cet article décrit les rubriques de conception relatives au développement de modèles sémantiques Direct Lake.

Choisir le mode de stockage approprié

Le mode de stockage Direct Lake comporte deux formes. Utilisez les conseils suivants pour choisir le type Direct Lake qui convient le mieux à votre scénario. Pour plus d’informations, consultez la comparaison complète des modes de stockage.

Utiliser Direct Lake sur OneLake lorsque...

  • Vous attendez généralement des performances de requête plus rapides.
  • Vous utilisez un ou plusieurs éléments Fabric dont le stockage OneLake se résout en tables Delta valides, soit nativement, soit via des raccourcis.
  • Vous avez besoin d’une modélisation composite avec des tables Import ou DirectQuery.
  • Vous souhaitez utiliser la sécurité OneLake.
  • Vous avez besoin de fonctionnalités de modélisation, telles que des colonnes calculées ou des tables calculées faisant référence à des tables Direct Lake (version préliminaire).
  • Vous souhaitez un comportement Direct Lake cohérent sans basculement vers DirectQuery (en mode DirectLakeOnly).

Utilisez Direct Lake sur SQL quand...

Créer le modèle

Vous pouvez créer un modèle sémantique Direct Lake dans Power BI Desktop ou à partir de nombreux éléments Fabric dans le navigateur. Par exemple, à partir d’un Lakehouse ouvert, vous pouvez choisir Nouveau Modèle Sémantique pour créer un nouveau modèle sémantique en mode de stockage Direct Lake.

Le tableau suivant présente les méthodes de création les plus courantes pour chaque type de modèle sémantique Direct Lake.

Prend en charge Direct Lake sur OneLake Prend en charge Direct Lake sur SQL
Création à partir du service Power BI. Par exemple, sélectionnez Créer dans la barre de navigation de gauche, puis sélectionnez catalogue OneLake. Oui Non
Création à partir de Power BI Desktop. Oui Non
Création à partir de la page de point de terminaison analytique SQL. Par exemple, ouvrez le point de terminaison d’analytique SQL pour un lakehouse, puis sélectionnez Nouveau modèle sémantique. Oui Oui

Lorsque vous créez un modèle sémantique Direct Lake à partir du point de terminaison d’analyse SQL, vous pouvez choisir entre les deux types Direct Lake, comme illustré dans l’image suivante :

Capture d’écran montrant la boîte de dialogue de sélection de type Direct Lake lors de la création d’un modèle sémantique à partir de la page de point de terminaison SQL Analytics.

Cette boîte de dialogue prend par défaut Direct Lake sur OneLake si le point de terminaison d’analytique SQL est en mode d’identité utilisateur ou Direct Lake sur SQL si le point de terminaison d’analytique SQL est en mode délégué. Pour plus d’informations, consultez les modes d'accès dans le point de terminaison SQL Analytics.

Vous pouvez également poursuivre le développement de votre modèle à l’aide d’un outil compatible XMLA, tel que SQL Server Management Studio (SSMS) (version 19.1 ou ultérieure) ou des outils communautaires open source. Les notebooks Fabric peuvent également créer et modifier de manière programmatique des modèles sémantiques avec Semantic Link et des laboratoires Semantic Link.

Connecteurs Power Query

Un moyen simple de savoir si un modèle sémantique Direct Lake existant se trouve sur OneLake ou SQL consiste à vérifier le connecteur en mode TMDL. Sous l’onglet Modèle , faites glisser le nœud Expressions pour afficher la définition d’expression M.

Direct Lake sur OneLake utilise le connecteur Azure Data Lake Storage .

Capture d’écran montrant le connecteur Azure Data Lake Storage Gen2 en mode TMDL pour un modèle Direct Lake sur OneLake.

Direct Lake sur SQL utilise le connecteur SQL Server ou le connecteur OneLake.SqlAnalytics().

Capture d’écran montrant le connecteur SQL Server en mode TMDL pour un modèle Direct Lake sur SQL.

Modèles composites Direct Lake

Direct Lake sur OneLake permet de créer des modèles composites multi source qui combinent des tables en mode Direct Lake avec d’autres tables en mode Import/DirectQuery, offrant une flexibilité précieuse pour les tables de dimension tout en tirant parti de Direct Lake pour des tables de faits très volumineuses afin d’éviter les actualisations coûteuses et la surcharge de gestion. Pour plus d’informations, consultez la section Des modèles sémantiques composites avec des tables en mode stockage Direct Lake et Import .

Tables de modèle

Les tables de modèle sont généralement basées sur la table de l'élément source de données Fabric. Direct Lake sur SQL autorise également la sélection d’une vue SQL. Les requêtes vers une table de modèle basée sur une vue SQL revient au mode DirectQuery, ce qui peut entraîner des performances de requête plus lentes.

Note

Avec Direct Lake sur OneLake, les tables basées sur des vues SQL peuvent être ajoutées à l’aide d’autres modes de stockage tels que Import et/ou DirectQuery, car Direct Lake sur OneLake prend en charge les modèles composites.

Les tables doivent inclure des colonnes pour le filtrage, le regroupement, le tri et la synthèse, en plus des colonnes qui prennent en charge les relations de modèle.

Pour plus d’informations sur les colonnes à inclure dans vos tables de modèle sémantique, consultez Comprendre les performances des requêtes Direct Lake.

Pour plus d’informations sur l’application de règles d’accès aux données avec la sécurité au niveau de l’objet (OLS) et la sécurité au niveau des lignes (RLS), consultez Intégrer la sécurité Direct Lake.

Métadonnées du modèle Direct Lake

Lorsque vous vous connectez à un modèle sémantique Direct Lake avec le point de terminaison XMLA, les métadonnées ressemblent à celles d’un autre modèle. Toutefois, les modèles Direct Lake présentent les différences suivantes :

  • La propriété compatibilityLevel de l’objet de base de données est 1604 (ou version ultérieure).
  • La propriété mode des partitions Direct Lake est définie sur directLake.
  • Les partitions Direct Lake utilisent des expressions partagées pour définir des sources de données.
    • Direct Lake sur SQL : l’expression pointe vers l’endpoint d’analyse SQL du lakehouse ou de l’entrepôt. Direct Lake utilise le point de terminaison analytique SQL pour découvrir les informations relatives au schéma et à la sécurité. Toutefois, elle charge les données directement à partir de OneLake (à moins qu’elle ne revienne au mode DirectQuery pour une raison quelconque).
    • Direct Lake sur OneLake : l’expression pointe directement vers l’emplacement de stockage OneLake de la source de données Fabric. Direct Lake utilise les API OneLake pour la découverte de schémas, les vérifications de sécurité et le chargement des données. Direct Lake sur OneLake ne revient pas en mode DirectQuery.

Utiliser les paramètres M avec les pipelines de déploiement

Pour Direct Lake sur OneLake, les pipelines de déploiement ne fournissent pas de règles de source de données. Utilisez plutôt des paramètres texte M pour modifier l’emplacement source OneLake entre les étapes du pipeline de déploiement.

L’exemple suivant du Tabular Model Definition Language (TMDL) définit les paramètres textuels pour les identifiants de l’espace de travail et du lakehouse, et y fait référence dans l’expression de connexion :

createOrReplace
	expression 'DirectLake - Sales' =
			let
			    Source = AzureStorage.DataLake("https://onelake.dfs.fabric.microsoft.com/" & WorkspaceId & "/" & LakehouseId, [HierarchicalNavigation = true])
			in
			    Source

	expression WorkspaceId = "<workspace-id>" meta [IsParameterQuery = true, IsParameterQueryRequired = true, Type = "Text"]

	expression LakehouseId = "<lakehouse-id>" meta [IsParameterQuery = true, IsParameterQueryRequired = true, Type = "Text"]

Pour paramétrer l’URL complète, remplacez les deux paramètres d’identification par cette expression :

expression OneLakeSourceUrl = "https://onelake.dfs.fabric.microsoft.com/<workspace-id>/<item-id>" meta [IsParameterQuery = true, IsParameterQueryRequired = true, Type = "Text"]

Dans l’expression de connexion Direct Lake, utilisez AzureStorage.DataLake(OneLakeSourceUrl, [HierarchicalNavigation = true]). Remplacez les espaces réservés par les identifiants de l’espace de travail et du lakehouse ou de l’entrepôt. Lors de l’ajout du paramètre au script précédent, indentez sa déclaration au même niveau que l’expression de connexion. Configurez une règle de paramètre de déploiement pour OneLakeSourceUrl au lieu de règles séparées pour les ID.

Pour adapter cet exemple à votre modèle :

  1. En modélisation web, allez dans la vue TMDL et ouvrez l’expression partagée contenant la AzureStorage.DataLake connexion.

  2. Ajoutez les expressions des paramètres texte et mettez à jour l’expression de connexion comme montré dans l’exemple. Gardez le nom de l’expression de connexion existante, les annotations et toutes les options de connexion supplémentaires inchangés afin que les partitions existantes continuent de s’y référer. Remplacez <workspace-id> et <lakehouse-id> par les identifiants de l’espace de travail source et de lakehouse, pas les URL complètes. Pour une source d’entrepôt, utilisez un WarehouseId paramètre contenant l’ID de l’entrepôt et référencez-le au lieu de LakehouseId. N’utilisez pas l’identifiant du point de terminaison SQL analytics. Toutes expression les déclarations doivent être au même niveau d’indentation.

  3. Appliquez le script. Les paramètres doivent avoir un type Text pour être utilisés pour le rebinding via des règles de paramètres. Plusieurs connexions peuvent partager un paramètre d’espace de travail tout en utilisant des paramètres d’identification d’élément distincts.

  4. À l’étape cible du pipeline, configurez une règle de paramètre de déploiement pour chaque valeur qui change. Par exemple, définissez WorkspaceId sur l’ID de l’espace de travail cible et LakehouseId sur l’ID du lakehouse cible. Si le modèle n’est pas encore à l’étape cible, déploie-le d’abord pour pouvoir configurer les règles.

  5. Déploie le modèle sémantique de l’étape source à l’étape cible pour appliquer les règles.

  6. Rafraîchir le modèle cible, vérifier la traçabilité et s’assurer qu’il interroge la source prévue.

La source cible doit contenir les tables et colonnes auxquelles le modèle fait référence. Changer les paramètres ne crée pas ces tables ni n’accorde l’accès à celles-ci. Assurez-vous que la connexion et les permissions du modèle cible permettent l’accès aux données cibles.

Pour les modèles composites, vous pouvez créer les paramètres de texte dans Power Query plutôt que dans TMDL. L'expression de connexion Direct Lake n'est pas disponible dans Power Query. Après avoir créé les paramètres, mettez à jour cette expression dans la vue TMDL, comme dans les étapes précédentes.

Tâches postérieures à la publication

Après avoir publié un modèle sémantique Direct Lake, vous devez effectuer certaines tâches d’installation. Pour plus d’informations, consultez Gérer les modèles sémantiques Direct Lake.