5.10 A propos des liaisons d'interpréteur et des blocs-notes

Un interpréteur est un module d'extension qui vous permet d'utiliser un back-end de langage de traitement de données spécifique.

Pour les blocs-notes 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 utiliser des packages de bibliothèque tiers Python.

Pour utiliser ces interprètes, vous devez utiliser ces directives au début du paragraphe dans un bloc-notes.
  • SQL - %sql
  • PL/SQL : %script
  • Python : %python
  • R - %r
  • Markdown - %md
  • Conda - %conda
Les blocs-notes 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 moindre niveau 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 effectuées par plusieurs utilisateurs. L'interpréteur dont la priorité est faible est répertorié en haut de la liste des interpréteurs. Il s'agit donc de l'interpréteur 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, généralement 1,25 fois le nombre de CPU allouées à la base de données pluggable.
  • Elevé : fournit le plus haut niveau d'UC pour exécuter des opérations dans la base de données en parallèle, jusqu'au nombre d'UC allouées à la base de données pluggable. Il offre les meilleures performances, 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 :
  • Liaison et dissociation des interpréteurs : si vous ne liez aucun interpréteur spécifique à votre bloc-notes, le message d'erreur suivant s'affiche :
    Not supported interpreter <name of interpreter>
  • Définir et réorganiser les liaisons d'interpréteur. Vous pouvez définir et réorganiser les liaisons d'interpréteur si vous souhaitez utiliser un interpréteur spécifique pour un paragraphe spécifique dans un bloc-notes. Dans ce cas, vous devez sélectionner l'interprète spécifique pour ce paragraphe.
  • Modifier la liaison de l'interpréteur pour un paragraphe spécifique d'un bloc-notes
Vous devez noter l'ordre de liaison de l'interpréteur dans les scénarios suivants :
  • Création de bloc-notes : lorsque vous créez un bloc-notes, celui-ci hérite de l'ordre de liaison d'interpréteur initial, qui est faible (par défaut), moyen, élevé.
  • Importation de bloc-notes : lors de l'importation d'un bloc-notes, ce dernier hérite des liaisons d'interpréteur définies. Cependant, après avoir importé un bloc-notes, assurez-vous de vérifier l'ordre des liaisons d'interpréteur et de sélectionner les interpréteurs requis.
  • Export de bloc-notes : lors de l'export d'un bloc-notes, ce dernier hérite des liaisons d'interpréteur définies.
  • Création de bloc-notes à partir de modèles : lorsque vous créez un bloc-notes à partir de modèles, le bloc-notes 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 bloc-notes

L'ordre de liaison d'interpréteur défini pour un bloc-notes s'applique à tous les paragraphes de ce bloc-notes. Vous pouvez toutefois remplacer la liaison d'interpréteur pour les interpréteurs SQL, PL/SQL, R, Python et Conda pour n'importe quel paragraphe spécifique du bloc-notes.

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

Remarques :

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

    Remarques :

    Les noms des interpréteurs sont au format databasename_low, databasename_medium et databasename_high, qui est identique au nom de l'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 bloc-notes. 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 de script et SQL sont exécutés à l'aide du service de noms de base de données low, c'est-à-dire adwp_low. Si des scripts Python exécutent des requêtes sur la base de données, ces requêtes sont exécutées à l'aide du service de noms 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 dans le bloc-notes :
    • Faites défiler la page 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 saisissant %adwp_medium pour le premier paragraphe du bloc-notes et 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 de l'interpréteur. Le deuxième paragraphe de ce bloc-notes a la liaison par défaut.
  3. Validez la liaison d'interpréteur pour le premier paragraphe de ce bloc-notes en saisissant l'instruction SQL SELECT SYS_CONTEXT ('USERENV', 'SERVICE_NAME') FROM DUAL;
    L'instruction SQL renvoie les informations suivantes sur l'interpréteur avec une liaison moyenne :
    LGKFDTOOBOQK48I_CWDP_medium.adwc.oraclecloud.com
    Valider la liaison d'interpréteur d'un paragraphe après modification
    Dans cet exemple, en référence à la capture d'écran :
    • LGKFDTOOBOQK48I est le nom du locataire.
    • CWDP est le nom de base de données.
    • medium est le nom de service.
    • adwc.oraclecloud.com est le domaine

    Remarques :

    Pour le reste des paragraphes de ce bloc-notes, la liaison d'interpréteur est la liaison 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 bloc-notes. Les autres paragraphes du bloc-notes ont la liaison par défaut pour l'interpréteur.

5.10.2 Définir des liaisons d'interpréteur pour les blocs-notes

Vous devez lier un bloc-notes à un interpréteur pour extraire les données de la base de données ou de toute source de données. Un ensemble par défaut de liaisons d'interpréteur 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. Sur la page Bloc-notes, cliquez sur le bloc-notes pour lequel définir les liaisons d'interpréteur.
    Le bloc-notes s'ouvre en mode Modification.
  2. Cliquez sur l'icône représentant une roue dentée dans le panneau supérieur.
    Options de l'éditeur NB
    Le panneau Paramètres s'ouvre et répertorie les liaisons d'interpréteur pour le bloc-notes.
  3. Glissez-déplacez les interpréteurs pour réorganiser les liaisons d'interpréteur. Le premier interpréteur de la liste est celui par défaut. L'ordre des liaisons d'interpréteur est le suivant :
    • Faible (valeur par défaut) : fournit le moindre niveau de ressources pour les opérations dans la base de données, généralement l'exécution en série (non parallèle). Il prend en charge le nombre maximal d'opérations simultanées dans la base de données effectuées par plusieurs utilisateurs. L'interpréteur dont la priorité est faible est répertorié en haut de la liste des interpréteurs. Il s'agit donc de l'interpréteur par défaut.
    • Moyenne : fournit un nombre fixe de CPU pour exécuter des opérations en parallèle dans la base de données, lorsque cela est possible. Il prend en charge un nombre limité d'utilisateurs simultanés, généralement 1,25 fois le nombre de CPU allouées à la base de données pluggable.
    • Elevé : fournit le plus haut niveau d'UC pour exécuter des opérations dans la base de données en parallèle, jusqu'au nombre d'UC allouées à la base de données pluggable. Il offre les meilleures performances, 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 de liaison 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 les liaisons d'interpréteur si vous utilisez un interpréteur SQL, PL/SQL, R ou Python dans un bloc-notes donné. Vous utilisez une instruction SQL pour afficher et vérifier les informations de liaison de l'interpréteur concernant votre bloc-notes.

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

Remarques :

Pour les blocs-notes Python, ne remplacez pas la liaison d'interpréteur au niveau du paragraphe.
Pour vérifier la liaison d'interpréteur des blocs-notes, procédez comme suit :
  1. Ouvrez le bloc-notes pour lequel vous souhaitez vérifier la liaison de l'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é au format suivant : tenantname__databasename_ servicename.domain. Cliquez ici:
    • 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