segunda-feira, 10 de junho de 2013

Banco de Dados Relacional ou Historiador em Tempo Real para registrar dados de processo?

por Robert McIlvride, Cogent Real-Time Systems Inc.

Alguns anos atrás, quando morava em uma parte do mundo onde os computadores pessoais eram um fenômeno relativamente novo, eu estava em um escritório observando uma secretária ocupada digitando em seu novo PC. Ela estava emocionada de ter essa ferramenta poderosa para usar. "Olha!" ela disse, emocionada. "Agora eu posso escrever e corrigir o meu trabalho tão facilmente!" Eu olhei para a tela, e tive de sorrir. Ela estava redigindo uma carta inteira dentro de uma única célula de uma planilha do Excel. 

O que determina a ferramenta certa para o trabalho? Para aquela secretária, a ferramenta correta era a única que ela sabia usar. Mas qual é a ferramenta certa para registrar dados de um aplicativo de controle de processo? Algumas vezes, um arquivo CSV é tudo que se faz necessário. Às vezes, o Excel atende à necessidade. Muitas vezes, porém, os engenheiros e integradores de sistemas precisam usar um banco de dados relacional ou um historiador em tempo real para registrar de forma permanente os dados do processo.
Bancos de dados relacionais têm a vantagem de disponibilidade e familiaridade. SQL Server, MySQL, Oracle, ou qualquer outro banco de dados relacional, incluindo o Microsoft Access, geralmente já estão instalados na empresa. Eles oferecem uma interface comum,ODBC, e o departamento de TI é familiarizado com eles. Não é surpresa ver bancos de dados relacionais sendo utilizados para registrar dados de processo, especialmente quando as solicitações por dados provêm de gestores familiarizados com este tipo de banco de dados. 

Mas um banco de dados relacional pode não ser a escolha ideal para todas as aplicações de 
controle de processo. Projetado para atender as necessidades de empresas e bancos para 
armazenar dados transacionais, os bancos de dados relacionais são otimizados para a análise de relações complexas entre os dados. Esses bancos de dados concentram a sua capacidade de processamento sobre esses relacionamentos, porque os dados propriamente ditos, são atualizados com pouca frequência, geralmente em termos de segundos, minutos ou horas. Enquanto a capacidade de análise é boa para aplicações de negócios, aplicações de controle de processo, normalmente, não precisam dele. O que elas precisam é de velocidade.


Um historiador em tempo real, por outro lado, é como um gravador de voo para processar dados. Ao invés de relacional, é um banco de dados temporal, que armazena seus registros em um arquivo simples, com apenas o nome, valor, qualidade, data e horário para um ponto de dado. O historiador é projetado para ter velocidade no armazenamento e na recuperação de seus dados, e normalmente consegue processar milhões de transações por segundo. Este tipo de desempenho é importante para processos com variáveis que mudam seus valores diversas vezes por segundo, e onde a captura de todos os eventos no decorrer de um turno de oito horas é vital. 

Apesar das vantagens de desempenho de um historiador em tempo real, algumas empresas optam por utilizar bancos de dados relacionais para registrar os dados de processo. Isso é totalmente compreensível, já que essa é a ferramenta com a qual a equipe de TI e a alta gerência da empresa estão mais familiarizados. Mas há três razões importantes pelas quais essa abordagem pode não ser suficiente.
  1. Um historiador em tempo real registra todas as alterações de valor de um ponto, mesmo quando os valores mudam rapidamente. Utilizando algoritmos de armazenagem altamente eficientes, o conjunto completo de dados pode ser armazenado por longos períodos de tempo. Em um banco de dados relacional, em contrapartida, se faz necessário eliminar alguns ou a maioria dos dados à medida que estão sendo registados, uma vez que não está otimizado para o armazenamento de dados em alta velocidade. Infelizmente, os dados são eliminados independentemente da sua importância. Assim, você pode acabar registrando variações rotineiras e jogando fora eventos não usuais que poderiam conduzir a uma condição de alarme. Além de detectar todas as mudanças, grandes ou pequenas, a capacidade de um historiador em tempo real para um alto volume de dados é útil para detectar tendências sutis que podem aparecer apenas após um longo período de meses ou anos.
  2. Uma grande vantagem de um historiador em tempo real é a sua capacidade nativa para processar as consultas com base no tempo. Por exemplo, talvez seja necessário o desvio padrão de um ponto que muda, em média, 25 vezes por segundo, em janelas de 10 segundos, para os dois últimos minutos. Um bom historiador irá fornecer uma maneira fácil de apresentar tal consulta, e retornará os resultados rapidamente, utilizando muito pouco os recursos do sistema. Consultas pré-construídas normalmente permitem selecionar qualquer período de tempo, desde de alguns segundos até semanas ou mais, e recuperar médias, percentuais de boa e má qualidade, correlações de tempo, regressões, desvios-padrão, e assim por diante. Tudo isso pode ser possível através de consultas SQL em um banco de dados relacional, mas com muito mais esforço de programação e maior utilização de recursos do sistema.
  3. As duas vantagens acima de um historiador em tempo real podem talvez ser melhor apreciadas quando se trabalha com indicadores de tendência em tempo real. Calcular e apresentar uma linha em movimento que se atualiza várias vezes por segundo não exige apenas a capacidade de registrar todos os pontos de dados em tempo real, mas também a de recupera-los rapidamente e repetidamente para a sua apresentação em tempo real. E se um usuário quer avançar e retroceder no tempo através do conjunto de dados, uma vez que o mesmo está sendo armazenado, o historiador tem de ser capaz de gerenciar consultas rápidas e contínuas para o conjunto de dados. Este tipo de tarefa é difícil para um banco de dados relacional de prateleira, a menos que a taxa de atualização da tela seja extremamente lenta. 
Mesmo com esses pontos em mente, há muitas aplicações para as quais o registro de dados de processo em um banco de dados relacional funciona muito bem. Na verdade, às vezes armazenar os dados em um arquivo CSV é suficiente. Para ser justo, estes não são realmente o mesmo nível de equívoco de tecnologia como o de escrever uma carta comercial completa em uma única célula de uma planilha. O integrador de sistemas bem informado ou engenheiro vai entender os valores de cada abordagem, vai olhar para as necessidades do projeto e dos recursos disponíveis, e empregar a ferramenta certa para o trabalho.



____________________________________________________________________________________________
Fundada em 1995, Sistemas de Tempo Real Cogent é líder em integração de dados em tempo real entre Windows, Linux e sistemas QNX. Entre os clientes estão o Banco do Canadá, Cadbury Chocolate e a Agência Espacial Europeia. Cogent utiliza sua experiência em comunicação de dados em tempo real para fornecer a próxima geração de produtos OPC. Para mais informações, entre em contato com a Cogent info@cogent.ca ou visite o web site em www.opcdatahub.com

Traduzido por Exata Sistemas de Automação Ltda, distribuidora exclusiva da Cogent no Brasil. A Exata atua no mercado brasileiro desde 1984 como fornecedora de soluções de automação e de comunicação, com uma equipe altamente qualificada para ministrar treinamento e suporte técnico para as ferramentas da Cogent. Para mais informações, acesse: www.exatasistemas.com.br

Nenhum comentário:

Postar um comentário