MicroStrategy ONE

Criar um painel de transação habilitada para Python

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

  • Certificar-se de que o ambiente é compatível com o uso do executor Python

    Esse recurso é compatível com a plataforma do ambiente Microstrategy Cloud. Contato Suporte de estratégia para habilitar esse recurso.

  • Escolha uma fonte de dados com um endpoint público para responder por escrito sobre as alterações nos dados

  • Atualize os metadados para a versão mais recente

  • Criar um painel habilitado para transação

  • Crie um tempo de execução personalizado e faça download de 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

Primeiros passos por criando um painel de transação habilitada e siga as etapas abaixo.

Criar um tempo de execução personalizado

O privilégio Gerenciar tempos de execução é necessário. Usuários com esse privilégio podem baixar pacotes de terceiros, portanto, somente analistas controlados devem ter esse privilégio.

Ver Criar e editar tempos de execução do Python para obter mais informações.

Usuários com o privilégio Gerenciar tempo de execução podem visualizar e gerenciar tempos de execução existentes e criar novos tempos. Todos os ambientes têm 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 pode se conectar, pacotes instalados nele, além de escolher um tamanho para a execução do script. O tamanho da instância do 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. Abrir Workstation e conectar-se a um ambiente de .
  2. No painel de Navegação, clique em Monitores de .

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

    Os tempos de execução padrão incluem as versões mais recentes de pacotes Python e mstrio, além de um tamanho de instância padrão e uma configuração de acesso de rede padrão. Os usuários podem usar o pacote mstrio para acessar MicroStrategy 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 desejar 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 de .

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

  5. Em Endereço de rede, entre na rede com acesso permitido desde o 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 em 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

  7. Clique em Adicionar.

  8. Os pacotes geralmente suportam conectividade com a fonte de dados para responder por escrito alterações nos dados, suportam manipulações com MicroStrategy APIs, ou conecte-se a outros aplicativos, como o Microsoft Teams. Clique no link do Pypi para descobrir o nome exato do pacote e a versão para baixar.

  9. Clique em 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 de rede, nome do pacote e versão) antes de clicar em 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 de objetos 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 essa etapa adicional.

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

Criar um script Python personalizado

Configure usuários com os seguintes privilégios:

  • Usar Python de scripts

  • Certificar scripts Python

  • As seguintes ACLs são recomendadas:

    • Scripts lidos exigem uma ACL de leitura nos scripts.

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

    • Executar scripts exige uma Executar ACL em scripts e uma Executar ACL em tempos de execução.

  1. Abrir Workstation e conectar-se a um ambiente de .
  2. No painel de Navegação, clique em ao lado de Scripts de .

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

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

  5. Variáveis em um script normalmente são associadas a colunas na grade do painel. Ao definir variáveis, o Coluna O parâmetro está ativado por padrão. Desative isso para variáveis não transacionais, como se a variável fosse 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 de .

  7. Considere a inclusão de 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 desses, como a combinação de seleção e atualização, selecione Tipo de transação em Tipo de variável de . Em um único script de transação Python, somente uma variável pode ser definida como Tipo de transação de .

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

  10. Para as colunas na fonte de dados que não permitem valores NULL, marque essa variável conforme exigido ativando a 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 ser deixada em branco, dependendo do que o banco de dados permite.

  12. Para as colunas que você deseja que os usuários editem, ative 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 na produção. O grupo de usuários que consumirá planilhas transacionais do Python deve ter a ACL View para esse script.

Práticas recomendadas

  • 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 com parâmetros quando aplicável. As consultas executadas dessa maneira 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 do 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 fonte de dados para responder por escrito, relações de mapeamento entre as variáveis definidas no script Python e o objeto da grade de transação do painel, cujo 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 de painel. Somente uma pessoa com os privilégios e ACLs apropriados pode abrir o Python scr

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 Python de scripts

  • Visualizar ACL do script associado

