Традиционная аналитика Активная аналитика в информационных хранилищах Текущий момент времени Временная задержка Специализированные решения, как правило очень дорогие и сложно- изменяемые Факты в секунду Загрузка (L) в ETL Обработка (ET) в ETL Время загрузки определяется выбором решения, напр., загрузка в базу или в файлы. Задержка практически неизбежна, т.к. обработка не производится до полной загрузки данных. Годы МесяцыДниЧасыМинСек
Реляционные СУБД Трейдинг Скорость поступления данных (Событий/сек) Задержка ~10^6 Месяцы Дни Часы Минуты Секунды 100 мс < 1 мс Аналитика Производство Мониторинг CEP сценарии Анализ реляционных данных Анализ реляционных данных Web Аналитика
Аналитические результаты должны отражать изменения бизнеса и допускать реакцию на них с минимальной временной задержкой СУБДПриложения, упр. событиями (CEP) Парадигма запросов Запросы выполнятся по требованию Запросы обрабатываются непрерывно ЗадержкаСекунды, часы, дниМилисекунды или меньше Пропускная способность Сотни записей/секДесятки тысяч записей/сек или больше Семантика запросов Декларативная реляционная аналитика Реляционная и временная аналитика запрос ответ Событие выходной поток входной поток
Источники данных Агрегирование и коррелиция Системы развертываются на разных уровнях системы Рядом с источниками данных В среднем звене – консолидация разных источников В хранилищах данных – анализ исторических данных, корреляция больших объемов Мобильные устройства Сенсоры Веб серверы Потоки CEP Сложная аналитика и извлечения знаний
StreamInsight Engine Output Adapters Input Adapters Event Постоянно активные запросы Источники событий Получатели событий Устройства, сенсоры Веб сервера СУБД и другие хранилища Финансовые потоки Event C_IDC_NAMEC_ZIP Хранение исторических данных Пейджеры и устройства мониторинга Панели упр, SharePoint Трейлинговые консоли Event Работа CEP приложения Внешние данные IDE.NET C# LINQ Разработка CEP приложений
t1 t4 t3 t2 t5 Time Значение полей a b c d e
Timestamps /Metadata Long pumpID String Type String Location Double flow Double pressure ………………
Движок CEP Выходные адаптеры Входные адаптеры Event Постоянно активные запросы Event
Пример на LINQ – GROUP и WINDOW: from e3 in MyStream3 group e3 by e3.i into SubStreams from win in Substream.HoppingWindow(FiveMin, TenSec) select new {{ i = SubStream.Key, a = win.Avg(e => e.f) }; }; Пример на LINQ – GROUP и WINDOW: from e3 in MyStream3 group e3 by e3.i into SubStreams from win in Substream.HoppingWindow(FiveMin, TenSec) select new {{ i = SubStream.Key, a = win.Avg(e => e.f) }; }; Пример на 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 }; Пример на 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 Grouping Window Project & Aggregate
LINQ: var queryFilter = from c in TestEventStream where c.Field1 > 1 select c; LINQ: var queryFilter = from c in TestEventStream where c.Field1 > 1 select c;
Источники данных Аналитика QT1 Движок StreamInsight Выходные адаптеры Входные адаперты Event Постоянно активные запросы Event AT2 AT1 Q1 AT3 Q1
CEP Engine Выходные адаптеры Входные адаперты Event Standing Queries Источники данных Потребители Event C_IDC_NAMEC_ZIP Event Static reference data CEP Разработка приложений Разработка на.NET, C#, LINQ and Visual Studio 2008 & 2010 CEP платформа Микрософт предназначена для приложений обработки событий Приложения для работы с потоками событий фундаментально отличаются от традиционных приложений, работающих с БД: запросы выполнятся непрерывно, потребляют и производят потоки и вычисляются инкрементально Гибкий SDK для создания адаптеров, соединяющихся с разными источниками и потребителями данных CEP платформа берет на себя работу с временными характеристиками потоков событий
Количество баз данных Количество DBA Вычислительные мощности Простаивающее оборудование Перегрузка админов Future
Центральное звено управления Центральное звено управления Хранилище данных Хранилище данных Мониторинг Мониторинг Определение политик Определение политик Простота настройки и использования Простота настройки и использования Management Studio Админ SQL02 SQL03 SQL04 SQL01 Управляемые сервера SQL05 UCP
Измерения Метрики ComputerComputer VolumeVolume DACDAC ServerServer DatabaseDatabase FilegroupFilegroup DataFileDataFile LogFileLogFile Утилизация CPU Утилизация диска
Сводка Список Детали
Утилизация CPU Утилизация диска
Рассмотрим 4 DACs где D1, D3, & D4 кандидаты «нарушений» политик. 1.Оценка низкоуровневых политик для каждого объекта 2.Вычисление суммарного состояния по результатам первого шага A.D1 – все файлы выше порога повышенная утилизация B.D3 – CPU ниже порога недостаточная утилизация C.D4 – только один файл выше порога норма 3.Определяем состояние для каждого DAC 4.Обобщаем результаты для все DACs D3 CPU D3 CPU D3 CPU D1 PBM ViolationsHealth Policy Violations NameFile1CPU D D D Cache Table D1 File1 D1 NameFileCPU D2 D3 D4 D3 CPU DAC Statistics Count Type File D1 File2 D4 File1 D1 NameFileCPU D3 D4 Health States A A B B C C
InstanceInstance DACDAC Threshold = 70% Window = 6 hrs Frequency = 50% Threshold = 10% Window = 24 hrs Frequency = 90%
Filegroup1 Filegroup2 File1 File2 File3 File4 DAC
ДействиеUCP instance Управляемый сервер Создание UCPsysadminN/A Добавление или удаление управляемого сервера sysadmin Изменение общих политик и времени сохр. данных sysadminN/A Доступ к панели и отчётамUCP reader N/A
РесурсUCPУправляемый сервер Дисковое пространство ~ 2 GB в год на каждый управляемый сервер Минимально Диск, скорость 8 (10k RPM) spindles RAID-10* Минимально Процессор4x 2.5 GHz Intel Xeon или эквивалент* ~ 4% дополнительная утилизация на 2x 2.5GHz Intel Xeon
DAC Определение (Schema) DAC Профиль установки Требования установки, политики управления и отказоустойчивости Разработка Tables, Views, Constraints, SProcs, UDFs, Users, Logins Установка Indexes, Partitions FileGroups … DAC Метаданные (Имя, Версия, …)
Разработка Создать, редактировать ИзвлечьПостроитьЛучшие методы Установка УдалениеОпр. измененийУстр. изменений*Обновление Управление РегистрацияНаблюдениеНастройка*Перемещение*Консолидация* * Будущие версии
59 59
DAC project Ограниченная поддержка DB объектов Включает объекты сервера (напр., логины) Не допускает 3 part namesИмеет политику установкиPre/Post deployment scriptsNA DB project Поддержка всех DB объектовТолько DB объектыДопускает 3 part namesNAPre/Post deployment scripts Допускает внешние ссылки (CLR, other DB projects, XSD, etc.)
DAC project Offline and online intellisense Refactoring, unit tests, code analysis, auto-builds Schema / data compareALTER command not supported SQLCMD variables not supported DB project Online and offline intellisense Refactoring, unit tests, code analysis, auto-builds Schema / data compareALTER command supportedSQLCMD variables supported
DAC project Поддерживает Azure Обновление с копией (side-by- side) Установка на SQL 2008 R2 Установка на SQL 2008 (in PCU2) Установка на SQL 2005 (TBD) DB project Не поддерживает AzureОбновление на местеУстановка на SQL 2008 R2Установка на SQL 2008Установка на SQL 2005
Not Allowed Compare Allowed Δ Compare and Updates Allowed Source/Target.dacpac.dbschemaDAC ProjectLive DatabaseSQL DB Project SQL Server Project.dacpac Δ Δ.dbschema Δ DAC Project Δ Δ Live Database ΔΔ SQL DB Project Δ SQL Server Project Δ