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