CEP

advertisement
Microsoft StreamInsight
Извлечение знаний из потоков
реляционных данных в
реальном времени.
Никита Шамгунов
Микрософт
Microsoft Платформа 2010
http://msplatforma.ru
Что такое CEP?
Complex Event Processing (CEP) это непрерывная и инкрементальная
обработка потоков событий из множественных источников в
соответствии декларативным запросом с близкой к нулю задержкой
СУБД
CEP
Парадигма
запросов
Запросы выполнятся
по требованию
Запросы обрабатываются
непрерывно
Задержка
Секунды, часы, дни
Милисекунды или меньше
Пропускная
способность
Сотни записей/сек
Десятки тысяч
записей/сек или больше
запрос
ответ
Событие
входной
поток
Microsoft Платформа 2010
выходной
поток
http://msplatforma.ru
Новая!! Только что из печки!
CEP
Microsoft Платформа 2010
http://msplatforma.ru
Сценарии
Задержка
Месяцы
CEP сценарии
Дни
Реляционные СУБД
Часы
Аналитика
Минуты
Анализ реляционных
данных
Секунды
100 мс
Мониторинг
Web Аналитика
Производство
Трейдинг
< 1 мс
0
10
100
1000
10000
100000
~10^6
Скорость поступления данных (Событий/сек)
Microsoft Платформа 2010
http://msplatforma.ru
Примеры CEP Сценарив
Производство:
• Сенсоры на
заводе
• Аппаратные
контроллеры
• 10,000 соб./сек
Веб аналитка:
• Анализ потока
кликов
• Анализ онлайн
поведения
• 100,000 соб./сек
Финансы:
• Трейдинговые
системы
• Паттерн
• Очень низкие
задержки
• 100,000 соб./сек
Электросистемы:
• Потребление
• Аварии
• Умная
электрофикация
• 100,000 соб./сек
Хранение и
архивация
Графическое отображение трендов
Управление производством
Определение аномалий
Мгновенная сегментация
потребителей
Алгоритмический трейдинг
Превентивное техобслуживание
Данные о
системе
Потоки данных
Потоки данных
Потребление входных данных. Подписка на источники данных
Обработка событий
Lookup
Microsoft Платформа 2010
• Top запросы
• Корреляция событий
из разных источ.
• Паттерны
http://msplatforma.ru
Наблюдай, управляй, извлекай
знания
Тренды
индустрии
• Цена
приобретения
данных
стремится к 0
• Цена хранения
данных мала и
уменьшается
• Цена обработки
данных
существенна
• Цена загрузки
данных также
велика
Почему CEP?
Наблюдай за
метриками
Записывай
сырые данные
(история)
Управляй
бизнесом на
основании
метрик
Извлекай знания из
исторических данных.
Создавай новые
метрики
Microsoft Платформа 2010
• Обработка
данных на лету
• Не нужно
загружать/сохр
анять в памями
• Предоставляет
систему
выполнения
запросов для
наблюдения,
управления,
извлечения
знаний
http://msplatforma.ru
Развертывание CEP
Веб серверы
Источники
данных
Сенсоры
CEP
Мобильные
устройства
CEP
Агрегирование
и коррелиция
CEP
CEP
CEP
Потоки
CEP
Системы развертываются на
разных уровнях системы
• На границе – рядом с
источниками данных
• На mid-tier – консолидация
разных источников
• В дана центра – анализ
исторических данных,
корреляция больших объемов
CEP
CEP
CEP
CEP
Сложная аналитика и
извлечения знаний
CEP
CEP
Microsoft Платформа 2010
Простая обработка и фильрация
Агрегация и корреляция
Сложный анализ исторических
данных
http://msplatforma.ru
Обзор CEP платформы Микрософт
Разработка CEP
приложений
IDE
Источники событий
Event targets
Работа CEP приложения
Устройства, сенсосы
Event
CEP Engine
Стоячие запросы
Event
Event
Event
Event
Event
Event
Event
Пейджеры и устройства
мониторинга
`
Панели упр,
SharePoint
Event
СУБД и другие хранилища
C_ID
Финансовые потоки
Output Adapters
Input Adapters
Веб сервера
.NET
C#
LINQ
C_NAME
C_ZIP
Трейлинговые
консоли
Внешние данные
Хранение исторических
данных
Microsoft Платформа 2010
http://msplatforma.ru
События
События отражают различные временные
характеристики
Мгновеные (point in time)
Фиксированные интервалы (Interval events with fixed duration)
Интервалы с изначально неизвестной продолжительностью
(Interval events with initially unknown duration)
Значение полей
События содержат данные, ассоциированные с ними,
аналогично строкам в таблице
a
t1
Microsoft Платформа 2010
b
t2
d
c
t3
Time 
t4
e
t5
http://msplatforma.ru
Типы данных для событий
События в CEP платформе использует
типы .NET
События могут содержать несколько полей
Поля – скалярные типы данных .NET
Движок CEP обеспечивает поля для
временных характеристик
Input adapters заполняют эти поля
Timestamps Long
/Metadata
pumpID
…
…
Strin
g
Type
…
String
Location
…
Doubl
e
flow
…
Microsoft Платформа 2010
Double
pressure
…
http://msplatforma.ru
Потоки событий
Поток – это возможно бесконечная
последовательность событий
Возможно вставлять новые события
Изменять темпоральные характеристики событий
Примеры: сенсорные данные, записи из журналов (логов)
Характеристики потоков:
Паттерны поступления событий
Равномерно. Например файлы или таблицы
Нерегулярно, случайным образом, или шквалами. Например:
сканнеры штрих-кодов, интернет клики, погодные данные
События могут быть неупорядоченными
Порядок поступления событий не обязан совпадать с их
темпоральными характеристиками
CEP система берет на себя сложную часть задачи
правильной реализации темпоральной семантики
Microsoft Платформа 2010
http://msplatforma.ru
Адапторы для потоков событий
При создании адаптеров необходимо задать
Типы производимых или потребляемых событий
Методы, обеспечивающие реализацию потока
Свойства, которые «понимает» CEP система
Особенности адаптеров
Проблема
Особенность
Свойства событий
Темплейты для адаптеров в записимости от типа:
темплейты для мгновенных событий
Описание нагрузки
Скалярные типы .NET на полей событий
Типизированные vs
обобщенные
Темплейты для адаптеров определенного типа событий
и обобщенные адаптеры
Поддержка
оптимизации
Поддержка приема предикатов и проекций
Microsoft Платформа 2010
http://msplatforma.ru
Ядро CEP движка
Движок CEP
Стоячие запросы
Event
Event
Event
Event
Event
Event
Event
Event
Управление выполнением
запросов
Submit, start, stop
Получение статистик
Вывод: движок CEP берет на себя сложность выполненя
запросов с временной семантикой
Microsoft Платформа 2010
http://msplatforma.ru
Выходные адаптеры
Операторы потребляют и
производят потоки
Запросы стыкуются
Результаты запросов
вычисляются инкрементально
Входные адаптеры
Исполняет “стоячие
запросы”
Event
Типичные CEP запросы
Для типичных CEP запросы необходимы след.
свойства
Сложные типы данных для событий
В процессе вычисления можно добавлять/изменять поля
Группировка по одному или нескольким полям
Агрегация за определенный период времени, например по
окну
Один запрос обрабатывает сразу нельколько групп событий
Отслеживание корреляции между несколькими потоками
Отслеживание отсутствия событий
Дополнение событий информацией из внешних источников
Наша цель состоит в том, чтобы сделать
написание и управление такими запросами
чрезвычайно простым.
Microsoft Платформа 2010
http://msplatforma.ru
Возможности Микрософт CEP
Операторы управления потоками
Арифметические операции (PROJECT)
Корреляция нескольких потоков (JOIN)
Проверка наличия активности в источнике данных
(EXISTS)
Фильтрация событий (FILTER)
Разбиение потока по признаку (GROUP & APPLY)
Нахождение событий с наибольшим значением
опреленных показателей (TOP-K)
Темпоральные операции: hopping window, sliding window
Агрерация (SUM, COUNT, …)
Расширяемость – возможность добавлять свои операторы
Запросы пишутся для типизированных потоков событий
Они могут выполняться для любых потоков этого типа
Поддерживает потоки, ссылки на статические данные,
проигрывание исторических данных
Microsoft Платформа 2010
http://msplatforma.ru
Расширяемость
Встроенные операторы не покрывают всей
функциональности
Необходима интеграция с существующими
библиотеками
Есть необходимость в специфичных для предметной
области операторах
Расширения для CEP:
Фунции, агрегаты и операторы определяемые
пользоватем, написанные на .NET
Запросы на LINQ легко стыкуются и интрегрируются с
пользовательским кодом на .NET
Для реализации операторов определяемых пользователем
предостваляется framework
Microsoft Платформа 2010
http://msplatforma.ru
Примеры запросов LINQ
Пример на LINQ – JOIN, PROJECT, FILTER:
from e1 in MyStream1
join e2 in MyStream2
e1.ID equals e2.ID
where e1.f2 = “foo”
select new { e1.f1, e2.f4 };
Join
Filter
Project
Пример на LINQ – GROUP и WINDOW:
from e3 in MyStream3
group e3 by e3.i into SubStreams
from s4 in SubStreams
from e4 in s4.HoppingWindow(TheeSec, OneSec)
select new { avg = e.Avg(s4 => s4.f4) };
Microsoft Платформа 2010
Grouping
Window
http://msplatforma.ru
Демонстрация
Запросы для внешних
устройств
Никита Шамгунов
Senior Software Developer
Microsoft Corp.
Microsoft Платформа 2010
http://msplatforma.ru
Разработка для CEP платформы
Цели
Легкость и быстрота разработки
Полный набор инструментов
Поддержка разных стратегий
развертования
Встроенного в приложение
На сервере приложений
Расширяемость
Среда разработки CEP
На основе .NET
Microsoft Visual Studio – среда
разработки
Приложения пишутся на C#
Запросы на LINQ
LINQ:
var queryFilter =
from c in TestEventStream
where c.Field1 > 1
select c;
Microsoft Платформа 2010
http://msplatforma.ru
Связывание запросов
Аналитика
Источники данных
QT1
AT3
Event
Стоячие запросы
Event
Event
Event
Q1
Q1’
Event
Q1’’
Event
Выходные адаптеры
AT2
Движок CEP
Входные адаперты
AT1
Связывание запроса и источников входных данных
создает экземпляр запроса
Позволяет создать несколько экземпляров запроса
Один запрос может быть связан с разными наборами
источников данных
Microsoft Платформа 2010
http://msplatforma.ru
Демонстрация
Запросы над IObservable
Nikita Shamgunov
Senior Software Developer
Microsoft Corp
Microsoft Платформа 2010
http://msplatforma.ru
ИТОГИ: CEP платформа Microsoft
Разработка на .NET, C#, LINQ
and Visual Studio 2008
CEP Разработка
приложений
CEP платформа Микрософт
предназначена для приложений
обработки событий
Источники данных
Гибкий SDK для
создания адаптеров,
соединяющихся с
разными источниками и
потребителями данных
C_ID
C_NAME
C_ZIP
Выходные адаптеры
Входные адаперты
Приложения для работы с
CEP Engine
Event
потоками событий
Standing Queries
фундаментально отличаются от
Event
Event
традиционных приложений,
Event
Event
работающих с БД: запросы
Event
выполнятся непрерывно, Event
потребляют и производят
Event
Event
потоки и вычисляются
инкрементально
Потребители
`
CEP платформа берет на
себя работу с
темпоральными
характеристиками потоков
событий
Static
reference
data
Microsoft
Платформа
2010
http://msplatforma.ru
Ссылки
www.microsoft.com/teched
www.microsoft.com/learning
Sessions On-Demand &
Community
Microsoft Certification & Training
Resources
http://microsoft.com/technet
http://microsoft.com/msdn
Resources for IT Professionals
Resources for Developers
www.microsoft.com/learning
Microsoft Certification and Training Resources
Microsoft Платформа 2010
http://msplatforma.ru
Вопросы
Никита Шамгунов
Senior Software Engineer
SQL Server Engine
nikitas@microsoft.com
http://blogs.msdn.com/streaminsight/
Вы сможете задать вопросы докладчику
в зоне «Спроси эксперта» в течение часа
после завершения этого доклада
Microsoft Платформа 2010
http://msplatforma.ru
SQL Server Community
The Professional Association for SQL Server (PASS) is an
independent, not-for-profit association, dedicated to supporting,
Resources
educating, and promoting the Microsoft SQL Server community.
• Connect: Local Chapters, Special Interest Groups, Online Community
• Share: PASSPort Social Networking, Community Connection Event
• Learn: PASS Summit Annual Conference, Technical Articles, Webcasts
• More about the PASS organization www.sqlpass.org/
Become a FREE PASS Member: www.sqlpass.org/RegisterforSQLPASS.aspx
Learn more about the PASS organization www.sqlpass.org/
Additional Community Resources
SQL Server Community Center www.microsoft.com/sqlserver/2008/en/us/communitycenter.aspx
TechNet Community for IT Professionals
http://technet.microsoft.com/en-us/sqlserver/bb671048.aspx
Developer Center
http://msdn.microsoft.com/en-us/sqlserver/bb671064.aspx
SQL Server 2008 Learning Portal
http://www.microsoft.com/learning/sql/2008/default.mspx
Microsoft Платформа 2010
http://msplatforma.ru
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Microsoft Платформа 2010
http://msplatforma.ru
Download