MicroStrategy ONE
Créer un tableau de bord de transactions compatible Python
À partir de MicroStrategy ONE (mars 2024), vous pouvez créer des tableaux de bord de transaction activés 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 MicroStrategy pour activer cette fonction.
-
Choisissez une source de données avec un point de terminaison public pour réécrire les modifications de données
-
Mettre à jour les métadonnées vers la dernière version
-
Créer un tableau de bord activé pour les transactions
-
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 environnement d'exécution personnalisé
Le privilège Gérer les runtimes est requis. Les utilisateurs disposant de ce privilège peuvent télécharger des packages tiers. Seuls les analystes approuvés devraient donc bénéficier 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 actuellement existants et en créer de nouveaux. Tous les environnements ont un runtime par défaut. Lors de la création d'un environnement d'exécution, les utilisateurs peuvent modifier son nom, sa description, les adresses auxquelles il peut se connecter, les packages installés dessus et choisir une taille pour l'exécution du script. La taille de l'instance d'exécution détermine les ressources (CPU et mémoire) disponibles pour chaque exécution de script associée à ce runtime.
- Ouvrir Workstation et se connecter à un environnement.
-
Dans le volet de navigation, cliquez sur Moniteurs.
Tous les environnements ont un nom de runtime par défaut de (Par défaut) MicroStrategy.
Les environnements d'exécution par défaut incluent les dernières versions des packages Python et mstrio, ainsi qu'une taille d'instance par défaut et une configuration d'accès réseau par défaut. Les utilisateurs peuvent utiliser le package mstrio pour accéder aux données MicroStrategy à l'aide du 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.
-
Dans le volet gauche, cliquez sur à côté de Runtime.
-
Saisissez un Nom du runtime et Description. Les runtimes récemment créés utilisent le dernier Version Python. Pour les environnements d'exécution existants, vous pouvez effectuer une mise à 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.
-
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.
-
Cliquez sur en bas à gauche pour ajouter un nouveau package à installer dans le runtime Python. Si la version du package n'est pas fournie, la dernière version est installée. Utiliser le format : [nom du package][espace blanc][version du package].
Exemples :
-
demandes 2.28.1
-
demandes
-
-
Cliquez sur Ajouter.
-
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 les API MicroStrategy ou se connecter à 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.
-
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 même environnement d'exécution.
-
Après la migration des objets d'un environnement à un autre, ajoutez à nouveau 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 des scripts Python
-
Certifier les scripts Python
-
Les ACL suivantes sont recommandées :
-
Les scripts de lecture 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 environnements d'exécution.
-
- Ouvrir Workstation et se connecter à un environnement.
-
Dans le volet de navigation, cliquez sur à côté de Scripts.
-
Ouvrez les paramètres de script pour modifier le type de script sur Transaction et sélectionnez le runtime Python approprié.
-
Commencez à créer un script en sélectionnant un modèle dans la galerie et en le modifiant ou repartez de zéro.
-
Les variables d'un script sont généralement mappées aux 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, comme la connexion à une source de données.
-
Pour le mot de passe de connexion à la source de données, sélectionnez la variable de type non transactionnel, Secret.
-
Pensez à inclure une variable d'invite système pour enregistrer les connexions des utilisateurs et voir qui apporte des modifications aux données.
-
Les types d'action par défaut sont sélectionner, insérer et mettre à 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.
-
Pour une variable mappée à la clé primaire d'une table dans une source de données de réécriture, vous ne souhaitez pas que le consommateur modifie la clé primaire. Dans cette situation, vous devez désactiver Modifiable paramètre.
-
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.
-
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.
-
Pour les colonnes que vous souhaitez que les utilisateurs modifient, activez l'option Modifiable paramètre.
-
Seuls les scripts Python de transaction 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 une utilisation en production. Le groupe d'utilisateurs qui consommera les grilles transactionnelles Python doit disposer de l'ACL View pour ce script.
Les meilleures pratiques
-
Apprenez à partir d’un exemple de modèle de code.
-
Pour les sources de données prenant en charge les transactions atomiques, sélectionnez le package pour prendre en charge la transaction atomique lors de la préparation du runtime. Dans le script Python, ajoutez des sections pour gérer les transactions atomiques.
-
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 ne pas être la même personne, assurez-vous de la parité entre le script et le tableau de bord. Cela inclut la définition de la table source de données à réécrire, le mappage des relations entre les variables définies dans le script Python et l'objet de la grille de transactions du tableau de bord, l'objet qui est modifiable, etc.
-
Des descriptions détaillées de ce que le script Python prend en charge (mettre à jour les données, insérer de nouvelles données, sélectionner des lignes à supprimer ou à insérer dans une autre table, envoyer des messages Microsoft Teams, envoyer des e-mails, etc.) doivent être incluses dans le script. L'auteur du tableau de bord peut récupérer la description du script Python à partir de l'éditeur de tableau de bord. Seule une personne disposant des privilèges et des ACL appropriés peut ouvrir Python scr
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 des scripts Python
-
Afficher l'ACL pour le script associé
Pour configurer les utilisateurs afin qu'ils utilisent le tableau de bord et soumettent 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 d'édition Web
-
Tableau de bord de sauvegarde Web
-
Tableau de bord Web
-
Créer des objets d'application
-
Les transactions basées sur Python sont conçues pour fonctionner avec des grilles modernes. Sélectionnez une grille, ouvrez le panneau Format, puis cliquez sur Options de transaction .
-
Cliquez sur Utiliser Python.
-
Sélectionnez les types d'action et fournissez un nom d'action personnalisé, un nom de bouton, etc.
-
Les types d'actions sont les actions que vous souhaitez autoriser le consommateur à effectuer sur ce tableau de bord. Au moins un type d'action doit être sélectionné.
-
Donnez à l'action un nom significatif, décrivez ce que l'action 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 des 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.
-
-
Cliquez sur Choisissez un script Python pour récupérer tous les scripts Python de transaction 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.
-
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. En haut à droite de cette section, une icône pour remplacer le script sélectionné et une icône pour actualiser la liste des scripts à partir des métadonnées est fournie. 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'actions
-
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 transmis au script. Le script détermine quelle action est effectuée sur cette ligne. Par exemple, vous pouvez utiliser cette action pour supprimer une ligne de la grille.
-
-
Pour configurer les contrôles d'entrée, reportez-vous à Transactions dans les grilles.
-
Cliquez sur pour ajouter plus d'actions et configurer le message à afficher après la soumission.
-
Cliquez sur Terminé pour terminer votre transaction et Enregistrer le tableau de bord.
Les meilleures pratiques
-
En fonction de la source de données utilisée pour réécrire les modifications apportées aux données, celle basée sur SQL constitue 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 flux de travail plus complexes combinant des modifications de données avec des actions telles que l'envoi d'e-mails, la mise à jour de Slack, etc., utilisez des scripts Python.
-
Nous recommandons une relation de mappage un à un entre la variable de script et les objets de grille pour faciliter la configuration du contrôle d'entrée et définir si l'objet de grille est modifiable ou non.
Utiliser les transactions Python pour les opérations sur les données
-
L'édition en ligne n'est pas prise en charge pour les transactions basées sur Python, donc toutes les modifications de données sont effectuées en mode groupé. Cliquez sur pour commencer à modifier les données.
-
La sélection et la modification des données sont prises en charge pour une seule action.
-
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.
-
Cliquez sur Soumettre.
Recommandations de configuration du système
Les environnements conteneurisés vous permettent d'exécuter des scripts directement dans un environnement MicroStrategy 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. Actuellement, 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 des manières suivantes :
Ajuster la taille de l'instance d'exécution
-
Dans le volet de navigation, cliquez sur Moniteurs.
-
Dans le volet gauche, cliquez sur Runtime.
-
Dans la grille, cliquez avec le bouton droit sur le runtime et choisissez Modifier.
-
Ajuster Taille de l'instance runtime.
Pourquoi devrais-je modifier la taille du runtime ?
La taille d'exécution par défaut peut ne pas être suffisante pour les besoins en mémoire de votre script. En augmentant la taille de l'exécution, vous pouvez vous assurer que votre script dispose de suffisamment de mémoire pour s'exécuter sans erreurs ni plantages. Par exemple, lorsque vous utilisez un script pour créer une source de données, il est préférable d'utiliser des temps d'exécution plus longs, car un script utilisé pour créer des tables pourrait 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 provoquer un crash du conteneur. Les conteneurs MicroStrategy ont une mémoire limitée pour les runtimes Python. Ceci est actuellement limité à 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 conteneurs et de vous assurer qu'il correspond à vos exigences en matière de performances, de sécurité et de maintenance. Il est préférable d'exécuter les scripts d'administration sur des environnements d'exécution plus petits afin de réduire l'utilisation des ressources.
Ajuster les paramètres d'exécution
-
Dans le volet de navigation, cliquez sur Moniteurs.
-
Dans le volet gauche, cliquez sur Runtime.
-
Dans la grille, cliquez avec le bouton droit sur le runtime et choisissez Obtenir des informations.
-
Dans le volet gauche, cliquez sur Tous les paramètres.
-
Ajustez 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.
Numéro d'instance du pod par défaut d'exécution | Nombre maximal d'instances de pods d'exécution (limites totales des scripts d'exécution) | Recommandation |
---|---|---|
1 | 1 | Pour les utilisateurs occasionnels ayant une faible utilisation et une simultanéité sensibles au temps de réponse. Étant donné que le pod d'exécution 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 allumé à tout moment. |
1 | N>1 | Pour les utilisateurs occasionnels avec une faible utilisation et une certaine simultanéité, mais peu sensibles au temps de réponse. Étant donné qu'un pod d'exécuteur Python est toujours actif et que jusqu'à N-1 pods peuvent être actifs sur demande, cette configuration peut prendre en charge davantage de cas de concurrence. Certains utilisateurs ont un bon temps de réponse ; d'autres peuvent rencontrer le temps d'avertissement du pod. Un pod est toujours actif et jusqu'à N-1 pods peuvent être démarrés et activés à une heure précise, puis arrêtés après avoir été inactifs pendant plus de deux minutes. |
X>0 | = Numéro d'instance du pod par défaut | Pour les utilisateurs sérieux avec une utilisation plus simultanée et sensibles au temps de réponse. Le prix est plus élevé car il y aura des modules d'exécution X à tout moment. |
Limites connues
Performance
La logique actuelle de l'exécution à distance de Python est :
-
L'installation du package personnalisé pour un environnement d'exécution spécifique se trouve sur les volumes persistants, lorsque le pod de l'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 demandes et des réponses. L'exécution réelle du script est lancée par le sous-processus. De ce fait, à chaque exécution des scripts Python, l'interpréteur Python tente de charger le package utilisé dans la mémoire du sous-processus.
Comme il y a encore des retards lorsque le conteneur importe les données dans le volume persistant, même si le pod est déjà réchauffé, le sous-processus nécessite 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'existe aucune connexion réseau entre le conteneur du pod d'exécution Python et la source de données privée, les transactions Python ne sont pas prises en charge. En général, des sources de données avec des points de terminaison publics peuvent être utilisées.
Articles Liés