Strategy ONE

Créer un tableau de bord de transaction compatible Python

Démarrage dans MicroStrategy ONE (Mars 2024), vous pouvez créer des tableaux de bord de transactions activés par Python dans les environnements MicroStrategy Cloud et sur la plateforme MicroStrategy Cloud for Government. Pour créer et exécuter un tableau de bord de transactions compatible Python, vous devez :

  • Assurez-vous que l'environnement prend en charge l'utilisation de l'exécuteur Python

    Cette fonctionnalité est prise en charge sur la plateforme Microstrategy Cloud Environment. Contact Support de stratégie pour activer cette fonction.

  • Choisissez une source de données avec un point de terminaison public pour retourner les modifications de données

  • Mettre à jour les métadonnées vers la version la plus récente

  • Créer un tableau de bord activé par transaction

  • Créez un runtime personnalisé et téléchargez tous les packages Python nécessaires dans le cadre de ce runtime

  • Créez un script Python avec les actions de manipulation de données requises

  • Configurer le tableau de bord avec le script associé

Commencer par création d'un tableau de bord activé par transaction puis suivez les étapes ci-dessous.

Créer un runtime personnalisé

Le privilège Gérer les runtimes est requis. Les utilisateurs disposant de ce privilège peuvent télécharger des packages tiers. Par conséquent, seuls les analystes approuvés doivent disposer de ce privilège.

Voir Créer et modifier les runtimes Python pour plus d'informations.

Les utilisateurs disposant du privilège Gérer le runtime peuvent afficher et gérer les runtimes existants et en créer de nouveaux. Tous les environnements ont un runtime par défaut. Lors de la création d'un runtime, les utilisateurs peuvent modifier son nom, sa description, les adresses auxquelles il peut se connecter, les packages qui y sont installés et choisir une taille pour l'exécution de scripts. La taille de l'instance runtime détermine les ressources (CPU et mémoire) disponibles pour chaque exécution de script associée à ce runtime.

  1. Ouvrir Workstation et se connecter à un environnement.
  2. Dans le volet de navigation, cliquez sur Moniteurs.

    Tous les environnements ont un nom de runtime par défaut de (Par défaut) Strategy.

    Les runtimes par défaut incluent les dernières versions des packages Python et mstrio, ainsi que la taille de l'instance par défaut et la configuration d'accès au réseau par défaut. Les utilisateurs peuvent utiliser le package mstrio pour accéder Strategy données en utilisant le runtime par défaut.

    Les utilisateurs ne peuvent pas modifier la configuration du runtime par défaut. Si un utilisateur souhaite personnaliser la taille de l'instance, l'accès au réseau ou la configuration du package, il doit créer un nouveau runtime.

  3. Dans le volet gauche, cliquez sur à côté de Runtime.

  4. Saisissez un Nom du runtime et Description. Les runtimes récemment créés utilisent le dernier Version Python. Pour les runtimes existants, vous pouvez mettre à niveau vers la dernière version de Python. La valeur par défaut Taille de l'instance runtime est 0,2 vCPU 0,5 Go de mémoire.

  5. Dans Accès réseau, entrez le réseau avec l'accès autorisé à partir du runtime Python. Le format doit suivre Routage inter-domaines sans classe (CIDR) format, par exemple 141.193.213.21/32.

  6. Cliquez sur en bas à gauche pour ajouter un nouveau package à installer dans le runtime Python. Si la version du package n'est pas indiquée, la version la plus récente est installée. Utiliser le format : [nom du package][espace blanc][version du package].

    Exemples :

    • requêtes 2.28.1

    • requêtes

  7. Cliquez sur Ajouter.

  8. Les packages prennent généralement en charge la connectivité à la source de données pour retourner les modifications de données, prendre en charge les manipulations avec Strategy API ou connectez-vous à d'autres applications telles que Microsoft Teams. Cliquez sur le lien Pypi pour trouver le nom exact du package et la version à télécharger.

  9. Cliquez sur Ajouter pour enregistrer le runtime et attendre la fin de l'installation. Actualisez la page pour vérifier l'état.

Quelques conseils utiles :

  • Assurez-vous d'appuyer sur Entrée après avoir saisi chaque champ (accès réseau, nom du package et version) avant de cliquer Ajouter ou en OK pour confirmer la modification.

  • Vous pouvez ajouter plusieurs packages à un runtime.

  • Après la migration de l'objet d'un environnement à un autre, rajoutez des packages dans les nouveaux environnements pour préparer le runtime. Le runtime ne fonctionne pas sans cette étape supplémentaire.

  • Par défaut, Tout le monde a Affichage ACL pour un runtime.

Créer un script Python personnalisé

