MicroStrategy ONE

Crear un dashboard de transacción con Python habilitado

Iniciar sesión en MicroStrategy ONE (marzo de 2024), puede crear dashboards de transacciones con Python habilitado en entornos de MicroStrategy Cloud y en la plataforma de MicroStrategy Cloud para la Administración Pública. Para crear y ejecutar un dashboard de transacción habilitada para Python, debe:

  • Asegúrese de que el entorno admite el uso del ejecutor de Python

    Esta función es compatible con la plataforma de entornos de MicroStrategy Cloud. Contacto Compatibilidad con estrategia para activar esta función.

  • Elija un origen de datos con un punto de conexión público para rescribir los cambios de datos

  • Actualizar los metadatos a la última versión

  • Crear un dashboard con transacciones habilitadas

  • Crear un tiempo de ejecución personalizado y descargar todos los paquetes Python necesarios como parte de ese tiempo de ejecución

  • Crear un Python script con las acciones de manipulación de datos necesarias

  • Configurar el dashboard con el script asociado

Empezar por creación de un dashboard con transacciones habilitadas y, a continuación, siga los pasos.

Crear un tiempo de ejecución personalizado

Se requiere el privilegio Administrar tiempos de ejecución. Los usuarios con este privilegio pueden descargar paquetes de terceros, por lo que solo los analistas autorizados deben tener este privilegio.

Ver Crear y editar tiempos de ejecución Python para obtener más información.

Los usuarios con el privilegio Gestionar tiempo de ejecución pueden ver y gestionar los tiempos de ejecución existentes y crear otros nuevos. Todos los entornos tienen un tiempo de ejecución por defecto. Al crear un tiempo de ejecución, los usuarios pueden cambiar el nombre, la descripción, las direcciones a las que se puede conectar, los paquetes instalados en él y elegir el tamaño de ejecución del script. El tamaño de la instancia de tiempo de ejecución determina los recursos (CPU y memoria) disponibles para cada ejecución de script asociada con ese tiempo de ejecución.

  1. Abra Workstation y conectarse a un entorno.
  2. En el panel de navegación, haga clic en Monitores.

    Todos los entornos tienen un nombre de tiempo de ejecución por defecto de (Por defecto) MicroStrategy.

    Los tiempos de ejecución por defecto incluyen las versiones más recientes de los paquetes de Python y mstrio, así como un tamaño de instancia y una configuración de acceso a la red por defecto. Los usuarios pueden utilizar el paquete mstrio para acceder a MicroStrategy datos utilizando el tiempo de ejecución por defecto.

    Los usuarios no pueden cambiar la configuración del tiempo de ejecución predeterminado. Si un usuario desea personalizar el tamaño de la instancia, el acceso a la red o la configuración del paquete, debe crear un nuevo tiempo de ejecución.

  3. En el panel izquierdo, haga clic en junto a Tiempo de ejecución.

  4. Introduce un Nombre del tiempo de ejecución y Descripción. Los tiempos de ejecución recién creados utilizan las últimas Versión de Python. Para los tiempos de ejecución existentes, puede actualizar a la última versión de Python. El valor por defecto Tamaño de instancia de tiempo de ejecución es 0,2 vCPU 0,5 GB de memoria.

  5. En Acceso a la red, indique la red con permiso de acceso desde el tiempo de ejecución de Python. El formato debe seguir Enrutamiento entre dominios sin clases (CIDR), como 141.193.213.21/32.

  6. Haga clic en en la esquina inferior izquierda para agregar un nuevo paquete que se instalará en el tiempo de ejecución de Python. Si no se proporciona la versión del paquete, significa que está instalada la última versión. Use el formato: [nombre del paquete][espacio en blanco][versión del paquete].

    Ejemplos:

    • solicitudes 2.28.1

    • solicitudes

  7. Haga clic en Agregar.

  8. Los paquetes suelen admitir conectividad con el origen de datos para rescribir cambios de datos, admitir manipulaciones con MicroStrategy las API o conectarse a otras aplicaciones, como Microsoft Teams. Haga clic en el vínculo de Pypi para encontrar el nombre exacto del paquete y la versión que desea descargar.

  9. Haga clic en Añadir para guardar el tiempo de ejecución y espere a que finalice la instalación. Actualice la página para comprobar el estado.

Algunos consejos útiles:

  • Asegúrese de pulsar Intro después de introducir cada campo (acceso a red, nombre del paquete y versión) antes de hacer clic en Añadir o Aceptar para confirmar el cambio.

  • Puede añadir más de un paquete a un tiempo de ejecución.

  • Tras migrar los objetos de un entorno a otro, vuelva a añadir paquetes en los nuevos entornos para tener el tiempo de ejecución listo. El tiempo de ejecución no funciona sin este paso adicional.

  • Por defecto, Todos tiene una Ver ACL para un tiempo de ejecución.

