MicroStrategy ONE

Cree un panel de transacciones habilitado para Python

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

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

    Esta característica es compatible con la plataforma Microstrategy Cloud Environment. Contacto Soporte de MicroStrategy para activar esta función.

  • Elija una fuente de datos con un punto final público para reescribir los cambios de datos

  • Actualizar los metadatos a la última versión.

  • Crear un panel habilitado para transacciones

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

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

  • Configurar el panel con el script asociado

Empezado por creación de un tablero de instrumentos habilitado para transacciones 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 sólo los analistas examinados deberían tener este privilegio.

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

Los usuarios con el privilegio Administrar tiempo de ejecución pueden ver y administrar tiempos de ejecución existentes y crear otros nuevos. Todos los entornos tienen un tiempo de ejecución predeterminado. Al crear un tiempo de ejecución, los usuarios pueden cambiar su nombre, descripción, direcciones a las que se pueden conectar, paquetes instalados en él y elegir un tamaño para la 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 predeterminados incluyen las últimas versiones de los paquetes Python y mstrio, así como un tamaño de instancia predeterminado y una configuración de acceso a la red predeterminada. Los usuarios pueden utilizar el paquete mstrio para acceder a los datos de MicroStrategy mediante 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 de 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 la instancia de tiempo de ejecución es 0,2 CPU virtuales 0,5 GB de memoria.

  5. En Acceso a la red, indique la red con acceso permitido desde el tiempo de ejecución 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, se instala la última versión. Use el formato: [nombre del paquete][espacio en blanco][versión del paquete].

    Ejemplos:

    • solicitudes 2.28.1

    • peticiones

  7. Haga clic en Añadir.

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

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

Algunos consejos útiles:

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

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

  • Después de la migración de objetos de un entorno a otro, vuelva a agregar paquetes en los nuevos entornos para preparar el tiempo de ejecución. El tiempo de ejecución no funciona sin este paso adicional.

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

Crear una secuencia de comandos Python personalizada

Configure usuarios con los siguientes privilegios:

  • Usar secuencias de comandos 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 una 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. Comience a crear un script seleccionando una plantilla de la galería y modificándola o comience desde cero.

  5. Las variables de un script normalmente se asignan a columnas de la cuadrícula del panel. Al definir variables, la Columna está activado por defecto. Desactive esta opción para variables no transaccionales, como si la variable es para uso interno, como conectarse a una fuente 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 solicitud del sistema para registrar los inicios de sesión de los usuarios y ver quién realiza cambios en los datos.

  8. Los tipos de acciones predeterminados son seleccionar, insertar y actualizar. Para crear nuevos tipos de acción además de estos, como combinar la selección y la actualización, 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. Para una variable que se asigna a la clave principal de una tabla en una fuente de datos de reescritura, no desea que el consumidor modifique la clave principal. En esta situación, debe desactivar la Editable parámetro.

  10. Para las columnas del origen de datos que no permiten valores NULOS, marque esta variable como obligatoria activando el Obligatorio parámetro.

  11. Si una variable no está Obligatorio, 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 desea que los usuarios editen, active la Editable parámetro.

  13. Solo se pueden utilizar secuencias de comandos Python de transacciones certificadas para las operaciones de transacción, por lo que debe certificar la secuencia de comandos una vez que esté lista para su uso en producción. El grupo de usuarios que consumirá grids transaccionales de Python debe tener la ACL de visualización para este script.

Prácticas recomendadas

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

  • Para fuentes de datos que admitan transacciones atómicas, seleccione el paquete que admita la transacción atómica al preparar el tiempo de ejecución. En el script de Python, agregue secciones para manejar transacciones atómicas.

  • Utilice consultas parametrizadas cuando corresponda. Las consultas ejecutadas de esta manera no son susceptibles a ataques de 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 transacciones de Python y el autor del panel de transacciones pueden no ser la misma persona, garantice la paridad entre el script y el panel. Esto incluye la definición de la tabla de origen de datos que se va a escribir, el mapeo de las relaciones entre las variables definidas en el script de Python y el objeto de la cuadrícula de transacciones del panel, qué objeto es editable, etc.

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

Configurar el panel con el script Python asociado

Privilegios requeridos

Para configurar transacciones en un panel:

  • Transacción de configuración web

  • Usar secuencias de comandos Python

  • Ver ACL para el script asociado

Para configurar usuarios para que utilicen el panel y envíen cambios:

  • Ejecutar transacción

  • Ver ACL para el script

