MicroStrategy ONE

Crie um painel de transações habilitado para Python

Começando em MicroStrategy ONE (março de 2024), você pode criar painéis de transações habilitados para Python em MicroStrategy Cloud ambientes e no MicroStrategy Cloud para plataforma governamental. Para criar e executar um painel de transações habilitado para Python, você deve:

  • Certifique-se de que o ambiente suporta o uso do executor Python

    Este recurso é compatível com a plataforma Microstrategy Cloud Environment. Contato MicroStrategy Apoiar para ativar esse recurso.

  • Escolha uma fonte de dados com um endpoint público para fazer write-back de alterações de dados

  • Atualize os metadados para a versão mais recente

  • Crie um painel habilitado para transação

  • Crie um tempo de execução personalizado e baixe todos os pacotes Python necessários como parte desse tempo de execução

  • Crie um script Python com as ações de manipulação de dados necessárias

  • Configure o painel com o script associado

Comece por criando um painel habilitado para transação e siga as etapas abaixo.

Crie um tempo de execução personalizado

O privilégio Gerenciar Runtimes é necessário. Os usuários com esse privilégio podem baixar pacotes de terceiros, portanto, apenas analistas avaliados devem ter esse privilégio.

Ver Criar e editar tempos de execução do Python Para maiores informações.

Os usuários com o privilégio Gerenciar tempo de execução podem visualizar e gerenciar tempos de execução existentes e criar novos. Todos os ambientes possuem um tempo de execução padrão. Ao criar um tempo de execução, os usuários podem alterar seu nome, descrição, endereços aos quais ele pode se conectar, pacotes instalados nele e escolher um tamanho para execução do script. O tamanho da instância de tempo de execução determina os recursos (CPU e memória) disponíveis para cada execução de script associada a esse tempo de execução.

  1. Abra a estação de trabalho e conectar-se a um ambiente.
  2. No painel de navegação, clique em Monitores.

    Todos os ambientes têm um nome de tempo de execução padrão de (Padrão) MicroStrategy.

    Os tempos de execução padrão incluem as versões mais recentes dos pacotes Python e mstrio, bem como um tamanho de instância padrão e uma configuração de acesso à rede padrão. Os usuários podem usar o pacote mstrio para acessar MicroStrategy dados usando o tempo de execução padrão.

    Os usuários não podem alterar a configuração do tempo de execução padrão. Se um usuário quiser personalizar o tamanho da instância, o acesso à rede ou a configuração do pacote, ele deverá criar um novo tempo de execução.

  3. No painel esquerdo, clique em ao lado de Tempo de execução.

  4. Introduzir um Nome do tempo de execução e Descrição. Os tempos de execução recém-criados usam o mais recente Versão Python. Para tempos de execução existentes, você pode atualizar para a versão mais recente do Python. O padrão Tamanho da instância de tempo de execução é 0,2 vCPU 0,5 GB de memória.

  5. Em Acesso à rede, entre na rede com acesso permitido no tempo de execução do Python. O formato deve seguir Roteamento entre domínios sem classe (CIDR) formato, como 141.193.213.21/32.

  6. Clique no canto inferior esquerdo para adicionar um novo pacote a ser instalado no tempo de execução do Python. Se a versão do pacote não for fornecida, a versão mais recente será instalada. Use o formato: [nome do pacote][espaço em branco][versão do pacote].

    Exemplos:

    • solicitações 2.28.1

    • solicitações de

  7. Clique em Adicionar.

  8. Os pacotes normalmente suportam conectividade com a fonte de dados para fazer write-back de alterações de dados, suportam manipulações com MicroStrategy APIs ou conectar-se a outros aplicativos, como o Microsoft Teams. Clique no link Pypi para encontrar o nome exato do pacote e a versão para download.

  9. Clique Adicionar para salvar o tempo de execução e aguardar a conclusão da instalação. Atualize a página para verificar o status.

Algumas dicas úteis:

  • Certifique-se de pressionar Enter após inserir cada campo (acesso à rede, nome do pacote e versão) antes de clicar Adicionar ou OK para confirmar a alteração.

  • Você pode adicionar mais de um pacote a um tempo de execução.

  • Após a migração do objeto de um ambiente para outro, adicione novamente os pacotes nos novos ambientes para preparar o tempo de execução. O tempo de execução não funciona sem esta etapa adicional.

  • Por padrão, Todos tem um Visualizar ACL para um tempo de execução.