Crear un script Python personalizado

Configure usuarios con los siguientes privilegios:

  • Usar Scripts Python

  • Certificar Python Scripts

  • Se recomiendan las siguientes ACL:

    • Los scripts de lectura requieren una ACL de lectura en los scripts.

    • Los scripts de actualización requieren una ACL de escritura en los scripts.

    • Los scripts de ejecución requieren una ACL de ejecución en los scripts y un ACL de ejecución en los tiempos de ejecución.

  1. Abra Workstation y conectarse a un entorno.
  2. En el panel de navegación, haga clic en junto a Scripts.

  3. Abra la configuración del script para cambiar el tipo de script a Transacción y seleccione el tiempo de ejecución de Python adecuado.

  4. Empiece a crear un script seleccionando una plantilla de la galería y modificándola o empiece desde cero.

  5. Las variables de un script normalmente se asignan a columnas en la cuadrícula del dashboard. Al definir variables, la Columna El parámetro está activado por defecto. Desactive esta opción para variables no transaccionales, por ejemplo, si la variable es para uso interno, como conectarse a un origen de datos.

  6. Para la contraseña de conexión al origen de datos, seleccione la variable de tipo no transaccional, Secreto.

  7. Considere incluir una variable de selección dinámica del sistema para registrar los inicios de sesión de los usuarios y ver quién está realizando cambios en los datos.

  8. Los tipos de acción por defecto son seleccionar, insertar y actualizar. Para crear nuevos tipos de acción además de estos, como combinar seleccionar y actualizar, seleccione Tipo de transacción en Tipo de variable. En un único script de transacción Python, solo se puede establecer una variable como Tipo de transacción.

  9. No desea que el consumidor modifique la clave primaria de una variable que se asigna a la clave primaria de una tabla en un origen de datos de reescritura. En esta situación, debe desactivar la Editable parámetro.

  10. Para las columnas del origen de datos que no permiten el valor NULO, marque esta variable como necesaria activando el Requerido parámetro.

  11. Si una variable no es Requerido, los autores pueden elegir si una columna debe dejarse vacía o no, en función de lo que permita la base de datos.

  12. Para las columnas que desee que los usuarios editen, active la Editable parámetro.

  13. Solo los scripts Python de transacciones certificados pueden utilizarse en las operaciones de transacción; por lo tanto, debe certificar el script una vez que esté listo para su uso en producción. El grupo de usuarios que consumirá cuadrículas transaccionales de Python debe tener la ACL Ver para este script.

Prácticas recomendadas

  • Aprenda de una plantilla de código de ejemplo.

  • Para los orígenes de datos que admiten transacciones atómicas, elija el paquete que admita la transacción atómica cuando prepare el tiempo de ejecución. En el script Python, añada secciones para controlar las transacciones atómicas.

  • Use consultas parametrizadas cuando corresponda. Las consultas que se ejecutan de esta manera no son susceptibles de ataques por inyección porque la consulta y los parámetros se envían para su ejecución por separado.

  • Dado que el creador del script de transacción de Python y el autor del dashboard de transacción pueden no ser la misma persona, asegúrese de que hay paridad entre el script y el dashboard. Esto incluye la definición de la tabla de origen de datos que se va a rescribir, las relaciones de asignación entre las variables definidas en el script de Python y el objeto de la cuadrícula de transacciones del dashboard, qué objeto se puede editar, etc.

  • Se deben incluir en el script descripciones detalladas de lo que admite el script Python (actualizar datos, insertar nuevos datos, seleccionar filas para eliminar o insertar en una tabla diferente, enviar mensajes de Microsoft Teams, enviar correos electrónicos, etc.). El autor del dashboard puede recuperar la descripción del script de Python en el editor del dashboard. Solo una persona con los privilegios adecuados y ACL puede abrir Python scr

Configurar el dashboard con el script Python asociado

Privilegios necesarios

Para configurar transacciones en un dashboard:

  • Transacción de configuración web

  • Usar Scripts Python

  • Ver ACL del script asociado

Para configurar usuarios para consumir el dashboard y enviar cambios:

  • Ejecutar transacción

  • Ver ACL para el script

