Tous les produits
Search
Centre de documentation

DataWorks:Basic notebook development

Dernière mise à jour :Aug 25, 2026

DataWorks Notebook offre un environnement interactif permettant de combiner des cellules Python, SQL et Markdown pour se connecter à des moteurs de calcul tels que MaxCompute, EMR et AnalyticDB. Utilisez-le pour le traitement des données, l'analyse exploratoire, la visualisation et le développement de modèles.

Démarrage rapide : exécutez votre premier notebook en 5 minutes

Créez un notebook, transmettez un paramètre de Python vers SQL et interrogez une table MaxCompute.

Prérequis

  • Data Studio est activé pour votre espace de travail.

  • Vous disposez d'un groupe de ressources serverless.

  • Vous possédez une instance d'environnement de développement personnel (requise pour les notebooks contenant des cellules Python).

    Si vous n'en avez pas encore créé : Créer une instance d'environnement de développement personnel .

Procédure :

  1. Créez un nœud de notebook

    1. Accédez à Data Studio. Dans la section DataStudio du Project Directory, créez un nouveau nœud de notebook.

    2. Saisissez un nom pour le notebook, par exemple hello_notebook, puis envoyez-le.

  2. Sélectionnez un environnement de développement personnel

    Dans la barre de navigation supérieure, cliquez sur Personal development environment et sélectionnez votre instance d'environnement de développement personnel dans la liste déroulante.

  3. Écrivez une cellule Python pour définir un paramètre

    Définissez une variable de ville pour la requête SQL.

    # Define a variable for the subsequent SQL query
    city = 'Beijing'
    print(f"Defined city variable city = {city}")
  4. Écrivez une cellule SQL pour interroger les données

    1. Sous la première cellule, ajoutez une nouvelle cellule SQL.

    2. Dans le coin inférieur droit de la cellule, changez le type SQL pour MaxCompute SQL.

    3. Saisissez le code SQL suivant. Il fait référence à la variable city de la cellule Python en utilisant la syntaxe ${city}.

      -- Query data using the variable defined in Python  
      SELECT '${city}' AS city;
  5. Exécutez les cellules et consultez les résultats

    1. Cliquez sur le bouton Run All dans la barre d'outils du notebook.

    2. Observez l'exécution de chaque cellule :

      • La cellule Python affiche Defined city variable city = Beijing.

      • Un tableau contenant le résultat de la requête s'affiche sous la cellule SQL.

Vous avez créé et exécuté un notebook avec interaction Python-SQL.

Concepts clés

Maîtrisez ces concepts pour garantir un comportement cohérent des notebooks entre les environnements de développement et de production.

Modes des notebooks

DataWorks Notebook fonctionne selon deux modes :

  • Mode SQL et Markdown (par défaut) : prend uniquement en charge les cellules SQL et Markdown pour l'interrogation des données et la documentation. Seul un groupe de ressources serverless est requis ; aucune instance d'environnement de développement personnel n'est nécessaire. Le noyau SQL Kernel apparaît dans le coin supérieur droit.

  • Mode complet (Python + SQL + Markdown) : prend en charge les cellules Python, SQL et Markdown pour le traitement des données, l'analyse et la visualisation. L'exécution du code Python nécessite une instance d'environnement de développement personnel. Une fois celle-ci sélectionnée, la version du noyau s'affiche dans le coin supérieur droit, comme illustré ici : image (la version est donnée à titre indicatif).

Environnement de développement vs environnement de production

Élément

Environnement de développement

Environnement de production

Environnement d'exécution

Instance d'environnement de développement personnel

Le Resource Group et l'Image spécifiés dans la configuration de scheduling

Différences principales

Les notebooks contenant des cellules Python utilisent une instance de développement dédiée, sur laquelle vous pouvez installer librement des bibliothèques Python pour le débogage.

Pour les notebooks composés uniquement de cellules SQL et Markdown, seul un groupe de ressources serverless est requis.

Les tâches s'exécutent sur le groupe de ressources défini dans la configuration de planification, qu'elles soient déclenchées périodiquement depuis Operation Center ou manuellement depuis Data Studio. L'environnement (bibliothèques, accès réseau, etc.) dépend de votre image et de votre groupe de ressources.

Garantir la cohérence

Si vous avez installé des packages Python via pip install, vous devez créer une image DataWorks à partir de l'environnement de développement personnel afin que la production dispose des mêmes dépendances. Sélectionnez cette image dans la configuration de scheduling.

Important

