Intégrer des données à partir d'Azure Data Lake Storage Gen2

Cet article explique comment intégrer des données à un nouvel espace de travail Azure Databricks à partir d’Azure Data Lake Storage Gen2. Vous allez apprendre à accéder en toute sécurité aux données sources dans un emplacement de stockage d’objets cloud qui correspond à un volume de catalogue Unity (recommandé) ou à un emplacement externe de catalogue Unity. Ensuite, vous allez apprendre à ingérer les données de manière incrémentielle dans une table managée du catalogue Unity à l’aide du chargeur automatique avec Delta Live Tables.

Remarque

Pour intégrer des données dans Databricks SQL au lieu d’un notebook, consultez Charger des données à l’aide de tables de diffusion en continu dans Databricks SQL.

Avant de commencer

Si vous n’êtes pas administrateur, cet article suppose qu’un administrateur vous a fourni les éléments suivants :

  • L’accès à un espace de travail Azure Databricks dans lequel Unity Catalog est activé. Pour plus d’informations, consultez Configurer et gérer Unity Catalog.

  • L’autorisation READ FILES sur le volume externe du catalogue Unity ou sur l’emplacement externe du catalogue Unity qui correspond à l’emplacement de stockage cloud qui contient vos données sources. Pour plus d’informations, consultez Créer un emplacement externe pour connecter le stockage cloud à Azure Databricks.

  • Chemin d’accès à vos données sources.

    Exemple de chemin d’accès au volume : /Volumes/<catalog>/<schema>/<volume>/<path>/<folder>

    Exemple de chemin d’accès à l’emplacement externe : abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>

  • Les privilèges USE SCHEMA et CREATE TABLE sur le schéma dans lequel vous souhaitez charger des données.

  • L’autorisation de création de cluster ou l’accès à une stratégie de cluster qui définit un cluster de pipeline Delta Live Tables (champ cluster_type défini sur dlt).

    Si le chemin d’accès à vos données sources est un chemin d’accès au volume, votre cluster doit exécuter Databricks Runtime 13.3 LTS ou une version ultérieure.

Important

Si vous avez des questions sur ces conditions préalables, contactez votre administrateur de compte.

Étape 1 : Créer un cluster

Pour créer un cluster, procédez comme suit :

  1. Connectez-vous à votre espace de travail Azure Databricks.
  2. Dans la barre latérale, cliquez sur Nouveau>Cluster.
  3. Dans l’interface utilisateur des clusters, spécifiez un nom unique pour votre cluster.
  4. Si le chemin d’accès à vos données sources est un chemin d’accès au volume, pour la version du runtime Databricks Runtime, sélectionnez 13.2 ou une version ultérieure.
  5. Cliquez sur Créer le cluster.

Étape 2 : créer un notebook d’exploration de données

Cette section explique comment créer un notebook d’exploration de données afin de comprendre vos données avant de créer votre pipeline de données.

  1. Dans la barre latérale, cliquez sur Nouveau>Notebook.

    Le notebook est automatiquement attaché au dernier cluster que vous avez utilisé (dans ce cas, le cluster que vous avez créé à l’étape 1 : créer un cluster).

  2. Entrez un nom au notebook.

  3. Cliquez sur le bouton de langue, puis sélectionnez Python ou SQL dans le menu déroulant. Python est sélectionné par défaut.

  4. Pour confirmer l’accès aux données sources dans ADLS Gen2, collez le code suivant dans une cellule de bloc-notes, cliquez sur menu Exécuter, puis cliquez sur Exécuter la cellule.

    SQL

    LIST '<path-to-source-data>'
    

    Python

    %fs ls '<path-to-source-data>'
    

    Remplacez <path-to-source-data> par le chemin d’accès au répertoire qui contient vos données.

    Cela affiche le contenu du répertoire qui contient le jeu de données.

  5. Pour afficher un exemple d’enregistrements afin de mieux comprendre le contenu et le format de chaque enregistrement, collez ce qui suit dans une cellule de bloc-notes, cliquez sur menu Exécuter, puis cliquez sur Exécuter la cellule.

    SQL

    SELECT * from read_files('<path-to-source-data>', format => '<file-format>') LIMIT 10
    

    Python

    spark.read.format('<file-format>').load('<path-to-source-data>').limit(10).display()
    

    Remplacez les valeurs suivantes :

    • <file-format> : format de fichier pris en charge. Consultez Options de format de fichier.
    • <path to source data> : chemin d’accès à un fichier dans le répertoire qui contient vos données.

    Cela affiche les dix premiers enregistrements du fichier spécifié.

