Como escolher a abordagem correta para armazenar seus dados de medição

Visão geral

Sua empresa investe milhares, provavelmente até milhões de reais em equipamentos para coleta de dados, pois esses mesmos dados contêm a chave para a inovação de seus produtos. Para cada tendência que você identifica com base em seus dados, você pode descobrir com maior rapidez como fornecer um novo recurso ou produto, a fim de capturar uma nova parcela do mercado dentro desse ambiente global e extremamente competitivo. Porém, deslocar-se rapidamente dos dados brutos para resultados compreensíveis é um desafio. Na verdade, de acordo com uma pesquisa conduzida pela National Instruments, os dados são o aspecto mais difícil de trabalhar com as ferramentas de software atuais. De acordo com engenheiros e cientistas, trabalhar com dados é ainda mais difícil que manter um código herdado ou programar um sistema completamente novo para aquisição de dados. Agora, para ser franco, trabalhar com dados é um assunto genérico que abrange muitos aspectos diferentes. Os problemas que você enfrenta originam-se de todas as fases do projeto da aplicação de medição e trazem consigo diversas preocupações. Qual a quantidade de dados que você deve coletar durante a fase de testes? Qual formato de arquivo será melhor para utilizar? O que você fará com os dados depois de coletá-los? Contudo, para muitos sistemas de medição, escolher a abordagem correta para o armazenamento de dados e lidar com essas questões é algo posterior. Engenheiros e cientistas comumente acabam selecionando a estratégia de armazenamento que mais facilmente atende às necessidades da aplicação no seu estado atual, sem considerar as necessidades futuras. Além disso, as escolhas do formato de armazenamento podem causar, ao longo do tempo, um grande impacto na eficiência geral do sistema de aquisição, assim como na eficiência do pós-processamento dos dados brutos. Gerenciar e pós-processar os dados se torna especialmente problemático ao considerar que estamos coletando os dados a uma taxa que segue a Lei de Moore. Graças à crescente velocidade dos processadores e suas capacidades de armazenamento, o custo com o armazenamento de dados está caindo exponencialmente e o mundo está gerando dados suficientes para dobrar todo o conjunto a cada aproximadamente dois anos. Escolher a abordagem correta e que seja flexível o suficiente para se adaptar às suas necessidades de armazenamento em um mundo em constante evolução não é uma tarefa fácil. Este artigo sugere algumas dicas úteis para ajudá-lo a começar e gerenciar apropriadamente os dados para sua aplicação.

Conteúdo

Selecione um formato de arquivo apropriado

O primeiro passo para se obter uma solução coesa para gerenciamento de dados é garantir que eles sejam armazenados da maneira mais eficiente, organizada e escalável possível. Todos os dados são frequentemente armazenados sem sua descrição, em formatos inconsistentes e espalhados em matrizes de computadores, o que cria um grande cemitério de informação e torna extremamente difícil localizar um conjunto particular de dados e derivar as decisões a partir dele.

Dependendo da aplicação, você pode priorizar certar características ao invés de outras. Os formatos comuns para armazenamento, como ASCII, binário e XML possuem vantagens e desvantagens em diferentes áreas.

 

Arquivos ASCII

 

Muitos engenheiros preferem armazenar os dados utilizando arquivos no formato ASCII (American Standard Code for Information Interchange), por causa da fácil intercambiabilidade e leitura desses arquivos. Porém, os arquivos ASCII possuem diversas desvantagens, incluindo espaço maior ocupado em disco, o que pode ser um problema quando o espaço de armazenamento é limitado (por exemplo, armazenamento de dados em um sistema distribuído). Ler e escrever os dados com arquivos ASCII pode ser significativamente mais lento quando comparados a outros formatos e, em muitos casos, a velocidade de escrita de um arquivo ASCII não é adequado para as velocidades de aquisição, o que pode resultar em perda de dados.

 

 

Figura 1. Arquivos ASCII são fáceis de compartilhar, mas podem ser muito lentos e pesados para muitas aplicações.

Arquivos binários

 