Configurez des utilisateurs avec les privilèges suivants :

  • Utiliser les scripts Python

  • Certifier les scripts Python

  • Les ACL suivantes sont recommandées :

    • Les scripts lus nécessitent une ACL de lecture sur les scripts.

    • Les scripts de mise à jour nécessitent une ACL d'écriture sur les scripts.

    • Les scripts d'exécution nécessitent une ACL d'exécution sur les scripts et une ACL d'exécution sur les runtimes.

  1. Ouvrir Workstation et se connecter à un environnement.
  2. Dans le volet de navigation, cliquez sur à côté de Scripts.

  3. Ouvrez les paramètres de script pour modifier le type de script sur Transaction et sélectionnez le runtime Python approprié.

  4. Commencez à créer un script en sélectionnant un modèle dans la galerie et en le modifiant, ou en partant de zéro.

  5. Les variables dans un script sont généralement mappées vers des colonnes de la grille du tableau de bord. Lors de la définition des variables, le Colonne Le paramètre est activé par défaut. Désactivez cette option pour les variables non transactionnelles, par exemple si la variable est destinée à un usage interne, par exemple pour la connexion à une source de données.

  6. Pour le mot de passe de connexion à la source de données, sélectionnez la variable de type non transactionnel, Secret.

  7. Envisagez d'inclure une variable d'invite système pour enregistrer les connexions des utilisateurs et voir qui apporte des modifications aux données.

  8. Les types d'actions par défaut sont la sélection, l'insertion et la mise à jour. Pour créer de nouveaux types d'actions en plus de ceux-ci, par exemple pour combiner la sélection et la mise à jour, sélectionnez Type de transaction dans Type de variable. Dans un script de transaction Python unique, une seule variable peut être définie comme Type de transaction.

  9. Pour une variable qui est mappée à la clé primaire d'une table dans une source de données de mise à jour, vous ne souhaitez pas que le consommateur modifie la clé primaire. Dans cette situation, vous devez désactiver Modifiable paramètre.

  10. Pour les colonnes de la source de données qui n'autorisent pas les valeurs NULL, marquez cette variable comme requise en activant Obligatoire paramètre.

  11. Si une variable n'est pas Obligatoire, les auteurs peuvent choisir si une colonne peut être vide ou non, selon ce que la base de données autorise.

  12. Pour les colonnes que vous souhaitez que les utilisateurs modifient, activez l'option Modifiable paramètre.

  13. Seuls les scripts de transaction Python certifiés peuvent être utilisés pour les opérations de transaction. Vous devez donc certifier le script une fois qu'il est prêt pour l'utilisation en production. Le groupe d'utilisateurs qui consommeront les grilles transactionnelles Python doit avoir l'ACL d'affichage pour ce script.

Meilleures pratiques

  • Apprenez à partir d'un exemple de modèle de code.

  • Pour les sources de données qui prennent en charge les transactions atomiques, choisissez le package qui prend en charge la transaction atomique lors de la préparation du runtime. Dans le script Python, ajoutez des sections pour gérer la transaction atomique.

  • Utilisez des requêtes paramétrées, le cas échéant. Les requêtes exécutées de cette manière ne sont pas sensibles aux attaques par injection, car la requête et les paramètres sont envoyés pour exécution séparément.

  • Étant donné que le créateur du script de transaction Python et l'auteur du tableau de bord de transaction peuvent être différents, assurez-vous de la parité entre le script et le tableau de bord. Cela inclut la définition de la table de source de données à mettre à jour, le mappage des relations entre les variables définies dans le script Python et l'objet de la grille transactionnelle du tableau de bord, l'objet modifiable, etc.

  • Une description détaillée de ce que le script Python prend en charge (mettre à jour les données, insérer de nouvelles données, sélectionner les lignes à supprimer ou à insérer dans une table différente, envoyer des messages Microsoft Teams, envoyer des e-mails, etc.) doit être incluse dans le script. L'auteur du tableau de bord peut récupérer la description du script Python depuis l'éditeur du tableau de bord. Seule une personne disposant des privilèges et des ACL appropriés peut ouvrir le scr Python

Configurer le tableau de bord avec le script Python associé

Privilèges requis

Pour configurer les transactions sur un tableau de bord :

  • Transaction de configuration Web

  • Utiliser les scripts Python

  • Afficher l'ACL pour le script associé

Pour configurer les utilisateurs pour consommer le tableau de bord et soumettre des modifications :

  • Exécuter la transaction

  • Afficher l'ACL pour le script