Para configurar os usuários para consumirem o painel e enviarem alterações:

  • Executar transação

  • Visualizar ACL para o script

Outros privilégios básicos do Library Web necessários:

  • Usar Library Web

  • Criar painel de controle na web

  • Painel de edição na web

  • Painel de salvamento na web

  • Painel de execução na web

  • Criar objetos de aplicativo

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

  2. Clique em Usar Python de .

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

    • 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 ela 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 os dados existentes e adicionar linhas de dados ao mesmo tempo. Escolha nomes de ação que reflitam esse comportamento.

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

  5. Depois de selecionar um script, a seção de associação é exibida. 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 dos metadados. Variáveis que requerem dados são marcadas com um asterisco (*). Nesses casos, o mapeamento deve ser fornecido para salvar a configuração.

    Tipos de ação

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

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

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

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

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

  8. Clique em Concluído para concluir a transação e Salvar o painel.

Práticas recomendadas

  • Dependendo da fonte de dados para responder por escrito as alterações de dados, geralmente a baseada em SQL é a primeira escolha. Se a fonte de dados forem serviços da Web, Python será a opção preferencial.

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

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

Usar transações do Python para operações de dados

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

  2. Tanto a seleção quanto a modificação de dados são compatíveis com uma única ação.

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

  4. Clique em Enviar.

Recomendações de configuração do sistema

Ambientes conteinerizados permitem que você execute scripts diretamente em um MicroStrategy ambiente sem a necessidade de deixar um computador funcionando. Você pode salvar seus scripts nesses ambientes e acessá-los em qualquer lugar dentro do Workstation, além de fornecer acesso a outros administradores. Atualmente, o suporte para execução de script do lado do servidor está ativado somente para ambientes em contêineres.

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

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

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

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

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

  4. Ajustar o Tamanho da instância do tempo de execução de .

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ê garante que o script tenha memória suficiente para ser executado sem erros ou falhas. 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 poderia carregá-las 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 possivelmente causar a falha do contêiner. MicroStrategy os 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 certificar-se de que ele está alinhado com 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 configurações de tempo de execução

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

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

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

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

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

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

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

    Instância de execução do Python Se um script Python estiver em execução 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 padrão da instância do pod e Número máximo de instâncias do pod (limite de total de scripts executados) settings.

    Número máximo de instâncias do pod (limite de total de scripts executados) 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 no tempo de execução Número máximo de instâncias do pod em tempo de execução (limite de total de scripts executados) 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 de execução do Python está sempre ativo, o tempo de aquecimento do pod pode ser reduzido, mas o custo geral é maior. Um pod está ativado 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 de executor do Python está sempre ativo e até N-1 pods podem estar ativos mediante solicitação, essa configuração pode dar suporte a mais casos de simultaneidade. Alguns usuários têm um bom tempo de resposta; outros podem enfrentar o tempo de alerta do pod. Um pod está sempre ativo e até N-1 pods podem ser iniciados e em um horário específico e depois interrompidos após ficarem ociosos por mais de dois minutos
X>0 = Número padrão da instância do pod Para usuários sérios com mais uso simultâneo e sensíveis ao tempo de resposta. O preço é mais alto, pois haverá X pods de tempo de execução ativos o tempo todo.

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 está nos volumes persistentes, quando o pod do executor é gerado, e o volume persistente é montado no contêiner do executor do Python.

  • O processo principal do serviço Python é responsável pela manipulação de solicitação e resposta. A execução de script real é ativada pelo subprocesso. Como resultado, sempre 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 de persistência, mesmo que o pod já tenha sido aquecido, haverá 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 de executor do Python e a fonte de dados privada, as transações do Python não serão compatíveis. Em geral, fontes de dados com pontos de extremidade públicos podem ser usadas.

Artigos relacionados

KB486432: Práticas recomendadas para associar variáveis de script Python e campos de planilha para configurações de transação Python

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