fbpx

KNIME: Guia de Boas Práticas para construção de Workflows

KNIME é uma poderosa plataforma de Ciência de Dados com recursos (nodes) para te ajudar em qualquer etapa do seu projeto de Data Science.

Neste guia prático você vai conhecer tudo o que precisa para otimizar, escalar e produtizar seus workflows, implementando as melhores práticas.

Ao aplicar esta série de boas práticas, você vai desenvolver workflows cada vez mais independentes e fáceis de manter.

Sempre que for implementar qualquer workflow procure fazer as seguintes perguntas:

  • Ele foi projetado de forma eficiente?

  • Vai funcionar com dados novos?

  • É escalável?

  • O que acontece em caso de falhas?

  • Alguém será capaz de rastrear um erro facilmente?

  • É seguro?

Essa série de boas práticas vão ajudar a garantir uma resposta positiva a todas estas questões.

KNIME Workflow - As Melhores Práticas

Criar um workflow no KNIME é como contar uma história.

Toda a interface low code da ferramenta proporciona um fácil entendimento do fluxo de trabalho. Por exemplo, onde os dados entram, como são processados e como as saídas são geradas.

Assim como uma boa história, um workflow precisa ser escrito de forma clara e concisa, evitando repetições e fazendo bom uso do espaço. Ou seja, não pode ser nem muito grande e nem muito curto.

Conte sua história através do workflow considerando:

  • Leitura de dados de forma eficiente e sem redundância.
  • Seleção apropriada de nodes
  • Cuidados com otimização, considerando os recursos computacionais
  • Um escopo bem definido para o seu workflow.

Os 4 Pilares de um bom Workflow

Um bom workflow está apoiado em 4 pilares:

  1. Segurança 
  2. Eficiência
  3. Manipulação de Erros
  4. Reutilização

Vamos ver algumas das melhores práticas e dicas em cada uma destas áreas.

1- SEGURANÇA

Considerações de segurança ao se utilizar credenciais no seu workflow

 

BOA PRÁTICA – Não armazene senhas e credenciais em texto simples

Em qualquer ferramenta, nunca é uma boa prática usar variáveis ou strings para armazenar senhas e credenciais de acesso sem o uso de qualquer criptografia.

Temos nodes para diferentes tipos de conexão no KNIME. Nodes para conexão com bancos de dados, ambientes cloud ou conexões rest. Cada um deles possui opções mais seguras de conexão.

A seguir vamos abordar algumas dessas opções e entender quando usar cada tipo.

BOA PRÁTICA – Evite salvar credenciais no node de conexão

Por exemplo, ao utilizar nodes de conexão com bancos de dados, temos a opção de entrada de credenciais diretamente no node, na opção “Username & Password”.

 

Evite fixar suas credenciais diretamente no node. Ao invés disso, utilize os nodes “Credentials Configuration” e “Credentials Widget” para entrar com suas credenciais. Assim, a cada nova abertura do workflow será solicitado novamente as credenciais, evitando o armazenamento fixo das credenciais no workflow.

 

Estes 2 nodes poderão ser utilizados como entrada de credenciais para os nodes de conexão com bancos de dados e nodes REST

Para nodes de conexão com ambiente de cloud, evite salvar credenciais na opção “Node”, que mantém suas credenciais salvas mesmo após fechar e abrir o workflow. 

 

Se for usar o workflow apenas uma vez, procure utilizar a opção de autenticação “Memory”, que não salva senhas e vai se perder após o reset do workflow.

 

Se precisar executar o workflow mais de uma vez, procure utilizar a opção “Custom”, que permite utilizar um arquivo de configuração externo para autenticação.

 

Sempre que possível limite o escopo de execução somente para os serviços que vai precisar.

knime cloud connection

BOA PRÁTICA – Manuseando dados sensíveis

Não salve dados sensíveis juntos com seu workflow. Lembre-se sempre de resetar seus workflows antes de compartilhar, exceto por alguma razão específica.

BOA PRÁTICA – Configurando permissões de acesso no KNIME Server

Se você possui o KNIME Server, então tem em mãos um poderoso recurso de Governança, que são os Controles de Acesso.

No KNIME Server você pode facilmente criar ambientes/pastas privadas ou controlar o acesso de usuários/ grupos de usuários, restringindo projetos, workflows e dados somente para quem tem níveis de permissão adequadas.

2 - EFICIÊNCIA

Essa série de boas práticas serve para escalar os seus workflow, economizando recursos e otimizando processamento e tempo de execução.

BOA PRÁTICA – Remova colunas redundantes e não utilizadas ainda no node de Leitura

Através da aba “transformation” dos nodes de leitura (File Reader, Excel Reader, CSV Reader e outros), você pode excluir informações não utilizadas no momento da leitura.

BOA PRÁTICA – Leia arquivos múltiplos com a mesma estrutura utilizando o mesmo node de leitura através da opção “Files in folder”

Agora os nodes de leitura contém a opção de leitura de vários arquivos dentro da mesma pasta. 

Se os arquivos têm a mesma estrutura (mesmo número de colunas, mesmo tipo de dados e nome de colunas ), então utilize um único node para ler todos os arquivos de uma só vez.

BOA PRÁTICA – Evite ler o mesmo arquivo várias vezes