Autres privilèges Library Web de base requis :

  • Utiliser Library Web

  • Tableau de bord de création Web

  • Tableau de bord de modifications Web

  • Enregistrer le tableau de bord Web

  • Tableau de bord Web

  • Créer des objets d'application

  1. Les transactions basées sur Python sont conçues pour fonctionner avec les grilles modernes. Sélectionnez une grille, ouvrez le panneau Format, puis cliquez sur Options de transaction .

  2. Cliquez sur Utiliser Python.

  3. Sélectionnez les types d'actions et indiquez un nom d'action personnalisé, un nom de bouton, etc.

    • Les types d'actions sont les actions que vous souhaitez autoriser au consommateur à effectuer sur ce tableau de bord. Vous devez sélectionner au moins un type d'action.

    • Donnez à l'action un nom significatif, décrivez ce qu'elle peut faire et donnez un nom au bouton.

      Exemple :

      • Nom de l'action Mettre à jour l'âge du client

      • Description Veuillez mettre à jour l'âge du client dans la colonne Client-Age.

      • Nom du bouton Soumettre

    • Vous pouvez combiner les actions. Par exemple, vous pouvez modifier des données existantes et ajouter des lignes de données supplémentaires en même temps. Choisissez des noms d'action qui reflètent ce comportement en conséquence.

  4. Cliquez sur Choisissez un script Python pour récupérer tous les scripts de transaction Python à partir du projet dans lequel se trouve le tableau de bord. Par défaut, seuls les scripts certifiés apparaissent. Utilisez le filtre pour parcourir la liste et trouver le script cible.

  5. Après avoir sélectionné un script, la section de mappage apparaît. Le nom du script sélectionné apparaît avec une icône d'information pour afficher la description du script. Dans le coin supérieur droit de cette section, une icône pour remplacer le script sélectionné et une icône pour actualiser la liste de scripts à partir des métadonnées sont fournies. Les variables nécessitant des données sont marquées d'un astérisque (*). Dans ces cas, un mappage doit être fourni pour enregistrer la configuration.

    Types d'action

    • Autoriser la modification des données dans la grille Le Modifiable L'option est activée. Les auteurs peuvent sélectionner la variable qu’ils souhaitent que les consommateurs puissent modifier.

    • Ajout de données à la grille Le Nouvelle entrée de données L'option est sélectionnée et vous pouvez sélectionner les variables que vous souhaitez que les consommateurs puissent insérer.

    • Actions disponibles pour les lignes sélectionnées Le Modifiable et Nouvelle entrée de données Les options sont désactivées. Dans ces cas, le numéro de ligne est passé au script. Le script détermine quelle action est entreprise sur cette ligne. Par exemple, vous pouvez utiliser cette action pour supprimer une ligne de la grille.

  6. Pour configurer les contrôles d'entrée, reportez-vous à Créer des transactions dans les grilles.

  7. Cliquez sur pour ajouter plus d'actions et configurer le message à afficher après la soumission.

  8. Cliquez sur Terminé pour terminer votre transaction et Enregistrer le tableau de bord.

Meilleures pratiques

  • En fonction de la source de données pour la mise à jour des modifications de données, la source SQL est généralement le premier choix. Si la source de données est constituée de services Web, Python est l'option préférée.

  • Pour les workflows plus complexes qui combinent des modifications de données avec des actions comme l'envoi d'e-mails, la mise à jour de Slack, etc., utilisez les scripts Python.

  • Nous recommandons une relation de mappage un-à-un entre la variable de script et les objets de la grille pour faciliter la configuration du contrôle d'entrée et définir si l'objet de la grille est modifiable ou non.

Utiliser les transactions Python pour les opérations de données

  1. La modification en ligne n'est pas prise en charge pour les transactions basées sur Python, c'est pourquoi toutes les modifications de données sont effectuées en mode online. Cliquez sur icône de crayon pour commencer à modifier les données.

  2. La sélection et la modification des données sont prises en charge pour une seule action.

  3. Pour les actions qui prennent en charge la sélection, la modification ou l'insertion de données, cliquez sur Ajouter des données pour fournir de nouvelles données. Lorsque vous avez terminé, cliquez sur Ajouter.

  4. Cliquez sur Soumettre.

Recommandations pour la configuration système

Les environnements conteneurisés vous permettent d'exécuter des scripts directement dans un Strategy sans avoir besoin de laisser un ordinateur en cours d'exécution. Vous pouvez enregistrer vos scripts dans ces environnements et y accéder n'importe où dans Workstation, ainsi que fournir un accès à d'autres administrateurs. À l'heure actuelle, la prise en charge de l'exécution de scripts côté serveur est activée uniquement pour les environnements conteneurisés.

Vous pouvez améliorer les performances des requêtes de transaction Python de la manière suivante :

Ajuster la taille de l'instance runtime

  1. Dans le volet de navigation, cliquez sur Moniteurs.

  2. Dans le volet gauche, cliquez sur Runtime.

  3. Dans la grille, cliquez avec le bouton droit sur le runtime et choisissez Modifier.

  4. Ajuster Taille de l'instance runtime.

Pourquoi devrais-je modifier la taille du runtime ?