Étape 3 : ingérer des données brutes

Pour ingérer des données brutes, procédez comme suit :

  1. Dans la barre latérale, cliquez sur Nouveau>Notebook.

    Le notebook est automatiquement attaché au dernier cluster que vous avez utilisé (dans ce cas, le cluster que vous avez créé précédemment dans cet article).

  2. Entrez un nom au notebook.

  3. Cliquez sur le bouton de langue, puis sélectionnez Python ou SQL dans le menu déroulant. Python est sélectionné par défaut.

  4. Collez le code suivant dans une cellule du bloc-notes :

    SQL

    CREATE OR REFRESH STREAMING TABLE
      <table-name>
    AS SELECT
      *
    FROM
      STREAM read_files(
        '<path-to-source-data>',
        format => '<file-format>'
      )
    

    Python

    @dlt.table(table_properties={'quality': 'bronze'})
    def <table-name>():
      return (
         spark.readStream.format('cloudFiles')
         .option('cloudFiles.format', '<file-format>')
         .load(f'{<path-to-source-data>}')
     )
    

    Remplacez les valeurs suivantes :

    • <table-name> : nom de la table qui contiendra les enregistrements ingérés.
    • <path-to-source-data> : chemin d’accès à vos données sources.
    • <file-format> : format de fichier pris en charge. Consultez Options de format de fichier.

Remarque

Delta Live Tables n’est pas conçu pour s’exécuter de manière interactive dans les cellules du notebook. L’exécution d’une cellule qui contient la syntaxe Delta Live Tables dans un notebook retourne un message indiquant si la requête est valide de manière syntactique, mais n’exécute pas la logique de requête. L’étape suivante explique comment créer un pipeline à partir du notebook d’ingestion que vous venez de créer.

Étape 4 : créer et publier un pipeline

Pour créer un pipeline et le publier dans le catalogue Unity, procédez comme suit :

  1. Cliquez sur Flux de travail dans la barre latérale, cliquez sur l’onglet Delta Live Tables, puis sur Créer un pipeline.
  2. Donnez un nom à votre pipeline.
  3. Pour Mode de pipeline, sélectionnez Déclenché.
  4. Pour le code source, sélectionnez le bloc-notes qui contient le code source de votre pipeline.
  5. Pour Destination, sélectionnez Catalogue Unity.
  6. Pour vous assurer que votre table est gérée par un catalogue Unity et que tout utilisateur ayant accès au schéma parent peut l’interroger, sélectionnez un catalogue et un schéma cible dans les listes déroulantes.
  7. Si vous n’avez pas d’autorisation de création de cluster, sélectionnez une stratégie de cluster qui prend en charge Delta Live Tables dans la liste déroulante.
  8. Pour Avancé, définissez le Canal sur Préversion.
  9. Acceptez toutes les autres valeurs par défaut, puis cliquez sur Créer.

Étape 5 : planifier le pipeline

Pour planifier le pipeline, procédez comme suit :

  1. Dans la barre latérale, cliquez sur Delta Live Tables.
  2. Cliquez sur le nom du pipeline que vous souhaitez planifier.
  3. Cliquez sur Planifier>Ajouter une planification.
  4. Dans le champ Nom de tâche, attribuez un nom à la tâche.
  5. Définissez la Planification sur Planifiée.
  6. Indiquez la période, l’heure de début et le fuseau horaire.
  7. Configurez une ou plusieurs adresses e-mail pour recevoir des alertes en cas de démarrage, de réussite ou d’échec du pipeline.
  8. Cliquez sur Créer.

Étapes suivantes