5.10 À propos des liaisons d'interpréteur et des carnets

Un interpréteur est un plugiciel qui vous permet d'utiliser un serveur dorsal de langage de traitement de données spécifique.

Pour les carnets Zeppelin dans l'interface utilisateur d'Oracle Machine Learning, vous utilisez les interpréteurs SQL, PL/SQL, Python et R dans un groupe d'interpréteurs Oracle Database, ainsi que l'interpréteur Markdown pour la syntaxe de formatage de texte brut afin qu'il puisse être converti en HTML. Vous utilisez l'interpréteur Conda pour vous connecter à l'environnement Conda et travailler avec des ensembles de bibliothèques de tierce partie Python.

Pour utiliser ces interprètes, vous devez utiliser ces directives au début du paragraphe dans un carnet.
  • SQL - %sql
  • PL/SQL - %script
  • Python - %python
  • R - %r
  • Markdown - %md
  • Conda - %conda
Les carnets contiennent une liste interne de liaisons qui définissent l'ordre des liaisons d'interpréteur dans un groupe d'interpréteurs. L'ordre par défaut des liaisons d'interpréteur dans le groupe d'interpréteurs Oracle Database est le suivant :
  • Faible - Fournit le niveau minimal de ressources pour les opérations dans la base de données, généralement une exécution série (non parallèle). Il prend en charge le nombre maximal d'opérations simultanées dans la base de données par plusieurs utilisateurs. L'interpréteur dont la priorité est faible est répertorié en haut de la liste des interpréteurs et est donc la valeur par défaut.
  • Moyen - Fournit un nombre fixe d'UC pour exécuter des opérations dans la base de données en parallèle, si possible. Il prend en charge un nombre limité d'utilisateurs simultanés, soit 1,25 fois le nombre d'UC affectées à la base de données enfichable.
  • Élevé - Fournit le niveau le plus élevé d'UC pour exécuter des opérations dans la base de données en parallèle, jusqu'au nombre d'UC affectées à la base de données enfichable. Il offre les performances les plus élevées, mais prend en charge le nombre minimal d'opérations simultanées dans la base de données, généralement 3.
En ce qui concerne les liaisons d'interpréteur, vous pouvez effectuer les tâches suivantes :
  • Lier et annuler la liaison des interpréteurs : Si vous ne liez aucun interpréteur spécifique à votre carnet, vous obtenez le message d'erreur suivant :
    Not supported interpreter <name of interpreter>
  • Définissez et réorganisez les liaisons d'interpréteur. Vous pouvez définir et réorganiser des liaisons d'interpréteur si vous souhaitez utiliser un interpréteur spécifique pour un paragraphe spécifique d'un carnet. Dans ce cas, vous devez sélectionner l'interpréteur spécifique pour ce paragraphe.
  • Modifier la liaison d'interpréteur pour un paragraphe spécifique d'un carnet
Vous devez noter l'ordre de liaison de l'interpréteur dans les scénarios suivants :
  • Création d'un carnet - Lorsque vous créez un carnet, celui-ci hérite de l'ordre de liaison initial de l'interpréteur, qui est faible (par défaut), moyen et élevé.
  • Importation de carnet - Lors de l'importation d'un carnet, celui-ci hérite des liaisons d'interpréteur définies. Toutefois, après avoir importé un carnet, assurez-vous de vérifier l'ordre des liaisons d'interpréteur et que les interpréteurs requis sont sélectionnés.
  • Exportation de carnets - Lors de l'exportation d'un carnet, le carnet hérite des liaisons d'interpréteur définies.
  • Création de carnet à partir de modèles - Lorsque vous créez un carnet à partir de modèles, le carnet hérite de l'ordre par défaut des liaisons d'interpréteur.

5.10.1 Modifier les liaisons d'interpréteur pour des paragraphes spécifiques dans un carnet