Crie um script Python personalizado

Configure usuários com os seguintes privilégios:

  • Usar scripts Python

  • Certificar scripts Python

  • As seguintes ACLs são recomendadas:

    • Os scripts de leitura exigem uma ACL de leitura nos scripts.

    • Os scripts de atualização exigem uma ACL de gravação nos scripts.

    • Os scripts de execução exigem uma ACL de execução em scripts e uma ACL de execução em tempos de execução.

  1. Abra a estação de trabalho e conectar-se a um ambiente.
  2. No painel de navegação, clique em ao lado de Roteiros.

  3. Abra as configurações de script para alterar o tipo de script para Transação e selecione o tempo de execução Python apropriado.

  4. Comece a criar um script selecionando um modelo da galeria e modificando-o ou comece do zero.

  5. As variáveis em um script normalmente são mapeadas para colunas na grade do painel. Ao definir variáveis, o Coluna parâmetro está ativado por padrão. Desative esta opção para variáveis não transacionais, como se a variável for para uso interno, como conectar-se a uma fonte de dados.

  6. Para a senha de conexão da fonte de dados, selecione a variável de tipo não transacional, Segredo.

  7. Considere incluir uma variável de prompt do sistema para registrar os logins dos usuários e ver quem está fazendo alterações nos dados.

  8. Os tipos de ação padrão são selecionar, inserir e atualizar. Para criar novos tipos de ação além destes, como combinar seleção e atualização, selecione Tipo de transação em Tipo de variável. Em um único script de transação Python, apenas uma variável pode ser definida como Tipo de transação.

  9. Para uma variável mapeada para a chave primária de uma tabela em uma fonte de dados de write-back, você não deseja que o consumidor modifique a chave primária. Nesta situação, você deve desabilitar o Editável parâmetro.

  10. Para colunas na fonte de dados que não permitem valores NULL, marque esta variável como necessária ativando a opção Obrigatório parâmetro.

  11. Se uma variável não for Obrigatório, os autores podem escolher se uma coluna pode ou não ficar vazia, dependendo do que o banco de dados permitir.

  12. Para colunas que você deseja que os usuários editem, ative a opção Editável parâmetro.

  13. Somente scripts Python de transação certificados podem ser usados para as operações de transação, portanto, você deve certificar o script quando ele estiver pronto para uso em produção. O grupo de usuários que consumirá grades transacionais do Python deve ter a View ACL para este script.

Melhores Práticas

  • Aprenda com um modelo de código de exemplo.

  • Para fontes de dados que suportam transações atômicas, escolha o pacote para suportar a transação atômica ao preparar o tempo de execução. No script Python, adicione seções para lidar com transações atômicas.

  • Use consultas parametrizadas quando aplicável. As consultas executadas dessa forma não são suscetíveis a ataques de injeção porque a consulta e os parâmetros são enviados para execução separadamente.

  • Como o criador do script de transação Python e o autor do painel de transação podem não ser a mesma pessoa, garanta a paridade entre o script e o painel. Isso inclui a definição da tabela de origem de dados para write-back, mapeamento de relacionamentos entre as variáveis definidas no script Python e o objeto de grade de transação do painel, qual objeto é editável e assim por diante.

  • Descrições detalhadas do que o script Python suporta (atualizar dados, inserir novos dados, selecionar linhas para excluir ou inserir em uma tabela diferente, enviar mensagens do Microsoft Teams, enviar e-mails e assim por diante) devem ser incluídas no script. O autor do painel pode recuperar a descrição do script Python no Editor do painel. Somente uma pessoa com privilégios e ACLs adequados pode abrir o script Python

Configure o painel com o script Python associado

Privilégios necessários

Para configurar transações em um painel:

  • Transação de configuração da Web

  • Usar scripts Python

  • Visualizar ACL para o script associado

Para configurar os usuários para consumir o painel e enviar alterações:

  • Executar transação

  • Visualizar ACL para o script