Connectivité réseau : un environnement de développement personnel non lié à un VPC dispose par défaut d'un accès limité au réseau public. L'accès réseau d'un notebook déployé dépend de son groupe de ressources. Liez votre environnement de développement personnel au même groupe de ressources que celui utilisé pour la planification afin d'assurer la cohérence.

Ressources de calcul et noyaux

Deux concepts déterminent l'exécution du code : la ressource de calcul et le noyau.

  • Ressource de calcul : moteur de calcul backend qui exécute et traite les tâches de données, définissant l'environnement d'exécution et la puissance de calcul.

    • Définition : instance de service de calcul indépendante et planifiable, telle qu'un projet MaxCompute ou un cluster EMR Serverless Spark.

    • Fonction : fournit la puissance de calcul effective pour les requêtes SQL, les jobs Spark et autres tâches.

    • Sélection : associez chaque tâche à une ressource de calcul spécifique.

  • Noyau : analyse et exécute le code d'une cellule, déterminant le langage de programmation utilisé.

    • Noyau Python :

      • Fonction : exécute le code Python, prenant en charge une logique complexe pour le traitement des données, l'implémentation d'algorithmes et l'orchestration des tâches.

      • Modèle d'interaction : au sein du noyau Python, vous pouvez utiliser des Magic Commands (comme %sql) ou des SDK pour soumettre une tâche de calcul (telle qu'une requête SQL) à une ressource de calcul spécifiée. Vous pouvez ensuite récupérer les résultats pour une analyse approfondie.

    • Noyau SQL :

      • Fonction : interprète et soumet directement les requêtes écrites en SQL.

      • Modèle d'interaction : le noyau SQL transfère les instructions SQL directement à la ressource de calcul backend désignée (par exemple, une session EMR Spark SQL ou MaxCompute SQL) pour exécution.

    • Noyau Markdown :

      • Fonction : rend le texte enrichi formaté en Markdown. Il n'exécute aucune logique de calcul.

Résumé de la relation :

  • Le noyau est l'interpréteur de langage frontal qui détermine « ce que vous écrivez » (Python ou SQL).

  • La ressource de calcul est le moteur d'exécution backend qui détermine « où le code s'exécute » (sur MaxCompute ou Spark).

Types de répertoires et cas d'utilisation

L'emplacement où vous créez un notebook détermine son périmètre de collaboration, ses autorisations et ses options de déploiement.

Type de répertoire

Cas d'utilisation

Collaboration et déploiement

Répertoires de l'espace de travail

Collaboration d'équipe et tâches de production planifiées. Les nœuds sont partagés au sein de l'espace de travail et suivent un flux de travail de développement, de validation et de déploiement.

Collaboration multi-utilisateurs. Les nœuds doivent être déployés en production pour s'exécuter selon une planification.

Répertoire personnel

Développement individuel et débogage. Privé, réservé à vos scripts personnels et tâches temporaires.

Visible uniquement par vous. Pour planifier un nœud, vous devez d'abord le valider dans les Répertoires de l'espace de travail, puis le déployer.

Développer et déboguer un notebook

Important
  • Data Studio n'enregistre pas automatiquement les modifications par défaut. Enregistrez manuellement votre travail pour éviter de perdre du code, ou activez l'enregistrement automatique en accédant à Setup > Files: Auto Save.

  • Si le notebook ralentit ou ne répond plus, cliquez sur le bouton Restart situé dans la barre d'outils supérieure pour redémarrer le noyau.

Gestion des cellules

  • Ajouter une cellule : survolez le bord supérieur ou inférieur d'une cellule et cliquez sur un bouton tel que + SQL, ou utilisez les boutons de la barre d'outils.

  • Changer le type de cellule : cliquez sur l'identifiant de type (par exemple, Python) dans le coin inférieur droit et sélectionnez un nouveau type, comme SQL ou Markdown. Le code est conservé, mais peut nécessiter des ajustements.

  • Déplacer une cellule : survolez la ligne verticale bleue située à gauche d'une cellule, puis faites-la glisser pour modifier son ordre.

  • Exécuter des cellules :

    • Exécuter une seule cellule : cliquez sur l'icône Run située à gauche de la cellule.

    • Exécuter toutes les cellules : cliquez sur le bouton Run All dans la barre d'outils supérieure du notebook.

Passage de paramètres

Passer des variables Python au SQL

Faites référence aux variables Python dans les cellules SQL en utilisant le format ${variable_name}.

Exemple :

  1. Cellule Python

    table_name = "dwd_user_info_d"
    limit_num = 10
  2. Cellule SQL

    SELECT * FROM ${table_name} LIMIT ${limit_num};

Transmettre les résultats SQL à Python