L'ordre de liaison de l'interpréteur défini pour un carnet s'applique à tous les paragraphes de ce carnet. Toutefois, vous pouvez remplacer la liaison d'interpréteur pour les interpréteurs SQL, PL/SQL, R, Python et Conda pour tout paragraphe spécifique du carnet.

Pour utiliser ces interprètes, vous devez utiliser ces directives au début du paragraphe dans un carnet.
  • SQL - %sql
  • PL/SQL - %script
  • Python - %python
  • R - %r
  • Markdown - %md
  • Conda - %conda

Note :

Ne remplacez pas les liaisons d'interpréteur de paragraphes Python car elles ne partageront pas le même moteur dorsal Python.
Pour modifier la liaison d'interpréteur pour un paragraphe spécifique d'un carnet :
  1. Ouvrez le carnet et cliquez sur l'icône d'engrenage pour afficher les liaisons de l'interpréteur et leur ordre.
    Options de l'éditeur de carnet
    Dans cet exemple, les trois interpréteurs SQL sont liés au carnet, et l'interpréteur avec l'allocation de ressources low adwpcwdp_low %sql est la valeur par défaut, car il s'agit du premier interpréteur de la liste. L'interpréteur Markdown n'est pas lié au carnet

    Note :

    Les noms des interpréteurs sont dans le format databasename_low, databasename_medium et databasename_high, qui est identique au nom d'ordre de liaison de l'interpréteur.
    Dans cet exemple, les noms d'interpréteur sont les suivants :
    • adwp_low % sql(default),%script, %python, %r, %conda
    • adwp_medium % sql(default),%script, %python, %r, %conda
    • adwp_high % sql(default), %script,%python, %r, %conda
    • md %md(default)

    Figure 5-9 Liaisons d'interpréteur

    Liaisons d'interpréteur
    Le premier interpréteur Python de la liste est utilisé pour exécuter tous les paragraphes Python dans le carnet. Par exemple, si la liaison low est sélectionnée, tous les paragraphes Python sont exécutés à l'aide de l'interpréteur Python de liaison low. Tous les autres paragraphes avec des liaisons d'interpréteur SQL et de script sont exécutés à l'aide du service de nom de base de données low, c'est-à-dire adwp_low. Si des scripts Python exécutent des interrogations sur la base de données, ces interrogations sont exécutées à l'aide du service de nom de base de données low, c'est-à-dire adwp_low dans cet exemple.
  2. Pour modifier l'ordre des liaisons d'interpréteur pour un paragraphe particulier du carnet :
    • Faites défiler vers le bas jusqu'au paragraphe pour lequel vous souhaitez modifier l'interpréteur
    • Appeler l'interpréteur avec la liaison spécifique
    • Exécuter le paragraphe
    Par exemple, appelez l'interpréteur avec une allocation de ressources moyenne en entrant %adwp_medium pour le premier paragraphe du carnet, puis exécutez le paragraphe. Dans cet exemple, adwp est le nom de la base de données.
    Ordre de liaison de l'interpréteur modifié
    Notez que le premier paragraphe s'exécute sans erreur après avoir modifié la liaison d'interpréteur. Le deuxième paragraphe de ce carnet a la liaison par défaut.
  3. Validez la liaison d'interpréteur pour le premier paragraphe de ce carnet en entrant l'énoncé SQL SELECT SYS_CONTEXT ('USERENV', 'SERVICE_NAME') FROM DUAL;
    L'instruction SQL renvoie les informations suivantes sur l'interpréteur avec liaison medium :
    LGKFDTOOBOQK48I_CWDP_medium.adwc.oraclecloud.com
    Valider la liaison d'interpréteur d'un paragraphe après la modification
    Dans cet exemple, en référence à la capture d'écran :
    • LGKFDTOOBOQK48I est le nom du locataire
    • CWDP est le nom de la base de données
    • medium est le nom du service
    • adwc.oraclecloud.com est le domaine

    Note :

    Pour le reste des paragraphes de ce carnet, la liaison d'interpréteur est la valeur par défaut. Vous pouvez valider les liaisons pour chaque paragraphe en exécutant l'étape 3.
    Cette opération permet de modifier la liaison d'interpréteur pour un paragraphe particulier du carnet. Les autres paragraphes du carnet ont la liaison par défaut pour l'interpréteur.