Outros itens básicos necessários Library Privilégios da Web:

  • Usar Library Rede

  • Web criar painel

  • Painel de edição da Web

  • Painel de salvamento na Web

  • Painel de execução na Web

  • Criar objetos de aplicativo

  1. As transações baseadas em Python são projetadas para funcionar com grades modernas. Selecione uma grade, abra o painel Formato e clique em Opções de transação .

  2. Clique Usar Python.

  3. Selecione os tipos de ação e forneça um nome de ação personalizado, um nome de botão e assim por diante.

    • Os tipos de ação são as ações que você deseja permitir que o consumidor execute neste painel. Pelo menos um tipo de ação deve ser selecionado.

    • Dê um nome significativo à ação, descreva o que a ação pode fazer e dê um nome ao botão.

      Exemplo:

      • Nome da ação Atualizar idade do cliente

      • Descrição Atualize a idade do cliente na coluna Idade do Cliente.

      • Nome do botão Enviar

    • Você pode combinar ações. Por exemplo, você pode modificar dados existentes e adicionar linhas adicionais de dados ao mesmo tempo. Escolha nomes de ações que reflitam esse comportamento adequadamente.

  4. Clique Escolha o script Python para recuperar todos os scripts Python de transação do projeto em que o painel está. Por padrão, apenas scripts certificados aparecem. Use o filtro para navegar na lista e encontrar o script de destino.

  5. Após selecionar um script, a seção de mapeamento aparece. O nome do script selecionado aparece com um ícone de informações para mostrar a descrição do script. No canto superior direito desta seção, é fornecido um ícone para substituir o script selecionado e um ícone para atualizar a lista de scripts a partir dos metadados. Variáveis que requerem dados são marcadas com um asterisco (*). Nestes casos, o mapeamento deve ser fornecido para salvar a configuração.

    Tipos de ação

    • Permitir modificação de dados na grade O Editável opção está habilitada. Os autores podem selecionar a variável que desejam que os consumidores possam modificar.

    • Adicionando dados à grade O Nova entrada de dados opção está selecionada e você pode selecionar as variáveis que deseja que os consumidores possam inserir.

    • Tome medidas nas linhas selecionadas O Editável e Nova entrada de dados as opções estão desabilitadas. Nestes casos, o número da linha é passado para o script. O script determina qual ação será executada nessa linha. Por exemplo, você pode usar esta ação para excluir uma linha da grade.

  6. Para configurar os controles de entrada, consulte Transações em planilhas.

  7. Clique para adicionar mais ações e configurar a mensagem a ser exibida após o envio.

  8. Clique Feito para concluir sua transação e Salvar o painel.

Melhores Práticas

  • Dependendo da fonte de dados para write-back de alterações de dados, geralmente aquela baseada em SQL é a primeira escolha. Se a fonte de dados for serviços da Web, Python será a opção preferida.

  • Para fluxos de trabalho mais complexos que combinam alterações de dados com ações como envio de e-mails, atualização do Slack e assim por diante, use scripts Python.

  • Recomendamos um relacionamento de mapeamento individual entre a variável de script e os objetos de grade para facilitar a configuração do controle de entrada e para definir se o objeto de grade é editável ou não.

Use transações Python para operações de dados

  1. A edição em linha não é suportada para transações baseadas em Python, portanto, todas as modificações de dados são feitas em modo em massa. Clique ícone de lápis para começar a modificar os dados.

  2. Tanto a seleção quanto a modificação de dados são suportadas para uma única ação.

  3. Para ações que suportam seleção, modificação ou inserção de dados, clique em Adicionar dados para fornecer novos dados. Quando terminar, clique em Adicionar.

  4. Clique em Enviar.

Recomendações de configuração do sistema

Ambientes em contêineres permitem executar scripts diretamente em um MicroStrategy ambiente sem a necessidade de deixar um computador ligado. Você pode salvar seus scripts nesses ambientes e acessá-los em qualquer lugar do Workstation, bem como fornecer acesso a outros administradores. Atualmente, o suporte à execução de scripts no lado do servidor está ativado apenas para ambientes em contêineres.

Você pode melhorar o desempenho das solicitações de transação do Python das seguintes maneiras:

Ajustar o tamanho da instância de tempo de execução

  1. No painel de navegação, clique em Monitores.

  2. No painel esquerdo, clique em Tempo de execução.

  3. Na grade, clique com o botão direito no tempo de execução e escolha Editar.

  4. Ajusta a Tamanho da instância de tempo de execução.

Por que devo alterar o tamanho do tempo de execução?