Otros privilegios básicos de Library Web necesarios:

  • Usar Library Web

  • Web crear dashboard

  • Web editar dashboard

  • Web guardar dashboard

  • Web ejecutar dashboard

  • Crear objetos de aplicación

  1. Las transacciones basadas en Python están diseñadas para funcionar con cuadrículas modernas. Seleccione una cuadrícula, abra el panel Formato y haga clic en Opciones de transacción .

  2. Haga clic en Utilizar Python.

  3. Seleccione los tipos de acción y proporcione un nombre de acción personalizado, un nombre de botón, etc.

    • Los tipos de acción son las acciones que desea permitir al consumidor realizar en este dashboard. Debe seleccionarse al menos un tipo de acción.

    • Asigne un nombre descriptivo a la acción, describa lo que puede hacer la acción y asigne un nombre al botón.

      Ejemplo:

      • Nombre de la acción Actualizar la edad del cliente

      • Descripción Actualice la edad del cliente en la columna Customer-Age.

      • Nombre del botón Enviar

    • Puede combinar acciones. Por ejemplo, puede modificar los datos existentes y añadir filas de datos adicionales al mismo tiempo. Elija nombres de acción que reflejen este comportamiento según corresponda.

  4. Haga clic en Elegir Python Script para recuperar todos los scripts Python de transacciones del proyecto en el que se encuentra el dashboard. Por defecto, solo aparecen los scripts certificados. Utilice el filtro para desplazarse por la lista y encontrar el script de destino.

  5. Tras seleccionar un script, aparece la sección de asignación. El nombre del script seleccionado aparece con un icono de información para mostrar la descripción del script. En la parte superior derecha de esta sección se proporciona un icono para sustituir el script seleccionado y un icono para actualizar la lista de scripts a partir de los metadatos. Las variables que requieren datos están marcadas con un asterisco (*). En estos casos, debe proporcionar la asignación para guardar la configuración.

    Tipos de acción

    • Permitir modificar datos en la cuadrícula El Editable está activada. Los autores pueden seleccionar la variable que desean que los consumidores puedan modificar.

    • Adición de datos a la cuadrícula El Nueva entrada de datos está seleccionada y puede seleccionar las variables que desea que los consumidores puedan insertar.

    • Actuar en las filas seleccionadas El Editable y Nueva entrada de datos ambas opciones están deshabilitadas. En estos casos, el número de fila se pasa al script. El script determina qué acción se realiza en esa fila. Por ejemplo, puede usar esta acción para eliminar una fila de la cuadrícula.

  6. Para configurar los controles de entrada, consulte Crear transacciones en cuadrículas.

  7. Haga clic en para añadir más acciones y configurar el mensaje a mostrar después del envío.

  8. Haga clic en Listo para completar la transacción y Guardar el dashboard.

Prácticas recomendadas

  • Dependiendo del origen de datos para rescribir los cambios de datos, normalmente el origen basado en SQL es la primera opción. Si el origen de datos son servicios web, Python es la opción preferida.

  • Para flujos de trabajo más complejos que combinen cambios de datos con acciones como enviar correos electrónicos, actualizar Slack, etc., utilice Python scripts.

  • Recomendamos una relación de asignación de uno a uno entre la variable de script y los objetos de cuadrícula para facilitar la configuración del control de entrada y definir si el objeto de cuadrícula es editable o no.

Utilizar transacciones de Python para operaciones con datos

  1. La edición en línea no es compatible con las transacciones basadas en Python, por lo que todas las modificaciones de datos se realizan en modo masivo. Haga clic en icono de lápiz para empezar a modificar los datos.

  2. Es compatible tanto la selección como la modificación de datos para una sola acción.

  3. Para acciones que admiten la selección, modificación o inserción de datos, haga clic en Añadir datos para proporcionar nuevos datos. Cuando haya terminado, haga clic en Añadir.

  4. Haga clic en Enviar.

Recomendaciones para la configuración del sistema

Los entornos en contenedores le permiten ejecutar scripts directamente en un MicroStrategy entorno sin necesidad de dejar el ordenador en funcionamiento. Puede guardar sus scripts en estos entornos y acceder a ellos desde cualquier lugar dentro de Workstation, así como proporcionar acceso a otros administradores. Actualmente, la compatibilidad con la ejecución de scripts del lado del servidor está activada solo para entornos en contenedores.

Puede mejorar el rendimiento de las solicitudes de transacciones de Python de las siguientes formas:

Ajustar tamaño de instancia de tiempo de ejecución

  1. En el panel de navegación, haga clic en Monitores.

  2. En el panel izquierdo, haga clic en Tiempo de ejecución.

  3. En la cuadrícula, haga clic con el botón derecho en el tiempo de ejecución y seleccione Editar.

  4. Ajustar el Tamaño de instancia de tiempo de ejecución.

¿Por qué debería cambiar el tamaño del tiempo de ejecución?