La taille du runtime par défaut ne suffit peut-être pas pour les besoins en mémoire de votre script. En augmentant la taille du runtime, vous pouvez vous assurer que votre script dispose de suffisamment de mémoire pour s'exécuter sans erreur ni incident. Par exemple, lorsque vous utilisez un script pour créer une source de données, il est préférable d'utiliser des runtimes plus larges, car un script utilisé pour créer des tables peut les charger en mémoire.

Quels sont les risques liés à l'utilisation d'un grand environnement ?

Un grand environnement conteneurisé peut également consommer beaucoup de mémoire, ce qui peut entraîner des problèmes de performances sur la machine hôte et potentiellement une panne du conteneur. Strategy Les conteneurs ont une mémoire limitée pour les runtimes Python. Cette capacité est actuellement limitée à 6 vCPU et 20 Go de mémoire pour les environnements conteneurisés. Il est important d'évaluer régulièrement la taille et la complexité de votre environnement de conteneur et de vous assurer qu'elles correspondent à vos besoins en matière de performances, de sécurité et de maintenance. Il est préférable d'exécuter les scripts administratifs sur des runtimes plus petits pour réduire l'utilisation des ressources.

Ajuster les paramètres de runtime

  1. Dans le volet de navigation, cliquez sur Moniteurs.

  2. Dans le volet gauche, cliquez sur Runtime.

  3. Dans la grille, cliquez avec le bouton droit sur le runtime et choisissez Obtenir des informations.

  4. Dans le volet gauche, cliquez sur Tous les paramètres.

  5. Ajuster les paramètres d'exécution.

    Délai d'expiration du script (en secondes) Paramètre du délai d'attente pour l'exécution du script Python. Le paramètre par défaut est de 600 secondes.

    Nombre d'instances de Pod par défaut Nombre par défaut d'une instance d'exécution Python en cache.

    Instance d'exécution Python Si un script Python est en cours d'exécution à partir d'un runtime Python, une instance d'exécution Python est créée et peut être mise en cache selon le Nombre d'instances de Pod par défaut et Nombre d'instances de Pod maximales (limites des scripts d'exécution) paramètres.

    Nombre d'instances de Pod maximales (limites du script d'exécution) Nombre maximal d'instances d'exécution Python pouvant être créées en fonction du runtime.

Nombre d'instances de Pod runtime par défaut Runtime Nombre d'instances de Pod maximales (limites des scripts d'exécution) Recommandation
1 1 Pour les utilisateurs occasionnels avec une faible utilisation et une simultanéité sensibles aux temps de réponse. Étant donné que le pod exécuteur Python est toujours actif, le temps de préchauffage du pod peut être réduit, mais le coût global est plus élevé. Un pod est activé à tout moment.
1 N>1 Pour les utilisateurs occasionnels avec une faible utilisation et une certaine simultanéité, mais peu sensibles aux temps de réponse. Étant donné qu'un pod exécuteur Python est toujours opérationnel et que jusqu'à N-1 pods peuvent être installés sur demande, cette configuration peut prendre en charge plus d'incidents de concurrence. Certains utilisateurs ont un bon temps de réponse ; d'autres personnes peuvent subir l'heure d'avertissement du pod. Un pod est toujours en service et jusqu'à N-1 pods peuvent être démarrés et mis en place à une heure spécifique, puis arrêtés après avoir été inactif pendant plus de deux minutes
X>0 = Nombre d'instances de Pod par défaut Pour les utilisateurs sérieux effectuant une utilisation plus concurrente et sensibles au temps de réponse. Le prix est plus élevé, car il y aura X pods d'exécution disponibles à tout moment.

Limitations connues

Performances

La logique actuelle pour l'exécution à distance de Python est :

  • L'installation du package personnalisé pour un runtime spécifique se fait sur les volumes persistants, lorsque le pod exécuteur est généré, et que le volume persistant est monté sur le conteneur de l'exécuteur Python.

  • Le processus principal du service Python est responsable de la gestion des requêtes et des réponses. L'exécution réelle du script est lancée par le sous-processus. Par conséquent, chaque fois que les scripts Python sont exécutés, l'interprète Python tente de charger le package utilisé dans la mémoire du sous-processus.

Étant donné qu'il y a encore des retards lorsque le conteneur importe les données dans le volume persistant, donc même si le pod est déjà réchauffé, le sous-processus dépense du temps supplémentaire pour exécuter les scripts.

Connexions aux sources de données

Pour les sources de données privées sur site, s'il n'y a pas de connexion réseau entre le conteneur de pod de l'exécuteur Python et la source de données privée, les transactions Python ne sont pas prises en charge. En général, les sources de données avec des points de terminaisons publics peuvent être utilisées.

Articles connexes

KB486432 : Meilleures pratiques pour mapper les variables de script Python et les champs de grille pour les configurations de transactions Python

KB486431 : Synchronisez les modifications de scripts Python avec les configurations de transactions Python dans un tableau de bord