O tamanho do tempo de execução padrão pode não ser suficiente para as necessidades de memória do seu script. Ao aumentar o tamanho do tempo de execução, você pode garantir que seu script tenha memória suficiente para ser executado sem erros ou travamentos. Por exemplo, ao usar um script para criar uma fonte de dados, é melhor usar tempos de execução maiores, pois um script usado para criar tabelas pode carregá-los na memória.

Quais são os riscos envolvidos no uso de um ambiente grande?

Um grande ambiente em contêiner também pode consumir muita memória, o que pode levar a problemas de desempenho na máquina host e potencialmente causar falha no contêiner. MicroStrategy contêineres têm memória limitada para tempos de execução do Python. Atualmente, isso está limitado a 6 vCPU e 20 GB de memória para ambientes em contêineres. É importante avaliar regularmente o tamanho e a complexidade do seu ambiente de contêiner e garantir que ele esteja alinhado aos seus requisitos de desempenho, segurança e manutenção. É melhor executar scripts administrativos em tempos de execução menores para reduzir o uso de recursos.

Ajustar as configurações de tempo de execução

  1. No painel de navegação, clique em Monitores.

  2. No painel esquerdo, clique em Tempo de execução.

  3. Na grade, clique com o botão direito no tempo de execução e escolha Obter informação.

  4. No painel esquerdo, clique em Todas as configurações.

  5. Ajuste as configurações de tempo de execução.

    Tempo limite do script (seg) Configuração de tempo limite para execução de script Python. A configuração padrão é 600 segundos.

    Número da instância do pod padrão A contagem padrão de uma instância de execução do Python em cache.

    Instância de execução Python Se um script Python estiver sendo executado com base em um tempo de execução Python, uma instância de execução Python será criada e poderá ser armazenada em cache de acordo com o Número da instância do pod padrão e Número máximo de instâncias do pod (limites totais de scripts de execução) configurações.

    Número máximo de instâncias do pod (limites totais de script de execução) O número máximo de instâncias de execução do Python que podem ser criadas com base no tempo de execução.

Número da instância do pod padrão do ambiente de execução Número máximo de instâncias do pod em tempo de execução (limites totais de scripts de execução) Recomendação
1 1 Para usuários casuais com baixo uso e simultaneidade que são sensíveis ao tempo de resposta. Como o pod executor Python está sempre ativo, o tempo de aquecimento do pod pode ser reduzido, mas o custo geral é maior. Um pod está ligado o tempo todo.
1 N>1 Para usuários casuais com baixo uso e alguma simultaneidade, mas não muito sensíveis ao tempo de resposta. Como um pod executor Python está sempre ativo e até N-1 pods podem ser ativados mediante solicitação, essa configuração pode suportar mais casos de simultaneidade. Alguns usuários apresentam um bom tempo de resposta; outros podem experimentar o tempo de alerta do pod. Um pod está sempre ativo e até N-1 pods podem ser iniciados e ativados em um horário específico e depois interrompidos após ficarem inativos por mais de dois minutos
X>0 = Número da instância do pod padrão Para usuários sérios com uso mais simultâneo e sensíveis ao tempo de resposta. O preço é mais alto, pois haverá X pods de tempo de execução sempre ativos.

Limitações conhecidas

Desempenho

A lógica atual para a execução remota do Python é:

  • A instalação do pacote personalizado para um tempo de execução específico ocorre nos volumes persistentes, quando o pod executor é gerado e o volume persistente é montado no contêiner do executor Python.

  • O processo principal do serviço Python é responsável pelo tratamento de solicitações e respostas. A execução real do script é iniciada pelo subprocesso. Como resultado, cada vez que os scripts Python são executados, o interpretador Python tenta carregar o pacote usado na memória do subprocesso.

Como ainda há alguns atrasos quando o contêiner importa os dados no volume persistente, mesmo que o pod já esteja aquecido, há algum custo de tempo extra para o subprocesso executar os scripts.

Conexões de fontes de dados

Para fontes de dados locais privadas, se não houver conexão de rede entre o contêiner do pod do executor Python e a fonte de dados privada, as transações Python não serão suportadas. Em geral, podem ser utilizadas fontes de dados com pontos finais públicos.

Artigos relacionados

KB486432: Melhores práticas para mapear variáveis de script Python e campos de grade para configurações de transação Python

KB486431: Sincronize modificações de script Python com configurações de transação Python em um painel