Transformation avec Azure Databricks

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Dans ce tutoriel, vous allez créer un pipeline de bout en bout contenant des activités Validation, Copie des données et Notebook dans Azure Data Factory.

  • Validation garantit que le jeu de données source est prêt pour la consommation en aval avant que vous ne déclenchiez le travail de copie et d’analytique.

  • Copie des données duplique le jeu de données source dans le stockage récepteur, qui est monté en tant que DBFS dans le notebook Azure Databricks. De cette façon, le jeu de données peut directement être consommé par Spark.

  • Notebook déclenche le notebook Databricks qui transforme le jeu de données. Le jeu de données est aussi ajouté à un dossier traité ou à Azure Synapse Analytics.

Par souci de simplicité, le modèle de ce didacticiel ne crée pas de déclencheur planifié. Vous pouvez en ajouter un si nécessaire.

Diagram of the pipeline

Prérequis

  • Un compte de stockage Blob Azure avec un conteneur appelé sinkdata servant de récepteur.

    Notez le nom du compte de stockage, du conteneur et de la clé d’accès. Vous en aurez besoin plus loin dans le modèle.

  • Un espace de travail Azure Databricks.

Importer un notebook pour Transformation

Pour importer un notebook Transformation dans votre espace de travail Databricks :

  1. Connectez-vous à votre espace de travail Azure Databricks, puis sélectionnez Importer. Menu command for importing a workspace Le chemin de votre espace de travail peut être différent de celui qui est affiché, mais notez-le pour plus tard.

  2. Sélectionnez Importer depuis : URL. Dans la zone de texte, entrez https://adflabstaging1.blob.core.windows.net/share/Transformations.html.

    Selections for importing a notebook

  3. Nous allons maintenant mettre à jour le notebook Transformation avec vos informations de connexion au stockage.

    Dans le notebook importé, accédez à la commande 5 comme indiqué dans l’extrait de code suivant.

    • Remplacez <storage name> et <access key> par vos propres informations de connexion au stockage.
    • Utilisez le compte de stockage muni du conteneur sinkdata.
    # Supply storageName and accessKey values  
    storageName = "<storage name>"  
    accessKey = "<access key>"  
    
    try:  
      dbutils.fs.mount(  
        source = "wasbs://sinkdata\@"+storageName+".blob.core.windows.net/",  
        mount_point = "/mnt/Data Factorydata",  
        extra_configs = {"fs.azure.account.key."+storageName+".blob.core.windows.net": accessKey})  
    
    except Exception as e:  
      # The error message has a long stack track. This code tries to print just the relevant line indicating what failed.
    
    import re
    result = re.findall(r"\^\s\*Caused by:\s*\S+:\s\*(.*)\$", e.message, flags=re.MULTILINE)
    if result:
      print result[-1] \# Print only the relevant error message
    else:  
      print e \# Otherwise print the whole stack trace.  
    
  4. Générez un jeton d’accès Databricks pour permettre à Data Factory d’accéder à Databricks.

    1. Dans votre espace de travail Databricks, sélectionnez votre icône de profil utilisateur dans le coin supérieur droit.
    2. Sélectionner Paramètres utilisateur. Menu command for user settings
    3. Sélectionnez Générer un nouveau jeton sous l’onglet Jetons d’accès.
    4. Sélectionnez Générer.

    "Generate" button

    Enregistrez le jeton d’accès pour une utilisation ultérieure lors de la création d’un service lié à Databricks. Le jeton d’accès ressemble à dapi32db32cbb4w6eee18b7d87e45exxxxxx.

