Анализ данных в «реальном времени» с помощью SQL Server StreamInsight

Введение в StreamInsight

StreamInsight является одним из компонентов SQL Server или облачным сервисом Windows Azure для обработки сложных событий (Complex
Event Processing, CEP).

cep

На схеме на оси абсцисс отражена совокупная скорость передачи данных, событий в секунду, а на оси ординат – характерное время задержки при выдаче результата запроса для той или иной задачи.

Цветные области на графике показывают, какие требования существуют у тех или иных приложений к скорости передачи данных и обработки запросов.

Видно, что технология сложной обработки событий предназначена для решения задач с высокой скоростью передачи данных и низкой задержкой.

Особенность технологии состоит в том, что при ее использовании устанавливаются постоянные запросы, на вход которых подается поток постоянно меняющихся данных из различных источников. Благодаря этому результаты постоянных запросов выдаются с близкой к нулю задержкой.

Отраслевые примеры использования StreamInsight

Сложная обработка событий (CEP) может использоваться в следующих отраслях и задачах:

  • финансы – для алгоритмизации торговли и обнаружения мошенничества;
  • телекоммуникации – для мониторинга сети и качества сервиса;
  • производство – для мониторинга материалов (RFID), агрегирования данных от сенсоров и генерация тревоги в случае ошибок;
  • веб-приложения — для анализа трафика сайта и обнаружения нежелательного поведения;
  • здравоохранение – для анализа состояния здоровья пациента;
  • логистика – для прогнозирование и отслеживание цепочки поставок и GPS-трэкинга.

Разумеется, возможно и многие другие примеры применения данной технологии.

Архитектура StreamInsight

Схема платформы обработки сложных событий приведена на следующем рисунке.

cep_platform

Сервер (CEP-движок) постоянно держит в оперативной памяти и обрабатывает постоянные (декларированные) запросы. Эти запросы по виду похожи на T-SQL запросы и могут определенным образом преобразовывать и агрегировать данные со входящих адаптеров. Постоянные запросы могут быть вложены друг в друга, и также могут подтягивать статические данные из традиционных баз данных (SQL Server). На выходе CEP-движка в результате обработки появляются только интересующие нас агрегированные события.

Входящие адаптеры отвечают за передачу событий с источников.

Источниками данных могут выступать различные устройства, сенсоры, веб-сайты и прочие системы, генерирующие события.

Исходящие события, полученные в результате обработки CEP-движком, передаются в выходные (исходящие) адаптеры.

Данные от исходящих адаптеров отражаются целевыми системами, такими как пейджеры, устройства мониторинга, карты ключевых показателей эффективности и диаграммы, а также могут сохраняться в системы хранения событий и базы данных.

Демонстрация. Пример разработки приложения StreamInsight

В качестве примера использования технологии StreamInsight предлагаю вам посмотреть пример приложения анализа трафика на многополосной автомагистрали.

Демонстрация визуализации в портале SharePoint

Аналогичные приложения можно создать непосредственно на портале SharePoint. Пример подобного решения по анализу «реального времени» сообщений в Twitter (по определенным ключевым терминам) есть в Московском технологическом центре Microsoft (MTC Moscow). Снимок экрана – ниже.

twitter-analytics

Дополнительные ресурсы по технологии StreamInsight

Обновление обучающих материалов по SQL Server 2008 R2 для разработчиков (Март 2010, обновление 2)

Появилась новая версия (март 2010, обновление 2) обучающих материалов по SQL Server 2008 R2 для разработчиков, которая содержит дополнительный модуль по технологии SQL Server 2008 R2 StreamInsight, позволяющей строить приложения обработки сложных событий.

Скачать обучающие материалы можно по ссылке: http://go.microsoft.com/?linkid=9710868.

Новый релиз содержит следующие материалы:

Новые презентации (4):

  • Introducing SQL Server 2008 R2 StreamInsight
  • Querying Events in SQL Server 2008 R2 StreamInsight
  • Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters
  • Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine

Новые демонстрации (7):

  • Introducing SQL Server 2008 R2 StreamInsight
  • Querying SQL Server 2008 R2 StreamInsight Using LINQ
  • Advanced SQL Server 2008 R2 StreamInsight Event Queries
  • Working with SQL Server 2008 R2 StreamInsight CTI Events and Advance Time Settings
  • Creating a SQL Server 2008 R2 StreamInsight Input Adapter
  • Choosing a SQL Server 2008 R2 StreamInsight Development Model
  • Using the SQL Server 2008 R2 StreamInsight Event Flow Debugger

Новые лабораторные работы — Hands-on Labs (3):

  • Querying Events in SQL Server 2008 R2 StreamInsight using LINQ
  • Working with the SQL Server 2008 R2 StreamInsight Samples
  • Working with the SQL Server 2008 R2 StreamInsight Event Flow Debugger

Новые видео (18):

  • Presentation: Introducing SQL Server 2008 R2 StreamInsight (Part I)
  • Presentation: Introducing SQL Server 2008 R2 StreamInsight (Part II)
  • Demo: Introducing SQL Server 2008 R2 StreamInsight
  • Presentation: Querying Events in SQL Server 2008 R2 StreamInsight (Part I)
  • Presentation: Querying Events in SQL Server 2008 R2 StreamInsight (Part II)
  • Demo: Querying SQL Server 2008 R2 StreamInsight Using LINQ
  • Presentation: Querying Events in SQL Server 2008 R2 StreamInsight (Part III)
  • Demo: Advanced SQL Server 2008 R2 StreamInsight Event Queries
  • Presentation: Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters (Part I)
  • Presentation: Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters (Part II)
  • Demo: Working with SQL Server 2008 R2 StreamInsight CTI Events and Advance Time Settings
  • Presentation: Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters (Part III)
  • Demo: Creating a SQL Server 2008 R2 StreamInsight Input Adapter
  • Presentation: Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine (Part I)
  • Presentation: Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine (Part II)
  • Demo: Choosing a SQL Server 2008 R2 StreamInsight Development Model
  • Presentation: Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine (Part III)
  • Demo: Using the SQL Server 2008 R2 StreamInsight Event Flow Debugger

Источник: Блог Roger’а Doherty.