Es posible que el tamaño del tiempo de ejecución predeterminado no sea suficiente para las necesidades de memoria de su script. Al aumentar el tamaño del tiempo de ejecución, puede asegurarse de que su script tenga suficiente memoria para ejecutarse sin errores o bloqueos. Por ejemplo, cuando utilice un script para crear un origen de datos, es mejor utilizar tiempos de ejecución mayores, ya que un script utilizado para crear tablas podría cargarlas en la memoria.

¿Cuáles son los riesgos que implica el uso de un entorno grande?

Un entorno grande en contenedores también puede consumir mucha memoria, lo que puede provocar problemas de rendimiento en el equipo host y provocar el bloqueo del contenedor. MicroStrategy Los contenedores tienen memoria limitada para los tiempos de ejecución Python. Actualmente está limitado a 6 vCPU y 20 GB de memoria para entornos en contenedores. Es importante evaluar periódicamente el tamaño y la complejidad del entorno de su contenedor y asegurarse de que se ajusta a sus requisitos de rendimiento, seguridad y mantenimiento. Es mejor ejecutar los scripts administrativos en tiempos de ejecución más pequeños para reducir el uso de recursos.

Ajustar la configuración del tiempo de ejecución

  1. En el panel de navegación, haga clic en Monitores.

  2. En el panel izquierdo, haga clic en Tiempo de ejecución.

  3. En la cuadrícula, haga clic con el botón derecho en el tiempo de ejecución y seleccione Obtener información.

  4. En el panel izquierdo, haga clic en Todos los parámetros.

  5. Ajuste la configuración del tiempo de ejecución.

    Tiempo de espera del script (s) Ajuste del tiempo de espera para la ejecución del script Python. El ajuste predeterminado es 600 segundos.

    Número de instancia de pod por defecto El recuento por defecto de una instancia de ejecución de Python almacenada en caché.

    Instancia de ejecución de Python Si se ejecuta un script Python basado en un tiempo de ejecución Python, se crea una instancia de ejecución de Python y se puede almacenar en caché según las Número de instancia de pod por defecto y Número de instancia máximo de pod (límites totales de ejecución de scripts) configuración.

    Número de instancia máximo de pod (límites totales de ejecución de script) Número máximo de instancias de ejecución de Python que se pueden crear en función del tiempo de ejecución.

Número de instancia de pod por defecto en tiempo de ejecución Número máximo de instancia de pod de tiempo de ejecución (límites totales de ejecución de scripts) Recomendación
1 1 Para usuarios ocasionales con bajo nivel de uso y simultaneidad a los que les preocupa el tiempo de respuesta. Dado que el pod de ejecutor Python siempre está activo, el tiempo de calentamiento del pod puede reducirse, pero el coste general es mayor. Un pod está activado en todo momento.
1 N>1 Para usuarios ocasionales con poco uso y cierta simultaneidad, pero no muy sensibles al tiempo de respuesta. Dado que un pod de ejecutor Python siempre está activo y que pueden estar activos hasta N-1 pods a petición, esta configuración puede admitir más casos de simultaneidad. Algunos usuarios tienen un buen tiempo de respuesta; otros pueden experimentar el tiempo de advertencia del pod. Un pod está siempre activo y es posible que hasta N-1 pods estén iniciados y activos en un momento específico y luego detenidos tras estar inactivos durante más de dos minutos
X>0 = Número de instancia de pod por defecto Para usuarios exigentes con un uso más simultáneo a los que les preocupa el tiempo de respuesta. El precio es más alto porque habrá X pods de tiempo de ejecución activos en todo momento.

Limitaciones conocidas

Rendimiento

La lógica actual para la ejecución remota de Python es:

  • La instalación del paquete personalizado para un tiempo de ejecución específico está en los volúmenes persistentes, cuando se genera el pod de ejecutor y el volumen persistente se monta en el contenedor del ejecutor de Python.

  • El proceso principal del servicio Python es responsable del control de solicitudes y respuestas. El subproceso inicia la ejecución del script real. Como resultado, cada vez que se ejecutan los scripts Python, el intérprete de Python intenta cargar el paquete usado en la memoria del subproceso.

Dado que todavía hay algunos retrasos cuando el contenedor importa los datos en el volumen persistente, por lo que aunque el pod ya se haya preparado, el subproceso tardará un tiempo más en ejecutar los scripts.

Conexiones con los orígenes de datos

Para las fuentes de datos privadas locales, si no hay conexión de red entre el contenedor del pod del ejecutor de Python y la fuente de datos privada, significa que las transacciones de Python no se admiten. En general, se pueden usar orígenes de datos con puntos de conexión públicos.

Artículos relacionados

KB486432: Prácticas recomendadas para asignar variables de script Python y campos de cuadrícula para configuraciones de transacciones de Python

KB486431: Sincronizar las modificaciones del script Python con las configuraciones de transacciones de Python en un dashboard