Lorsqu'une cellule SQL exécute une requête SELECT, le résultat est automatiquement converti en une variable DataFrame que vous pouvez utiliser dans les cellules Python suivantes.

Important

Si une cellule contient plusieurs instructions SQL, seul le résultat de la dernière instruction est enregistré dans la variable DataFrame.

  • Nom de la variable : Le nom de variable par défaut commence par df_. Vous pouvez cliquer sur le nom de la variable dans le coin inférieur gauche de la cellule SQL pour le renommer.

  • Type de variable :

    Si plusieurs types de variables sont pris en charge, vous pouvez changer de type en cliquant sur le nom du DataFrame dans le coin inférieur gauche.
    • Pour le SQL MaxCompute, les objets Pandas DataFrame et MaxCompute MaxFrame sont tous deux pris en charge.

    • Pour le SQL ADB Spark, les objets Pandas DataFrame et PySpark DataFrame sont tous deux pris en charge.

    • Pour les autres types de SQL, un objet Pandas DataFrame est généré.

Afficher la lignée des données (Bêta)

Remarque

Régions prises en charge : Chine (Hangzhou), Chine (Shanghai), Chine (Beijing), Chine (Zhangjiakou), Chine (Ulanqab), Chine (Shenzhen), Chine (Chengdu) et Chine (Hong Kong).

La fonctionnalité de lignée des données clarifie le flux de données en analysant statiquement le code Python (avec la prise en charge du framework MaxFrame) dans le notebook.

Procédure

Dans la barre d'outils supérieure du notebook, cliquez sur le bouton Lineage. Le système analyse automatiquement le code de toutes les cellules du notebook actuel et affiche le graphique de lignée des données dans l'éditeur.

La lignée des données est une fonctionnalité Bêta qui prend uniquement en charge le code Python/MaxFrame. Le panneau de lignée affiche le flux de données entre les tables source et cible sous forme de graphe orienté.

Important
  • L'analyse de la lignée des données examine le code statique de votre notebook. Elle reflète la logique des données définie dans le code, et non le flux de données réel issu de l'exécution d'une tâche. Vous pouvez afficher la lignée des données sans exécuter le code.

  • Actuellement, cette fonctionnalité est conçue pour le développement et le débogage. Le système ne signale pas automatiquement les relations de lignée analysées à Data Map.

  • Si vous modifiez le code, vous devez cliquer à nouveau sur Lineage ou Refresh pour générer un graphique de lignée mis à jour.

Scénarios pris en charge

L'analyse de la lignée des données prend actuellement uniquement en charge les scénarios suivants :

  • Lignée entre les tables MaxCompute : Lorsque vous lisez des données depuis une ou plusieurs tables MaxCompute, les traitez avec MaxFrame et écrivez le résultat dans une autre table MaxCompute, le graphique de lignée affiche les relations de traitement entre les tables.

    Par exemple, joindre une table de commandes (ods_order) avec une table de dimension de magasins (dim_shop) et écrire le résultat dans une table de commandes large (dwd_order).

  • Lignée entre les tables MaxCompute et les données externes : Lorsque votre code interagit à la fois avec des sources de données externes (telles que des jeux de données liés ou des fichiers OSS) et des tables MaxCompute, la fonctionnalité de lignée des données visualise ces relations.

    • Via un jeu de données lié : Si vous accédez à un jeu de données lié via le chemin de montage de votre environnement de développement personnel (par exemple, /mnt/data/) et échangez des données avec une table MaxCompute (lecture du jeu de données vers une table ou vice versa), le graphique de lignée affiche le flux de données complet.

    • Via un chemin OSS : Même sans jeu de données lié, si vous lisez directement depuis ou écrivez dans des fichiers en utilisant un chemin OSS dans votre code, l'analyse de la lignée des données identifie le flux de données bidirectionnel entre le chemin OSS et la table MaxCompute.

      Remarque

      Si ce chemin OSS est également enregistré en tant que jeu de données dans Data Map, le graphique de lignée l'affiche automatiquement comme un nœud de jeu de données, facilitant ainsi une meilleure gestion des actifs.

Programmation assistée par Copilot

DataWorks Copilot est un assistant de programmation IA intégré qui vous aide à générer et à expliquer le code.

Comment l'invoquer :

  • Cliquez sur l'icône Copilot image dans le coin supérieur gauche de la cellule sélectionnée.

  • Faites un clic droit à l'intérieur d'une cellule SQL et sélectionnez Copilot.

  • Utilisez le raccourci clavier Cmd+I (macOS) ou Ctrl+I (Windows).

