SETEMBRO, 2010 | SÃO PAULO
CÓDIGO DA SESSÃO: DB202
Microsoft SQL Server 2008 R2
StreamInsight: Tratando
dados em tempo real
Suzi K Suguiyama
Consultora Principal
Microsoft Brasil
Agenda
Introdução
Plataforma Microsoft StreamInsight
Conceitos
Demo
Cenários de Implantação
Edições
Conclusão
4
StreamInsight
Introdução
O que são aplicações orientadas a eventos?
Processamento de eventos complexos (CEP) é o
processamento contínuo e incremental de fluxos
de eventos provenientes de várias fontes, com
base na consulta declarativa e especificações
padrão com latência próxima de zero
5
StreamInsight
Necessidade de uma plataforma orientada
a eventos
Os resultados analíticos precisam refletir as importantes alterações na
realidade do negócio e permitir respostas com latência mínima
Aplicações de BD
Aplicações orientadas a eventos
Modelo de consulta
Ad-hoc queries ou requisições
Contínuas queries permanentes
Latência
Segundos, horas, dias
Milissegundos ou menos
Taxa de dados
Centenas de eventos /seg
Dezenhas de milhares de eventos / seg
ou mais
Consulta semântica
Análise relacional declarativa
Análise relacional declarativa
E análise temporal
requisição
resposta
6
Evento
input
stream
output
stream
StreamInsight
Cenários para aplicações orientadas a
eventos
Latência
Meses
Cenários alvo para
CEP
Dias
Aplicações de Banco de Dados
Relacional
Horas
Aplicações de Análise
Operacional
Aplicações
DW
Minutos
Aplicações Web Analytics
Segundos
100 ms
< 1ms
0
7
Aplicações de
Produção
Aplicações de
Monitoração
10
100
1000
Aplicações de
Negociação do
Mercado Financeiro
10000
100000
Taxa de dados agregados (eventos/seg).
~1milhão
StreamInsight
Exemplos de cenários
Indústria:
• Sensor de chão de
fábrica
• Reagem através de
controladores de
dispositivo
• Dados agregados
• 10.000 eventos/seg
Web Analytics:
• Sequência de clicks
• Comportamento de
clientes online
• Layout de página
• 100.000 eventos/seg
Mercado Financeiro
• Stock & feeds RSS
• Risk Management
• Algoritmos de
negociação
• Monitoração de
mercado
• 100.000 eventos/seg
Serviço de Energia:
• Consumo de energia
• Paralisações
• Grades inteligentes
• 100.000 eventos/seg
Visual trend-line and KPI monitoring
Batch & product management
Automated anomaly detection
Real-time customer segmentation
Algorithmic trading
Proactive condition-based maintenance
Configurações &
Parâmetros
Repositório de dados
& Arquivamento
8
Data Stream
Data Stream
Instrumentação de ativos para aquisição de dados, Data Feeds
StreamInsight Engine
Lookup
• Limites de consultas
• Correlação de eventos de
múltiplas fontes de dados
• Padrão de consultas
StreamInsight
Ciclo: Monitorar, Gerenciar, Minerar
Vantagem do
StreamInsight
Tendências do
setor
• Os custos de aquisição de
dados são insignificantes
• Os custos de
armazenamento bruto
são pequenos e
continuam a diminuir
• Os custos de
processamento não são
negligenciáveis
• Os custos de carga de
dados continuam ser
significativos
9
Monitor KPIs
Record raw
data (history)
Manage
business via
KPI-triggered
actions
• Processa os dados de
forma incremental, ou
seja, enquanto ele está
sendo enviado
• Evita carga ao mesmo
tempo em que continua a
fazer o tratamento
desejado
Mine historical data
Devise new KPIs
• Consultas sem pausa para
monitoramento,
gerenciamento e
mineração
StreamInsight
Soluções com StreamInsight (CEP)
Data Sources, Operations, Assets, Feeds, Sensors, Devices
Input
Data Streams
Monitor
&
Record
Input
Data Streams
Mine
&
Design
StreamInsight
Engine
f(x)
g(y)
Operational Data
Store & Archive
10
f'(x)
Output
Data Streams
Manage
&
Benefit
h(x,y)
StreamInsight
Engine
Results
f(x)
g(y)
f'(x)
h(x,y)
StreamInsight
Visão Geral: Microsoft StreamInsight
.NET
C#
LINQ
Desenvolvimento
Aplicação
Event sources
Devices, Sensors
Event
StreamInsight Engine
Pagers & Monitoring devices
Standing Queries
Event
Event
Event
Event
Event
Event
Event
Output Adapters
Input Adapters
Web servers
Event targets
Aplicação em tempo de execução
`
KPI Dashboards,
SharePoint UI
Event
Trading stations
Event stores & Databases
C_ID
C_NAME
C_ZIP
Stock tickers & News feeds
11
Event stores & Databases
StreamInsight
Serviço de Energia Elétrica
Cenário: Smart grid
Medidores inteligentes de energia elétrica
Visão contínua e atualizada, incluindo a geração, distribuição
e demanda
Vantagens do StreamInsight
12
Atende aos requisitos de smart grids
Escala de milhões de medidores
Centenas de milhares de leituras por segundo
Validação, edição, regras de cálculo (EEV) declarativamente
em LINQ
Expande a altos volumes de dados esperados em smart grids
Reação quase em tempo real às mudanças da grade para
evitar quedas de energia
StreamInsight
Mercado Financeiro
Cenário: Análise de Risco em Tempo Real
Visão contínua sobre as condições de mercado e
exposição
Monitoração contínua (baixa latência) do mercado
Gerencia de riscos através de negociadores e por
mesa com limites individuais e agregados
Vantagens do StreamInsight:
Implementa monitoração de riscos em LINQ
Detecção e notificação próximo do tempo real
Não necessita mudanças nos modelos ou código
LINQ para testes em dados históricos
13
StreamInsight
Web Analytics
Cenário: Segmentação comportamental em
Tempo Real
Análise online contínua do comportamento do usuário
Identificação de conteúdos relevantes antes do próximo click
Definição do conteúdo baseado no comportamento online
detectado
Vantagens do StreamInsight:
Escala para milhões de usuários online concorrentes
Visão imediata – análise em tempo real
Logs da Web já não processados off-line em lotes
Correlação através dos web farms e aplicações
14
StreamInsight
Varejo (Online e Tradicional)
Cenário: Cupons de Desconto em Tempo Real
Oferece cupons mais relevantes / atraentes
Correlação da transação de venda corrente com o histórico
de compras do cliente
Vantagens do StreamInsight:
Acompanhamento da cesta atual como um fluxo em tempo
real
Uso do StreamInsight lookup pattern para correlacionar a
cesta de compras atual cesta com histórico de compras
Facilmente escalável para o varejo na internet com milhões
de sessões concorrentes
15
StreamInsight
Conceitos
Eventos
Tipos de eventos
Fluxos de eventos (Event Streams)
Adapters
Processamento e Análise
16
StreamInsight
Eventos
Unidade básica de informação processada pelo engine
do StreamInsight
O Header define o tipo do evento (INSERT e CTI current
time increment) e expõe diferentes características
temporais
Point-in-time
Intervalo com duração fixa
Intervalo com duração inicialmente desconhecida (Edge)
Payload representa a estrutura de dados que armazena
as propriedades do evento
17
StreamInsight
Modelos de Eventos
Point-in-time
Exemplos: Leituras de medidor, clique do usuário na Web ou uma
entrada no Windows Event Log.
Event Kind
INSERT
Start Time
2009-07-15 09:13:33.317
End Time
2009-07-15 09:13:33.317 + t
Payload (Consumption)
100
Eventos de intervalo com duração fixa
Exemplos: validade de uma oferta de leilão, ou preço de uma oferta de
ação, etc.
Event Kind
Start Time
End Time
Payload (Power
Consumption)
INSERT
2009-07-15 09:13:33.317
2009-07-15 09:14:09.270
100
Eventos de intervalo com duração inicialmente desconhecida
Exemplos: eventos de trace, sessão Web do usuário, etc.
Event Kind
INSERT
INSERT
INSERT
INSERT
INSERT
… and so on
18
Edge Type
Start
End
Start
End
Start
Start Time
t0
t0
t1
t1
t3
End Time
∞
t1
∞
t3
∞
Payload
a
a
b
b
c
StreamInsight
Tipo de Evento
Eventos na plataforma CEP da Microsoft usam tipos de
dados .NET
Eventos são estruturados e podem ter vários campos
O CEP engine captura as características temporais do
evento através dos campos de timestamp fornecidos
Fontes de eventos populam campos timestamp
Timestamps/
Metadata
…
19
Long
pumpID
…
String
Type
…
String
Location
…
Double
flow
…
Double
pressure
…
StreamInsight
Fluxo de Eventos
É uma sequência possivelmente infinita de
acontecimentos
Inserções de novos eventos
Alterações na duração dos eventos
Características de um fluxo de eventos:
Padrões de chegada de dados do evento
Taxa estável com indicação de fim-de-sequência
Intermitente, aleatório ou em rajadas
Eventos fora de ordem: ordem de chegada dos
acontecimentos não coincide com a ordem dos
timestamps da aplicação
20
StreamInsight
Adapters
Adapters traduzem, recebem e entregam fluxos
de eventos que chegam e que saem do servidor
StreamInsight
Adapters são implementados em linguagem gerenciada .NET
e são armazenadas como assemblies
Na versão atual, StreamInsight suporta apenas C# como host
language
Entende/ traduz protocolos de domínios específicos
Recebe eventos de fontes de dados
Enfileira eventos para processamento no engine do
StreamInsight
Adapters de entrada (Input)
Adapters de saída (Output)
21
StreamInsight
Processamento e análise de eventos
O processamento de eventos é organizado em
queries baseadas numa lógica definida
Query templates (modelos)
São escritas em LINQ combinado com a linguagem
C#
Define a lógica do negócio
Query Instances
Query template vinculado a adapters específicos de
entrada e saída registram uma instância da query no
servidor StreamInsight
22
StreamInsight
Query binding
Analytics & Queries
Data Sources
QT1
CEP Engine
AT1
Standing Queries
Event
Event
Q1
Event
Q1’
Event
Event
Output Adapters
AT3
Input Adapters
AT2
Event
Q1’’
Vinculação a uma fonte de dado gera uma instância de consulta
Configurar várias instâncias de consulta para um template
Semelhante a independência de dados: a mesma consulta pode ser vinculada
a diferentes fontes de dados que disponibilizem o tipo de evento requerido
23
StreamInsight
Queries - Funcionalidades
24
StreamInsight
Exemplos de queries em LINQ
JOIN, PROJECT, FILTER:
from e1 in MyStream1
join e2 in MyStream2
on e1.ID equals e2.ID
where e1.f2 == “foo”
select new { e1.f1, e2.f4 };
GROUP&APPLY, WINDOW:
from e3 in MyStream3
group e3 by e3.i into SubStream
from win in SubStream.HoppingWindow(
FiveMinutes,ThreeSeconds)
select new { i = SubStream.Key,
a = win.Avg(e => e.f) };
25
Join
Filter
Project
Grouping
Window
Project &
Aggregate
Gerenciamento de Dados
em Tempo Real
26
Cenário da Demo: Market Monitor
Push
Output Adapters
Input Adapters
StreamInsight
Push
Dados fictícios
simulados
Push
27
Asset
Class
Ticker
Exchange
SUM
Volume
SUM
Bid
SUM
Ask
Stock
MSFT
NASDAQ
100
100
100
Stock
IBM
NASDAQ
200
200
200
Dados fictícios
simulados
Pull
Cenário da Demo: Market Monitor
Output Adapters
Input Adapters
StreamInsight
Dados fictícios
simulados
28
Asset
Class
Ticker
Exchange
SUM
Volume
SUM
Bid
SUM
Ask
Stock
MSFT
NASDAQ
100
100
100
Stock
IBM
NASDAQ
200
200
200
Dados fictícios
simulados
Cenário da Demo: Market Monitor
Output Adapters
Input Adapters
StreamInsight
Dados fictícios
simulados
29
Asset
Class
Ticker
Exchange
SUM
Volume
SUM
Bid
SUM
Ask
Stock
MSFT
NASDAQ
100
100
100
Stock
IBM
NASDAQ
200
200
200
Dados fictícios
simulados
Cenário da Demo: Market Monitor
Output Adapters
Input Adapters
StreamInsight
Dados fictícios
simulados
30
Asset
Class
Ticker
Exchange
SUM
Volume
SUM
Bid
SUM
Ask
Stock
MSFT
NASDAQ
100
100
100
Stock
IBM
NASDAQ
200
200
200
Dados fictícios
simulados
Cenário da Demo: Market Monitor
Output Adapters
Input Adapters
StreamInsight
Dados fictícios
simulados
31
Asset
Class
Ticker
Exchange
SUM
Volume
SUM
Bid
SUM
Ask
Stock
MSFT
NASDAQ
100
100
100
Stock
IBM
NASDAQ
200
200
200
Dados fictícios
simulados
StreamInsight
Deployment
Web servers
Data Sources
Sensors
StreamInsight
StreamInsight
Devices
Aggregation &
Correlation
StreamInsight
StreamInsight
StreamInsight
StreamInsight
StreamInsight
StreamInsight
Complex Analytics &
Mining
32
Feeds
Os engines de processamento de eventos são
implantados em vários lugares em diferentes
escalas
• Edge – perto da fonte de dados.
• Mid-tier – fontes de dados relacionadas.
• Data center – arquivamento histórico, mining,
correlação em grande escala.
StreamInsight
StreamInsight
CEP for lightweight processing and
filtering
CEP for aggregation and correlation of
in-flight events
StreamInsight
CEP for complex analytics including
historical data
StreamInsight
Deployment
Hosted DLL Deployment
StreamInsight está disponível como um conjunto de
DLLs
StreamInsight pode ser embutido nas aplicações
Overhead baixo
Facilita implantações perto da fonte de dados
Stand-alone Server Deployment
Roda o engine como um serviço do Windows
Aplicações podem compartilhar sequências de
eventos de entrada
Adequado para implantações mais centralizadas
33
StreamInsight
Cenários de Deployment
Cenário 1
Cenário 2
.NET, C#, LINQ
ISV Application with StreamInsight Engine
Custom Application
StreamInsight Engine
StreamInsight Engine
Reference data
Reference data
Cenário 3
KPIs
Cenário 4
KPI mining
Device with Embedded StreamInsight
StreamInsight Engine
CEP
CEP
CEP
CEP
StreamInsight Engine
ETL Pipeline with CEP engine
34
StreamInsight
SQL Server 2008 R2 Capacidades por Edição
Edições
Microsoft StreamInsight
Microsoft SQL Server 2008 R2
Standard
Standard
Enterprise
Premium
Datacenter
StreamInsight Premium
Taxa de eventos > 5000 eventos/seg & latência < 5 segs
Direcionada para implantações de missão crítica em data centers
StreamInsight Standard
Taxa de eventos < 5000 eventos/seg & latência > 5 segs
Direcionada para implantações do tipo Edge ou StreamInsight embutida
em aplicações
** a medição pode variar dependendo do tipo de processamento **
35
StreamInsight
Conclusão
Aplicações orientadas a eventos complementam
as aplicações tradicionais de banco de dados no
mundo dos negócios de hoje
StreamInsight é a plataforma da Microsoft para
construir aplicações orientadas a eventos
StreamInsight oferece capacidades para
processamento de eventos em diferentes áreas
e indústrias
StreamInsight licenciado com o Microsoft SQL
Server 2008 R2
36
37
Conteúdo relacionado
DBP201 | As novidades que você precisa conhecer do SQL Server 2008 R2
Data: 13/09 Horário: 15:30 - 16:45
DBP307 | Discutindo sobre: Linq to SQL, Entity Framework Versus Stored
Procedures
Data: 15/09 Horário: 13:45 - 15:00
DBP203 | Escalando aplicações OLTP: Design de aplicação e considerações
para hardware
Data: 14/09 Horário: 09:00 - 10:15
38
Conteúdo relacionado
StreamInsight main page & download
http://www.microsoft.com/sqlserver/2008/en/us/R2-complexevent.aspx
StreamInsight blog
http://blogs.msdn.com/streaminsight/
StreamInsight MSDN documentation
http://msdn.microsoft.com/en-us/library/ee362541(SQL.105).aspx
StreamInsight E-clinics on Microsoft e-learning
http://www.microsoft.com/eLearning
39
© 2008 Microsoft Corporation. Todos os direitos reservados. Microsoft, Windows, Windows Vista e outros nomes de produtos são ou podem ser marcas registradas e/ou marcas comerciais nos EUA e/ou outros países.
Este documento é meramente informativo e representa a visão atual da Microsoft Corporation a partir da data desta apresentação. Como a Microsoft deve atender a condições de mercado em constante alteração, este
documento não deve ser interpretado como um compromisso por parte da Microsoft, e a Microsoft não pode garantir a precisão de qualquer informação fornecida após a data desta apresentação. A MICROSOFT NÃO DÁ
QUALQUER GARANTIA, SEJA ELA EXPRESSA, IMPLÍCITA OU ESTATUTÁRIA, REFERENTE ÀS INFORMAÇÕES DESTA APRESENTAÇÃO.
Por favor preencha a
avaliação
Download

Tratando dados em tempo real - Junior Galvão - MVP