5.10.2 Définir les liaisons d'interpréteur pour les carnets

Vous devez lier un carnet à un interpréteur pour extraire des données de la base de données ou de toute source de données. Un jeu de liaisons d'interpréteur par défaut est disponible.

Vous pouvez définir l'ordre des liaisons d'interpréteur si plusieurs ensembles sont disponibles. Pour définir l'ordre des liaisons d'interpréteur :
  1. Dans la page Carnet, cliquez sur le carnet pour lequel vous voulez définir les liaisons d'interpréteur.
    Le carnet s'ouvre en mode de modification.
  2. Cliquez sur l'icône d'engrenage dans le panneau supérieur.
    Options de l'éditeur NB
    Le volet Paramètres s'ouvre et affiche la liste des liaisons d'interpréteur pour le carnet.
  3. Glissez-déposez les interpréteurs pour réorganiser les liaisons d'interpréteur. Le premier interpréteur de la liste est la valeur par défaut. L'ordre des liaisons d'interpréteur est le suivant :
    • Faible (par défaut) : Fournit le niveau de ressources le moins élevé pour les opérations dans la base de données, généralement une exécution série (non parallèle). Il prend en charge le nombre maximal d'opérations simultanées dans la base de données par plusieurs utilisateurs. L'interpréteur dont la priorité est faible est répertorié en haut de la liste des interpréteurs et est donc la valeur par défaut.
    • Moyen : Fournit un nombre fixe de CPU pour exécuter des opérations dans la base de données en parallèle, si possible. Il prend en charge un nombre limité d'utilisateurs simultanés, soit 1,25 fois le nombre d'UC affectées à la base de données enfichable.
    • Élevé : Fournit le niveau le plus élevé de CPU pour exécuter des opérations dans la base de données en parallèle, jusqu'au nombre de CPU alloués à la base de données enfichable. Il offre les performances les plus élevées, mais prend en charge le nombre minimal d'opérations simultanées dans la base de données, généralement 3.
    Il s'agit de l'ordre initial des interprètes. Vous pouvez modifier l'ordre des liaisons d'interpréteur.
  4. Cliquez sur Enregistrer.

5.10.3 Vérifier les liaisons d'interpréteur

Après avoir défini et modifié l'ordre des liaisons d'interpréteur, vous pouvez vérifier si vous utilisez un interpréteur SQL, PL/SQL, R ou Python dans un carnet donné. Vous utilisez un énoncé SQL pour afficher et vérifier les informations de liaison de l'interpréteur concernant votre carnet.

Pour les carnets Python, la liaison d'interpréteur est utilisée pour tous les paragraphes python.

Note :

Pour les carnets Python, ne remplacez pas la liaison d'interpréteur au niveau du paragraphe.
Pour vérifier la liaison d'interpréteur des carnets :
  1. Ouvrez le carnet pour lequel vous voulez vérifier la liaison d'interpréteur.
  2. Exécutez l'instruction SQL suivante :
    %sql
    SELECT SYS_CONTEXT ('USERENV', 'SERVICE_NAME') FROM DUAL;

    L'instruction SQL fournit le nom du service auquel une session donnée est connectée.

  3. Cliquez sur Exécuter.
    L'instruction SQL renvoie les informations relatives à l'interpréteur, à l'ordre de la liaison et au nom du service. Le résultat est affiché dans le format suivant : tenantname__databasename_ servicename.domain. Here :
    • HDY7RUSKGDMPHN2 est le nom du locataire
    • PDB1 est le nom de la base de données
    • low est l'ordre de liaison de l'interpréteur
    • adwc.oraclecloud.com est le nom de domaine
    Validation de liaison d'interpréteur