Outra abordagem para armazenamento, que é quase o extremo oposto do ASCII, ocorre com os arquivos binários. Em contraste com os arquivos ASCII, os arquivos binários ocupam um espaço significativamente menor e podem ser transferidos para o disco a taxas extremamente altas, tornando-os ideais para alta contagem de canais e aplicações de tempo real. Uma desvantagem de utilizar arquivos binários é a dificuldade para leitura, o que complica a intercambiabilidade entre usuários. Os arquivos binários não podem ser abertos imediatamente por programas comuns; eles precisam ser interpretados por um aplicativo ou programa especial. Aplicações diferentes podem interpretar os valores como cores. Para compartilhar arquivos com colegas, você deve fornecer a eles uma aplicação que interpreta corretamente o seu arquivo binário específico. Além disso, se você realizar alterações em como os dados são escritos na aplicação de aquisição, essas mudanças também devem refletir em como a aplicação está lendo os dados. Isso tem grande possibilidade de causar problemas com controle de versões em longo prazo e dores de cabeça, o que pode resultar em perdas de dados no final.

 

Figura 2. Arquivos binários são benéficos para aplicações de alta velocidade e espaço limitado, mas podem causar problemas de intercambiabilidade.

 

 

Arquivos XML

 

Ao longo dos últimos anos, o formato XML vem ganhando popularidade, devido à sua capacidade para armazenar estruturas complexas de dados. Com arquivos XML, você pode armazenar os dados e a sua formatação, juntamente com os valores brutos de medição. Com a flexibilidade do formato XML, você pode armazenar informações adicionais com os dados, de uma forma bem estruturada. O XML também é intercambiável e legível pelo ser humano. De maneira similar ao ASCII, eles podem ser abertos em diversos editores de texto comuns, assim como navegadores capazes de ler arquivos XML, como o Microsoft Internet Explorer. No entanto, em seu formato bruto, os arquivos XML incluem tags dentro do arquivo que descreve as estruturas. Essas tags também aparecem quando esses arquivos são abertos nas aplicações, o que quase limita a legibilidade, pois você precisa ser capaz de ler essas tags. A desvantagem do formato de arquivo XML é que ele ocupa um espaço extremamente maior, se comparado com outros arquivos, e não pode ser utilizado para transferência de dados direto para o disco. Além disso, um inconveniente de se poder armazenar essas estruturas complexas é que elas podem exigir um planejamento considerável ao se projetar o layout ou esquema das estruturas XML.

Figura 3. Os arquivos XML podem ajudar a definir estruturas complexas, mas são significativamente mais pesados e lentos que outros formatos.

 

Arquivos de bancos de dados

 

Os arquivos de banco de dados são compostos por uma série de tabelas, estruturadas com linhas e colunas, e as informações podem ou não estar conectadas entre as tabelas. A rastreabilidade torna os arquivos de banco de dados bem vantajosos; porém, eles podem não ser práticos de utilizar em aplicações de medição temporizada, devido à quantidade de dados adquirida e a necessidade de comprar ou construir uma solução formal para banco de dados por completo. Medições temporizadas fazem com que os bancos de dados fiquem congestionados, o que diminui as respostas às consultas, eliminando o principal propósito dos bancos de dados.

 

Arquivos TDMS

 

Technical Data Management Streaming (TDMS) é um formato de arquivo baseado em código binário, então, ele ocupa pouco espaço em disco e pode transferir dados em altas velocidades. Ao mesmo tempo, os arquivos TDMS contêm um cabeçalho que armazena a descrição, ou atributos, juntamente com os dados. Alguns atributos, como nome do arquivo, data, e local são armazenados automaticamente; porém, você pode também adicionar facilmente seus próprios atributos. Outra vantagem do formato de arquivo TDMS é a hierarquia de três níveis já embutida: nível de arquivo, grupo e canal. Um arquivo TDMS pode conter um número ilimitado de grupos, e cada grupo pode conter um número ilimitado de canais. Você pode acrescentar atributos a cada um desses níveis, descrevendo e documentando seus dados de teste para melhor compreensão. Essa hierarquia cria uma organização inerente dos seus dados de teste.

Tabela 1. O formato de arquivo TDMS combina os benefícios de diversas opções de armazenamento de dados em um único formato de arquivo.

 

