Partager via


Utiliser un pipeline pour accéder à un lakehouse dans un espace de travail restreint entrant à partir d’un espace de travail ouvert

Vous pouvez utiliser un pipeline pour établir une communication inter-espaces de travail entre un espace de travail ouvert et un espace de travail qui restreint l’accès public entrant. Par exemple, vous pouvez créer un pipeline dans un espace de travail ouvert pour accéder à un lakehouse dans un espace de travail restreint entrant. Cette configuration permet au notebook de l’Espace de travail 1 d’accéder en toute sécurité au lakehouse et de lire les tables Delta Lake situées dans l’Espace de travail 2, sans les exposer à un accès public.

Étape 1 : Créer les espaces de travail

Vous avez besoin d’un espace de travail ouvert et d’un espace de travail restreint. Cet article fait référence aux espaces de travail comme suit :

  • L’espace de travail source est l’espace de travail ouvert sans restriction d’accès public. C’est là que vous créez un pipeline.
  • L’espace de travail cible est l’espace de travail restreint avec une restriction d’accès public entrante. C'est là que vous créez le Lakehouse.

Pour créer les espaces de travail, procédez comme suit :

  1. Créez deux espaces de travail dans Microsoft Fabric. Pour plus d’informations, consultez Créer un espace de travail.

  2. Dans les paramètres du locataire, activez la protection d’accès entrant au niveau de l’espace de travail.

  3. Pour l’espace de travail cible, configurez les liens privés au niveau de l’espace de travail.

Étape 2 : Créer un lakehouse dans l’espace de travail restreint

Créez un lakehouse dans l’espace de travail cible (restreint) à l’aide de l’API Create Lakehouse suivante :

POST https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com/workspaces/{workspaceID}/lakehouses

Capture d’écran montrant la création d’un lakehouse.

Étape 3 : Créer un point de terminaison privé managé

Créez un point de terminaison privé managé dans l’espace de travail source (open). Utilisez le paramètre Espace de travail dans le portail ou l’API suivante :

POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/managedPrivateEndpoints

Dans ce code, {workspaceFQDN} c’est {workspaceID}.z{xy}.w.api.fabric.microsoft.com.

Par exemple : POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpoints.

Le targetPrivateLinkResourceId paramètre est l’ID de ressource du service Azure Private Link dans l’espace de travail restreint. Pour créer un point de terminaison privé managé dans l’espace de travail cible, vous avez besoin de cet ID de ressource.

Capture d’écran montrant l’API pour la création d’un point de terminaison privé managé.

Vous trouverez cet ID de ressource dans Azure en affichant le JSON de ressource de l’espace de travail. Vérifiez que l’ID d’espace de travail dans le JSON correspond à l’espace de travail cible prévu.

Capture d’écran montrant comment obtenir l’ID de ressource Private Link dans un fichier JSON de ressource.

Le propriétaire du service Private Link pour Workspace 2 doit approuver la demande d'un point de terminaison privé managé dans le centre de liaison privée Azure>En attente de connexions.

Étape 4 : Charger une table Delta Lake vers le lakehouse

Utilisez l’Explorateur Stockage Azure pour charger le dossier de votre table Delta Lake dans le stockage managé de Lakehouse restreint :

  1. Accédez à l’Explorateur Stockage, sélectionnez l’icône de connexion dans le menu de gauche, puis sélectionnez conteneur ou répertoire ADLS Gen2.

  2. Connectez-vous à l’aide d’OAuth.

  3. Entrez un nom d'affichage pour le stockage, puis entrez l’URL du conteneur de blob au format suivant :

    https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com/{workspaceID}/{lakehouseID}

    Dans ce code, workspaceID correspond à l’ID d’espace de travail sans tirets et {xy} est les deux premiers caractères de l’ID d’espace de travail.

    Capture d’écran montrant l’entrée des informations de connexion.

  4. Sélectionnez Connecter. Le stockage doit maintenant apparaître dans l’affichage Explorateur.

  5. Sous le dossier Tables , chargez la table Delta Lake que vous souhaitez utiliser. Cet exemple utilise la table customers .

    Capture d’écran montrant l’option de chargement d’un dossier.

Étape 5 : Créer un bloc-notes dans l’espace de travail restreint

Créez un bloc-notes qui lit à partir de la table et écrit dans une nouvelle table. Pour ce faire, créez un bloc-notes dans un espace de travail ouvert à l’aide de l’interface utilisateur :

  1. Dans l’espace de travail ouvert, créez un lakehouse avec la même table et un bloc-notes similaire à l’aide de l’interface utilisateur.

    Capture d’écran montrant la page pour le chargement d’un fichier dans une nouvelle table.

  2. Connectez le lakehouse au cahier et exécutez le script pour créer une nouvelle table :

    df = spark("SELECT * FROM Lakehouse_Open.customers")
    display(df)
    df.write.mode("overwrite").saveAsTable("Lakehouse_Open.customersnew")
    

    Capture d’écran montrant l’exécution du script pour la création d’une table.

  3. Enregistrez le bloc-notes.

  4. Accédez à la définition du notebook via l’API et obtenez le résultat de la localisation :

    Get Notebook Definition API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks/getDefinition
    
    Get location API: GET {location}/result
    
  5. Convertissez notebook-content.py de Base64 en JSON, copiez le contenu converti, puis re-convertissez le contenu de JSON en Base64 après avoir mis à jour les valeurs suivantes avec celles provenant du lakehouse restreint.

  6. Créez un notebook avec la définition à l’aide du corps de la requête mis à jour :

    Create Notebook API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks
    
    Get location API: GET {location}/result
    

Étape 6 : Créer un pipeline dans l’espace de travail ouvert

  1. Dans l’espace de travail ouvert, créez un pipeline à l’aide du portail ou de l’API Fabric.

  2. Ajoutez une activité de carnet.

  3. Dans Paramètres, créez une connexion.

    Capture d’écran montrant le volet de connexion d’une source de données.

  4. Sélectionnez l’espace de travail restreint.

    Capture d’écran montrant la sélection d’un espace de travail restreint.

  5. Ajoutez l’ID de notebook en tant que paramètre :

    @pipeline().parameters.notebookId

  6. Dans les paramètres du pipeline, entrez l’ID de notebook réel de l’espace de travail restreint.

    Capture d’écran montrant où ajouter un ID de bloc-notes.

  7. Enregistrez le pipeline et copiez l’ID du pipeline.

Étape 7 : Exécuter le pipeline via l’API

  1. Déclenchez le pipeline à l’aide de l’API. Par exemple, utilisez Bruno.

    Voici le format du point de terminaison d’API pour l’exécution du pipeline :

    https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{openWsId}/items/{pipelineId}/jobs/instances?jobType=Pipeline`
    
    Get location API: GET {location}
    
  2. Attendez que l’état d’exécution se termine. Vous pouvez vérifier l’état sur la page Surveiller dans le portail Fabric.

    Une capture d'écran de la page Monitor.

Étape 8 : Vérifier la création d’une table

  1. Ouvrez l'Explorateur de Stockage dans le lakehouse de l'espace de travail restreint.

  2. Vérifiez que la nouvelle table a été créée.

  3. Utilisez l’API List Tables pour obtenir les tables lakehouse :

    List Tables API: GET https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/tables