Comment utiliser ce modèle

  1. Accédez au modèle Transformation avec Azure Databricks et créez des services liés pour les connexions suivantes.

    Connections setting

    • Connexion aux blobs sources : pour accéder aux données sources.

      Pour cet exemple, vous pouvez utiliser le stockage de blobs public contenant les fichiers sources. Reportez-vous à la capture d’écran suivante pour la configuration. Utilisez l’URL SAS suivante pour vous connecter au stockage source (accès en lecture seule) :

      https://storagewithdata.blob.core.windows.net/data?sv=2018-03-28&si=read%20and%20list&sr=c&sig=PuyyS6%2FKdB2JxcZN0kPlmHSBlD8uIKyzhBWmWzznkBw%3D

      Selections for authentication method and SAS URL

    • Connexion aux blobs de destination : pour stocker les données copiées.

      Dans la fenêtre Nouveau service lié, sélectionnez votre blob de stockage du récepteur.

      Sink storage blob as a new linked service

    • Azure Databricks : pour se connecter au cluster Databricks.

      Créez un service lié à Databricks à l’aide de la clé d’accès que vous avez générée précédemment. Vous pouvez choisir de sélectionner un cluster interactif si vous en avez un. Cet exemple utilise l’option Nouveau cluster de travail.

      Selections for connecting to the cluster

  2. Sélectionnez Utiliser ce modèle. Vous verrez la création d’un pipeline.

    Create a pipeline

Présentation et configuration du pipeline

Dans le nouveau pipeline, la plupart des paramètres sont configurés automatiquement avec les valeurs par défaut. Passez en revue les configurations de votre pipeline et apportez les modifications nécessaires.

  1. Dans l’indicateur de disponibilité de l’activité Validation, vérifiez que la valeur Jeu de données source est définie sur SourceAvailabilityDataset que vous avez créée précédemment.

    Source dataset value

  2. Dans le transfert fichier à blob de l’activité Copie des données, vérifiez les onglets Source et Récepteur. Modifiez les paramètres si nécessaire.

    • OngletSource Source tab

    • Onglet récepteur Sink tab

  3. Dans Transformation de l’activité Notebook, passez en revue et mettez à jour les chemins d’accès et les paramètres selon vos besoins.

    Le service lié Databricks doit être prérempli avec la valeur d’une étape précédente, comme indiqué dans : Populated value for the Databricks linked service

    Pour vérifier les paramètres de Notebook :

    1. Sélectionnez l’onglet Paramètres. Pour Chemin d’accès du notebook, vérifiez que le chemin d’accès par défaut est correct. Vous devrez peut-être parcourir et sélectionner le chemin d’accès approprié du notebook.

      Notebook path

    2. Développez le sélecteur Paramètres de base et vérifiez que les paramètres correspondent à ce qui est illustré dans la capture d’écran suivante. Ces paramètres sont transmis au notebook Databricks à partir de Data Factory.

      Base parameters

  4. Vérifiez que les paramètres du pipeline correspondent à ce qui est illustré dans la capture d’écran suivante : Pipeline parameters

  5. Connectez-vous à vos jeux de données.

    Notes

    Dans les jeux de données ci-dessous, le chemin d’accès du fichier a été automatiquement spécifié dans le modèle. Si des modifications sont nécessaires, veillez à spécifier le chemin d’accès pour conteneur et répertoire en cas d’erreur de connexion.

    • SourceAvailabilityDataset : pour vérifier si les données sources sont disponibles.

      Selections for linked service and file path for SourceAvailabilityDataset

    • SourceFilesDataset : pour accéder aux données sources.

      Selections for linked service and file path for SourceFilesDataset

    • DestinationFilesDataset : pour copier les données dans l’emplacement de destination du récepteur. Utilisez les valeurs suivantes :

      • Service lié - sinkBlob_LS, créé au cours d’une étape précédente.

      • Chemin d’accès du fichier - sinkdata/staged_sink.

        Selections for linked service and file path for DestinationFilesDataset

  6. Sélectionnez Déboguer pour exécuter le pipeline. Vous trouverez le lien vers les journaux Databricks permettant d’obtenir des journaux Spark plus détaillés.

    Link to Databricks logs from output

    Vous pouvez également vérifier le fichier de données à l’aide d’Explorateur Stockage Azure.

    Notes

    Pour la corrélation avec les exécutions de pipeline Data Factory, cet exemple ajoute l’ID d’exécution de pipeline de la fabrique de données au dossier de sortie. Cela permet le suivi des fichiers générés par chaque exécution. Appended pipeline run ID