Transfira com eficiência os dados para arquivo

 

Quanto mais frequentemente você escreve os dados em arquivo, maiores são as chances de o processador não conseguir suportar essa tarefa. Para combater isso, você precisa arquitetar seu programa para tirar proveito da memória onboard disponível, criando um buffer temporário. Você pode, então, esvaziar periodicamente o buffer, transferindo todos os dados para o disco de uma única vez, um processo às vezes chamado de flushing (limpeza) do buffer.

Com essa abordagem, você pode minimizar o tempo de processamento, salvando os dados periodicamente em partições. Por exemplo, adquirir a 60 kB/s e tentar salvar cada ponto individual direto em arquivo não é um aproveitamento eficiente dos recursos do processador. Ao invés disso, se você separar um buffer FIFO de 10 kB da sua memória onboard, então você apenas terá que descarregar os dados a cada 16 ms, a fim de continuar com a aquisição. Utilizar essa abordagem permite que o processador tenha tempo livre entre as tarefas de escrita para gerenciar outras tarefas.

 

Gerencie o espaço do disco rígido

 

Escolher o formato de arquivo correto também é um item crucial para transferir os dados de maneira eficiente. O grande espaço exigido pelos arquivos ASCII os torna menos adequados para aplicações que exigem armazenamento de dados inline. No formato ASCII, cada caractere ocupa oito bits (um byte) da memória do sistema. Então, o número 123456789 requer nove bytes de memória. Nos formatos binário e TDMS, o número completo é representado por um conjunto de uns e zeros. Assim, nesse caso, o número 123456789 é representado como 111010110111100110100010101, o que requer apenas 27 bits (cerca de quatro bytes) de memória.

Uma diferença de cinco bytes pode parecer insignificante, mas, se você ir além e considerar um arquivo que contém 100.000 números com nove dígitos, um arquivo ASCII ocuparia cerca de 1,04 MB, enquanto que um arquivo binário/TDMS ocuparia apenas 390 kB para o mesmo conjunto de dados. Essa é uma economia significativa em espaço de disco, considerando ainda que um MB é uma quantidade relativamente pequena para um arquivo de dados.

 

Analise e relate os resultados

 

Uma preocupação crescente quando ao escolher as ferramentas para análise e geração de relatório sobre os dados é o tamanho e a velocidade dos dados que elas podem processar. Você está coletando mais dados de diversas localidades de maneira mais rápida do que já foi feito antes. Se as ferramentas que você utiliza diariamente não podem suportar essas novas tendências ou ler os arquivos de dados que você salvou, então, você possui mais dados do que nunca sem nenhuma ferramenta eficiente para analisá-los. As ferramentas para análise e geração de relatórios que foram criadas para análises financeiras não são apropriadas para aquisição de dados e ocasionam muitas limitações frustrantes. Se você está tentando manipular ou correlacionar grandes conjuntos de dados, então seria muito benéfico utilizar as ferramentas apropriadas para grandes conjuntos de dados. Sem uma análise apropriada dos dados, você perceberá que realizar qualquer análise e gerar qualquer relatório para compartilhar os resultados será um grande problema de tempo, ou você não será capaz de analisar e gerar relatórios graças aos extremos volumes de dados.

 

Garanta o sucesso da sua aplicação com as estratégias corretas para armazenamento de dados

 

O processo de armazenamento dos dados de medição envolve muitas considerações complexas que são vitais para o sucesso da sua aplicação. Falhar ao escolher as estratégias corretas para armazenamento dos dados pode causar estouro de memória (overflow), sobrecarga do processador e arquivos de dados inutilizados ou sem sentido real. Para evitar esses problemas, você precisa prever corretamente as necessidades de memória da sua aplicação e tomar decisões inteligentes sobre o método que irá usar para armazenar os dados, o formato de arquivo, o modo como organizará seus dados nos arquivos e o tipo de sistema que é mais ideal para você continuar executando sua aplicação.

 

Recursos adicionais

Aprenda mais sobre o DIAdem para ajudar a tomar decisões baseadas em conhecimento real a partir dos dados brutos.

Aprenda mais sobre a estrutura de arquivo Technical Data Management Streaming (TDMS).