Evite ler o mesmo arquivo várias vezes ao longo do seu workflow.

Já leu uma vez? Reutilize a mesma entrada.

Organizar o seu workflow com a ajuda de metanodes e components vai ser muito útil nesta hora.

knime evite ler várias vezes o mesmo arquivo sem necessidade
knime otimizando leitura de arquivos

BOA PRÁTICA – Leve sempre em conta a EFICIÊNCIA ao desenhar seu workflow

  • Nem todo tipo de dado usa a mesma quantidade de espaço na memória – strings usam mais espaço que integers.
  • Considere remover colunas constantes quando não são necessárias.
  • Nem toda operação de manipulação tem o mesmo custo computacional. Por exemplo, algumas vezes é melhor utilizar o node “Cell Replacer” do que o node “Joiner” que é mais caro computacionalmente.
  • Remova dados redundantes antes de manipulações pesadas. Por exemplo, antes de executar um Joiner, tente filtrar todas as colunas que não vai precisar, tornando assim o processamento mais leve.
  • Não deixe partes soltas no seu workflow. Por exemplo, fluxos paralelos ou de teste que não estão sendo utilizados no processo.
knime efficient design

BOA PRÁTICA – Monitore o tempo de execução do Workflow

Monitore o tempo de execução de cada parte do seu workflow utilizando o node “Timer Info” durante o desenvolvimento. Este node coleta estatísticas sobre o tempo de execução, ajudando-o a encontrar “gargalos” em partes do seu workflow que merecem ser otimizados.

BOA PRÁTICA – Dividir para conquistar

Crie workflow modulares, quebrando grandes problemas em partes menores. Com a ajuda dos nodes da familia “Workflow Invocation” e “Integrated Deployment”, você poderá organizar e orquestrar uma série de workflows que resolvem partes específicas do problema. Os principais benefícios desta abordagem são:

  • Cada workflow performa uma atividade em particular
  • Múltiplos workflows pequenos podem performar melhor do que um workflow grande.
  • Fáceis de manter
  • Fáceis de testar
  • Fáceis de carregar
  • Fáceis de atualizar.
  • Realizar deploy (Integrated Deployment nodes).
knimw workflow invocation and orchestrator

BOA PRÁTICA – Processamento no Banco de Dados

  • Evite utilizar DB Connection múltiplas vezes para ler do mesmo banco. Reutilize o mesmo conector para ler da mesma fonte.
  • Puxe todo o processamento para o lado do servidor do banco de dados, ao invés de processar localmente na sua máquina
  • Sempre use o node “DB Connection Closer” ao final do processamento com banco.

3 - MANIPULANDO ERROS

BOA PRÁTICA – Use os nodes Try/Catch sempre que necessário

Os nodes Try / Catch contam com várias opções de portas para capturar e tratar diferentes tipos de erros, que podem ocorrer durante o processamento.

knime try catch nodes

BOA PRÁTICA – Notificações em caso de Falha

Você pode utilizar os nodes “Send Email” ou nodes de integração com Slack para receber notificações de qualquer erro que ocorrer durante o processamento.

knime send notifications

BOA PRÁTICA – Reexecução automática em caso de falha

Combine por exemplo, loop recursivos com try/catch para executar novamente partes do seu fluxo em caso de falha.

Estabeleça um delay entre execuções com ajuda do node “Wait”.

knime retries execution

BOA PRÁTICA – Validação de entrada de dados

Tenha certeza que seu processo está utilizando os dados corretos.

Para validar as tabelas de entrada antes de executar qualquer processo, você poderá utilizar os nodes “Table Validador”, e “JSON Schema Validator”

knime table validation nodes

4 - REUTILIZAÇÃO

BOA PRÁTICA – Faça uso de Configuration Nodes ou Widget Nodes

Sempre que possível, faça uso dos nodes da família Configuration e Widget para tornar seu workflow mais flexível.

Assim cada usuário poderá parametrizar o workflow sem precisar alterar  a sua estrutura.

BOA PRÁTICA – Certifique-se que o seu workflow pode funcionar em qualquer lugar

Configure o seu workflow para executar em qualquer lugar, não somente na sua máquina.

Para isso, sempre que possível utilize caminhos relativos ou integre sua solução com ambientes remotos como :

  • Google Drive, 

  • Microsoft Sharepoint, Blob Storage

  • AWS S3 

  • Outros como FTP, e armazenamento compartilhado.

knime file connectors
BOA PRÁTICA – Organização e Documentação
  • Insira anotações nos seus workflows e nodes
  • Encapsule etapas do processo em Metanodes e Components.
  • Reutilize funcionalidades entre seus workflow e com sua equipe utilizando “Shared Components”
  • Padronize o desenvolvimento.

CONCLUSÃO

Neste artigo apresentamos algumas das melhores práticas no desenvolvimento de Workflows no KNIME.

Esperamos que qualquer uma destas boas práticas possam te ajudar a melhorar suas soluções de análise de dados feitos com a ferramenta. 

Sentiu falta de mais alguma dica? Quais boas práticas você também gostaria de compartilhar conosco e com a comunidade?

Deixe seu comentário a seguir e fique atento aos nossos futuros posts aqui no blog e nas redes sociais.

Referência: Webinar: Best practices to build KNIME Workflows pelo time KNIME

Desenvolvido por Natanael Domingos