Otros privilegios básicos de Library Web requeridos:

  • Usar Library Web

  • Panel de creación web

  • Panel de edición web

  • Panel de guardado web

  • Panel de ejecución web

  • Crear objetos de aplicación

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

  2. Haga clic en Usar Python.

  3. Seleccione tipos de acciones 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 que el consumidor realice en este panel. Se debe seleccionar al menos un tipo de acción.

    • Asigne un nombre significativo 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

    • Puedes combinar acciones. Por ejemplo, puede modificar datos existentes y agregar filas de datos adicionales al mismo tiempo. Elija nombres de acciones que reflejen este comportamiento en consecuencia.

  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 navegar por la lista y encontrar el script de destino.

  5. Después de seleccionar un script, aparece la sección de mapeo. 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 ícono para reemplazar el script seleccionado y un ícono 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, se debe proporcionar un mapeo para guardar la configuración.

    Tipos de acción

    • Permitir la modificación de datos en la cuadrícula El Editable está habilitada. 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 utilizar esta acción para eliminar una fila de la cuadrícula.

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

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

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

Prácticas recomendadas

  • Dependiendo de la fuente de datos para reescribir los cambios de datos, normalmente la basada en SQL es la primera opción. Si la fuente de datos son servicios web, Python es la opción preferida.

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

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

Utilice transacciones de Python para operaciones de datos

  1. La edición en línea no es compatible con 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. Tanto la selección como la modificación de datos se admiten 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 de configuración del sistema

Los entornos en contenedores le permiten ejecutar scripts directamente en un entorno de MicroStrategy sin necesidad de dejar el equipo 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 maneras:

Ajustar el tamaño de la instancia en 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, pulse el botón derecho del ratón en el tiempo de ejecución y seleccione Editar.

  4. Ajustar el Tamaño de la 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 de tiempo de ejecución predeterminado no sea suficiente para las necesidades de memoria de su secuencia de comandos. Al aumentar el tamaño del tiempo de ejecución, puede asegurarse de que su secuencia de comandos tenga suficiente memoria para ejecutarse sin errores ni fallas. Por ejemplo, cuando se utiliza un script para crear una fuente 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 involucrados en el uso de un entorno grande?

Un entorno de contenedores grande también puede consumir mucha memoria, lo que puede provocar problemas de rendimiento en la máquina host y, potencialmente, provocar que el contenedor falle. Los contenedores de MicroStrategy tienen memoria limitada para los tiempos de ejecución Python. Actualmente, esto 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 de su entorno de contenedores y asegurarse de que se alinee con sus requisitos de rendimiento, seguridad y mantenimiento. Es mejor ejecutar 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, pulse el botón derecho del ratón en el tiempo de ejecución y seleccione Obtener información.

  4. En el panel izquierdo, haga clic en Todos los ajustes.

  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. La configuración predeterminada 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 Python Si se está ejecutando un script Python basado en un tiempo de ejecución Python, se crea una instancia de ejecución Python y se puede almacenar en caché de acuerdo con 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 scripts) Número máximo de instancias de ejecución de Python que pueden crearse en función del tiempo de ejecución.

Número de instancia de pod predeterminado en tiempo de ejecución Número máximo de instancias de Pod en tiempo de ejecución (límites totales de scripts de ejecución) Recomendación
1 1 Para usuarios ocasionales con bajo uso y concurrencia que son sensibles al tiempo de respuesta. Dado que el pod ejecutor de Python siempre está activo, el tiempo de calentamiento del pod se puede reducir, pero el costo general es mayor. Un pod está encendido en todo momento.
1 n>1 Para usuarios ocasionales con poco uso y cierta concurrencia, pero no muy sensibles al tiempo de respuesta. Dado que un pod ejecutor de Python siempre está activo y hasta N-1 pods pueden estar activos a pedido, esta configuración puede admitir más casos de concurrencia. Algunos usuarios tienen un buen tiempo de respuesta; otros pueden experimentar el tiempo de advertencia del módulo. Un módulo siempre está activo y se pueden iniciar y activar hasta N-1 módulos en un momento específico y luego detenerlos después de estar inactivos durante más de dos minutos.
X>0 = Número de instancia de pod predeterminado Para usuarios serios con uso más simultáneo que son sensibles al tiempo de respuesta. El precio es más alto ya que habrá X pods de tiempo de ejecución activos en todo momento.

Limitaciones conocidas

Actuación

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 se realiza en los volúmenes persistentes, cuando se genera el pod ejecutor y el volumen persistente se monta en el contenedor del ejecutor de Python.

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

Dado que todavía hay algunos retrasos cuando el contenedor importa los datos en el volumen persistente, incluso si el pod ya está calentado, el subproceso tiene un costo de tiempo adicional para ejecutar los scripts.

Conexiones de fuentes de datos

Para fuentes de datos locales privadas, si no hay una conexión de red entre el contenedor del pod ejecutor de Python y la fuente de datos privada, entonces no se admiten transacciones de Python. En general, se pueden utilizar fuentes de datos con puntos finales 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