Fabric: requêter le lakehouse depuis le warehouse en transact SQL
Par Decidim Eurl
L’architecture data lake servant de source à un data warehouse est aujourd’hui un classique de la Business Intelligence. Transact SQL (TSQL) reste un outil de transformation de données (ETL) efficace et souvent préféré à d’autres véritables ETL (comme SSIS data flow, ADF data flows ou encore Power Query alias data flow gen2) car SQL est robuste, quasi universellement connu et immortel (peut on imaginer un monde sans TSQL?).
Fabric apporte une petite fonctionnalité qui vous simplifie la vie: le warehouse de Fabric supporte des requêtes en lecture sur les tables du lakehouse.
Dans mon workspace ou espace de travail, le lakehouse ’lh_Sales’ contient une table DimCustomer.
Dans le même workspace ou espace de travail, le warehouse ‘dw_Sales’ autorise l’execution de la requête TSQL suivante:
select top(10) * from lh_Sales.dbo.DimDate
je peux donc créer une vue sur la table du lakehouse au sein de mon warehouse, ce qui facilite un chargement ETL du data warehouse par une procédure stockée.
CREATE SCHEMA lh_Sales
CREATE VIEW lh_Sales.vw_DimDate AS select * from lh_Sales.dbo.DimDate
ou en image:
vice versa, la boucle est bouclée
A noter, l’inverse est également possible même si les cas d’usage me paraissent incertains. La création de dépendances dans le sens inverse risque d’aboutir à un plat de spaghettis… Dans le lakehouse SQL EndPoint, je peux en utilisant la même notation SQL en 3 parties base.schema.objet, lire le warehouse.
select top(1) * from dw_Sales.INFORMATION_SCHEMA.VIEWS
A ce sujet, le lakehouse SQL endpoint permet d’ajouter un ou plusieurs warehouse du même espace de travail dans l’explorer:
Ces liens sont disponibles sans effort, sans créer ni de raccourcis ni de clone!
et les lakehouses en dehors de l’espace de travail, voire ailleurs?
Fabric permet la création d’un raccourci ou shortcut dans le lakehouse pour rendre visible une table située dans un lakehouse hors de l’espace de travail ou un un warehouse hors de l’espace de travail* ou encore d’un dataset situé à l’extérieur de votre OneLake - sont supportées aujourd’hui les azure storage account gen2 et l’Amazon S3. Le raccourci est ensuite vu comme une table du lakehouse. Une requête du warehouse peut lire cette table comme une vraie table.
pour créer un raccourci
- ouvrir le lakehouse, et non pas le SQL Endpoint associé
- cliquer sur Get data puis New shorcut
- choisir le type de source, par exemple Microsoft OneLake pour un lakehouse en dehors de l’espace de travail
- utiliser l’explorer pour atteindre la table cible
- cliquer sur Create pour créer le raccourci vers je jeu de données cible.
Un raccourci vers le jeu de données cible est alors créer dans le lakehouse avec le même nom que la table source. Un SELECT dans un warehouse du même espace de travail peut lire ce jeu de données.