Planifier et déployer un notebook

Pour exécuter un notebook selon une planification, configurez ses propriétés de planification et déployez-le dans l'environnement de production.

1. Configurer les paramètres de planification (planification paramétrée)

Configurez la planification paramétrée afin que les paramètres du notebook changent dynamiquement à chaque exécution. Par exemple, vous pouvez traiter une partition différente chaque jour.

  1. Marquer la cellule de paramètres : Dans la cellule Python contenant les définitions de paramètres, cliquez sur ... dans le coin supérieur droit et sélectionnez Mark Cell as Parameters. Une balise parameters marque la cellule comme point d'entrée des paramètres.

  2. Configurer les paramètres de planification :

    1. Dans le panneau de droite du notebook, cliquez sur Scheduling Settings.

    2. Dans la zone Scheduling Parameters, attribuez une valeur aux variables définies dans votre code, telles que var.

      Par exemple, vous pouvez définir la valeur du paramètre sur $[yyyymmdd]. Lors de l'exécution planifiée, elle est remplacée dynamiquement par la date réelle.

Lorsqu'une tâche est automatiquement exécutée par le système de planification, la valeur réelle du paramètre var dans le code est dynamiquement remplacée par la valeur configurée dans les paramètres de planification.

2. Configurer l'environnement d'exécution et les ressources

  1. Configurer une image : Dans la configuration de Scheduling, sélectionnez une image contenant toutes les dépendances requises par le notebook. Cela garantit une exécution réussie en production.

    Important

    Si vous avez installé des packages Python en utilisant pip install, vous devez créer une image DataWorks à partir de l'environnement de développement personnel pour garantir que la production dispose des mêmes dépendances. Sélectionnez cette image dans la configuration de scheduling.

  2. Resource Group : Sélectionnez le resource group pour la tâche. Pour les resource groups serverless, ne configurez pas plus de 16CU afin d'éviter les échecs de démarrage. Maximum par tâche : 64CU.

  3. Configurer un rôle associé : Associez un rôle RAM au nœud pour un contrôle fin des autorisations. Associer un rôle : Accéder en toute sécurité à d'autres ressources cloud.

3. Déployer le nœud

Seuls les nœuds situés dans Workspace Directories peuvent être déployés et planifiés.

  • Pour les notebooks dans Workspace Directories : Après avoir terminé la configuration, cliquez sur le bouton Publish dans la barre d'outils supérieure.

  • Pour les notebooks dans votre Personal Directory : Vous devez d'abord cliquer sur le bouton Save puis soumettre au projet avant de le déployer.

Après le déploiement, surveillez votre tâche de notebook sur la page Auto Triggered Nodes dans Operation Center.

Foire aux questions

  • Q : Pourquoi mon code peut-il accéder au réseau public pendant le développement, mais échoue-t-il lors d'une exécution planifiée ?

    R : Les environnements de développement et de production appliquent des politiques réseau différentes.

    • Environnement de développement (environnement de développement personnel) : Un environnement de développement personnel non associé à un Virtual Private Cloud (VPC) dispose par défaut d'un accès limité au réseau public, ce qui vous permet d'installer temporairement des packages ou d'appeler des API.

    • Environnement de production (tâche planifiée) : Pour des raisons de sécurité et de stabilité, les tâches planifiées s'exécutent par défaut dans un VPC et ne peuvent pas accéder directement au réseau public. La configuration réseau de la tâche est déterminée par le groupe de ressources que vous sélectionnez dans les paramètres Scheduling Settings. Si le VPC de ce groupe de ressources n'est pas configuré avec une passerelle NAT, la tâche ne peut pas accéder au réseau public.

    • Solution : Configurez votre environnement de développement personnel et votre groupe de ressources serverless pour utiliser le même VPC.

  • Q : Pourquoi mon code s'exécute-t-il correctement dans l'environnement de développement, mais ne parvient-il pas à trouver un package tiers lors d'une exécution planifiée ?

    R : Emballez toutes les dépendances dans une image personnalisée et sélectionnez-la dans la configuration des paramètres Scheduling Settings. Créer une image DataWorks à partir d'un environnement de développement personnel.

  • Q : Comment puis-je modifier la version du noyau Python ?

    R : Installez une autre version de Python dans le terminal image de votre environnement de développement personnel. Cliquez ensuite sur le bouton image situé à droite de la barre d'outils du notebook pour changer de version de noyau. L'installation de noyaux Python supplémentaires n'est pas recommandée, car les nouvelles versions de noyau peuvent ne pas inclure les dépendances requises par les cellules SQL.

Documentation connexe