Partager via


Qu'est-ce qu'un schéma de Lakehouse ?

Lakehouse prend en charge la création de schémas personnalisés. Les schémas vous permettent de regrouper vos tables afin d’améliorer la recherche de données, le contrôle d’accès, etc.

Créer un schéma lakehouse

Pour activer la prise en charge du schéma pour votre lakehouse, assurez-vous que la case à côté de des schémas Lakehouse est cochée lors de sa création.

Capture d’écran montrant la nouvelle boîte de dialogue lakehouse.

Note

Si vous préférez créer un lakehouse sans support de schéma, vous pouvez décocher la case.

Une fois que vous avez créé le lakehouse, vous trouverez un schéma par défaut nommé dbo sous Tables. Ce schéma est toujours là et ne peut pas être modifié ou supprimé. Pour créer un nouveau schéma, survolez Tables, sélectionnez ..., puis Nouveau schéma. Saisissez le nom de votre schéma et sélectionnez Créer. Vous voyez votre schéma répertorié sous Tables par ordre alphabétique.

Capture d’écran montrant la boîte de dialogue de nouveau schéma lakehouse.

Stocker des tables dans des schémas lakehouse

Pour stocker une table dans un schéma, vous avez besoin d’un nom de schéma. Sinon, le schéma dbo sera utilisé par défaut.

df.write.mode("Overwrite").saveAsTable("contoso.sales")

Vous pouvez utiliser Lakehouse Explorer pour organiser vos tables et glisser-déposer les noms de tables dans différents schémas.

Animation du déplacement de tables entre des schémas.

Attention

Si vous modifiez la table, vous devez également mettre à jour des éléments connexes tels que le code de notebook ou les flux de données pour vous assurer qu’ils sont alignés avec le schéma approprié.

Apporter plusieurs tables avec un raccourci de schéma

Pour référencer plusieurs tables Delta à partir d’un autre lakehouse Fabric ou d’un stockage externe, utilisez le raccourci de schéma qui affiche toutes les tables sous le schéma ou le dossier choisi. Toutes les modifications apportées aux tables dans l’emplacement source apparaissent également dans le schéma. Pour créer un raccourci de schéma, passez la souris sur Tables, sélectionnez ..., puis choisissez Nouveau raccourci de schéma. Sélectionnez ensuite un schéma sur un autre lakehouse ou un dossier avec des tables Delta sur votre stockage externe, comme Azure Data Lake Storage (ADLS) Gen2. Cela crée un schéma avec vos tables référencées.

Capture d’écran montrant le nouveau raccourci de schéma lakehouse.

Accéder aux schémas lakehouse pour la création de rapports Power BI

Pour créer votre modèle sémantique, il vous suffit de choisir les tables que vous souhaitez utiliser. Les tables peuvent se trouver dans différents schémas. Si des tables de différents schémas portent le même nom, des nombres apparaissent à côté des noms de tables dans la vue du modèle.

Schémas lakehouse dans le notebook

Lorsque vous examinez un lakehouse activé pour un schéma dans l’Explorateur d’objets notebook, vous voyez que les tables se trouvent dans des schémas. Vous pouvez faire glisser et déposer une table dans une cellule de code et obtenir un extrait de code qui fait référence au schéma où se trouve la table. Utilisez cet espace de noms pour faire référence aux tables dans votre code : « workspace.lakehouse.schema.table ». Si vous quittez l’un des éléments, l’exécuteur utilise le paramètre par défaut. Par exemple, si vous donnez uniquement un nom de table, il utilise le schéma par défaut (dbo) de lakehouse par défaut pour le notebook.

Important

Si vous souhaitez utiliser des schémas dans votre code, vérifiez que le lakehouse par défaut pour le notebook est compatible avec les schémas ou qu’il n’y a pas de lakehouse par défaut sélectionné.

Requêtes Spark SQL entre espaces de travail

Utilisez l’espace de noms « workspace.lakehouse.schema.table » pour faire référence aux tables de votre code. De cette façon, vous pouvez joindre des tables à partir de différents espaces de travail si l’utilisateur qui exécute le code est autorisé à accéder aux tables.

SELECT * 
    FROM operations.hr.hrm.employees as employees 
    INNER JOIN global.corporate.company.departments as departments
    ON employees.deptno = departments.deptno;

Référencer des lakehouses sans schéma

Lorsque vous définissez un lakehouse activé par schéma ou sans lakehouse comme valeur par défaut dans votre bloc-notes, le code Spark utilise le référencement basé sur le schéma pour les tables. Toutefois, vous pouvez toujours accéder aux lakehouses sans schémas activés dans le même code en les référençant comme « lakehouse.table ».

En outre, il est possible d'associer des tables provenant de différents types d'entrepôts de données lacustres.

SELECT * 
    FROM workspace.schemalh.schema.table as schematable 
    INNER JOIN workspace.nonschemalh.table as nonschematable
    ON schematable.id = nonschematable.id;

Pour faciliter la transition et la refactorisation du code existant vers des lakehouses prenant en charge les schémas, le nommage en quatre parties est pris en charge pour les lakehouses sans schémas. Vous pouvez référencer des tables en tant que « workspace.lakehouse.dbo.table », où « dbo » sert de nom de schéma, même s’il n'est pas encore pris en charge dans un lakehouse qui n'est pas compatible avec les schémas. Cette approche vous permet de mettre à jour votre code sans temps d’arrêt avant d’activer la prise en charge du schéma dans vos lakehouses.

API pour les schémas lakehouse

Pour créer un lakehouse avec des schémas, utilisez l’API REST Create Lakehouse - et spécifiez « enableSchemas » : true dans la requête creationPayload. Pour répertorier des tables, des schémas ou obtenir des détails de table, utilisez les API de table OneLake pour Delta.

Activation des schémas pour les lakehouses existants

Nous continuons à prendre en charge les lakehouses sans schéma et nous travaillons à atteindre une parité complète des fonctionnalités entre les deux modèles. L’interopérabilité complète dans Spark est également prise en charge, ce qui permet d’interroger et de joindre différents types de lakehouses. Bientôt, nous présenterons des outils pour aider les clients à passer de lakehouses sans schéma à des versions avec schéma, ce qui vous permet de bénéficier de fonctionnalités améliorées sans avoir à déplacer de données ou à subir un arrêt.

Limitations actuelles

Il existe encore des limitations avec les lakehouses avec schéma dans Spark qui sont actuellement déployées dans les prochains mois.

Caractéristiques/fonctionnalités non prises en charge Contournement
Vues Spark Utilisez les vues du lac Materizlized.
Lakehouse partagé Créez des raccourcis dans un lakehouse avec le rôle d’espace de travail pour partager des tables lakehouse et accédez-y via les raccourcis.
Tables ADLS externes Utilisez les raccourcis OneLake.
Liaisons privées Utilisez des lakehouses sans schéma.
Protection du trafic sortant Utilisez des lakehouses sans schéma.