Do que se trata o artigo:

Neste artigo veremos como funciona a solução de Processamento de Eventos Complexos (CEP) presente no SQL Server 2008 R2, chamada de Microsoft StreamInsight.


Para que serve:

Identificar e desenvolver soluções de processamentos de dados com baixa latência, a partir de sistemas que enviam milhares de eventos por segundo.

Em que situação o tema útil:

Em cenários onde precisamos tomar decisões rápidas a partir de dados provenientes de outros sistemas, recebidos na forma de mensagens ou eventos, em grandes volumes. O processamento destas mensagens pode envolver consultas a um banco de dados carregado em memória.

O volume de dados gerenciado por administradores de banco de dados cresce a cada dia. Junto com o crescente volume de dados também ocorre uma revolução a respeito de como os dados são utilizados, analisados e monitorados. Fala-se muito na Gestão da Informação ao invés de gestão dos dados, já que o que chamamos de “dados” há tempos é percebido pelas empresas como um ativo valioso na tomada de decisão e em seu planejamento estratégico.

A análise da informação presente em um banco de dados pode dizer às áreas de negócio o comportamento de nossos clientes, oferecendo novas oportunidades de vendas, por exemplo, assim como possibilidades de fraude e vários outros aspectos de relevância na tomada de decisão.

Estes tipos de cenários são explorados hoje em sistemas clássicos de Business Intelligence (BI). Quando uma análise precisa ser feita em tempo real, de forma complexa e na faixa de dezenas de milhares de eventos por segundo, utilizamos sistemas chamados de Processamento de Eventos Complexos. O objetivo deste artigo é explorar o Microsoft StreamInsight, a nova solução para Processamento de Eventos Complexos presente no SQL Server 2008 R2.

O que significa Processamento de Eventos Complexos (CEP)?

Sistemas de BI entregam, geralmente, análises baseadas em dados históricos. Claro que podemos ter um BI em “tempo real” com a finalidade de se monitorar métricas de negócio, mas como proceder quando se precisa analisar um volume grande de dados, no momento em que eles são gerados, com exigência de um tempo de resposta muito baixo? Como exemplo, digamos que sejam recebidas cinco mil transações financeiras por segundo em um banco de dados e se deseje tomar uma ação, dependendo dos valores submetidos pelas aplicações. Embora aplicações transacionais comuns possam gerenciar grandes volumes de dados, tais aplicações não são apropriadas para a análise de eventos gerados pelas suas operações transacionais. Estas análises podem ser categorizadas em um cenário chamado de Processamento de Eventos Complexos (ou CEP, do inglês Complex Event Processing, como diremos daqui em diante).

Outras utilizações mais sofisticadas de sistemas de CEP envolvem a análise de múltiplos eventos, levando-se à conclusão de que uma situação esteja iminente, ou de que já tenha ocorrido. Como exemplo, podemos dizer que o volume de negociação dos papeis de uma determinada empresa na bolsa de valores, combinado a um número acentuado de ocorrências do nome desta em feeders de notícias, estejam indicando uma tendência de crescimento, ou de queda, tomando a decisão de se disparar um alarme a usuários interessados. Tal decisão estaria levando em consideração a análise de múltiplos eventos interceptados pelo seu sistema, muitas vezes utilizando lógica complexa e tomadas de decisão. Este é o tipo de problema que sistemas de CEP procuram resolver.

Como é de se esperar, sistemas de CEP geralmente se integram a processos atualmente presentes em organizações, sejam eles expressados em outro sistema na forma de BPM (Business Process Management ...

Quer ler esse conteúdo completo? Tenha acesso completo