Выбрать главу
Данные… много и быстро!

До недавнего времени SQL Server был ограничен 64 логическими процессорами, в SQL Server 2008 R2 лимит увеличен до 256. Причина проста: стандартная восьмипроцессорная платформа сегодня вполне может обернуться 256 логическими ЦП. Кроме того, специалисты Microsoft отмечают, что инсталляции SQL Server с базами данных 5–10 Тбайт сейчас уже не редкость. Если еще не типовой проект, то уж вполне отработанная технология. Система, рассчитанная на терабайтные БД, без особенных сложностей будет справляться и со стандартными десятками или сотнями гигабайт. При необходимости дальнейшего увеличения мощности предлагается переходить на аппаратные конфигурации с массивно-параллельной обработкой – проект Madison (на базе разработок ранее приобретенной Microsoft компании DATAllegro).

Обновленная подсистема массивно-параллельного хранилища SQL Server 2008 R2 предоставляет средства для хранения громадных информационных массивов и быстрого к ним доступа. Объемы данных растут по экспоненте, хранить их на едином сервере уже порой невозможно, а значит, необходимо распределенное интеллектуальное хранилище. Это, собственно, и есть проект Madison, специализированный программно-аппаратный комплекс, рассчитанный на массивно-параллельную архитектуру, обеспечивающий хранение данных на физических узлах (с собственными ЦП, памятью и дисками) и возможность параллельного доступа к ним. При этом реализация весьма эффективна. Технология Madison – это составная часть SQL Server 2008 R2. Клиентские соединения в такой системе проходят через управляющий узел, который обрабатывает запрос и готовит план выполнения с учетом распределения данных по узлам хранилища. Отдельные экземпляры SQL Server, используемые в роли вычислительных узлов, генерируют финальные планы выполнения, отрабатывая свои части запроса. Все это совместимо с ODBC, OLE-DB, ADO.Net и др. (на самом деле, непосредственно к хранилищу пользователи доступа не имеют, работая с так называемыми витринами данных, но этот процесс организован прозрачно для них). На практике это означает, что типичным объемом БД для R2 скоро может стать не терабайтный, а даже петабайтный масштаб.

StreamInsight: анализ на потоке

Проблема, с которой сталкиваются аналитики, – необходимость обрабатывать динамические потоки информации. Обычно анализ выполнялся на статичных данных, которые заведомо не менялись в заданный период. Типичный пример – банковские решения или учетные системы. По завершении операционного или рабочего дня система останавливается, данные проходят финальную обработку, сливаются в хранилища и архивы, после чего могут быть использованы для аналитической обработки. Очевидно, что при такой схеме время реакции на изменения будет ограничено снизу периодом, за который у аналитиков появляется очередной слепок данных. Столь же ясно, что для задач, требующих управления в реальном времени, такой подход малоприменим. В качестве решения проблемы была разработана технология StreamInsight.

По сути это система выполнения запросов не над статичными «слепками» структурированных данных, а непосредственно над потоками информации. Предполагается, что анализ может происходить в режиме, близком к реальному времени. В качестве примеров таких потоков можно привести активность покупателей на сайте электронной коммерции, замеры счетчиков производительности, новостные потоки и др. События могут быть «точечными» (скажем, клик пользователя), интервальными (например, длительность торгов), а также типа «луча» (в этом случае мы не знаем, когда завершится сеанс; хороший пример – рабочая сессия пользователя сайта). В StreamInsight данные обрабатываются на лету, без предварительной их фиксации, а запросы рассматриваются как «неподвижная точка» в этом потоке, с которой снимается результат динамического анализа. Из входных потоков можно извлекать события, фильтровать их, комбинировать, упорядочивать, агрегировать, выполнять пользовательскую обработку и выдавать результаты в выходной поток. Благодаря такому подходу достигается очень высокая производительность системы в целом, кроме того, исчезает необходимость в сохранении промежуточных снимков БД (что при большом объеме данных может оказаться нетривиальной задачей).

Инструментарий StreamInsight тесно связан с SQL Server, но рассчитан прежде всего на разработчиков аналитических систем, использующих модель «комплексной событийной обработки» (Complex Event Processing, CEP) и построенных на базе. NET Framework. Запросы могут формироваться средствами LINQ, что существенно упрощает работу с потоками событий. Разработчик формирует так называемые адаптеры, рассчитанные на конкретные типы данных. При этом ядро системы предоставляет средства для интеграции источников информации, возможность реализации различных сценариев развертывания, средства административного управления, отладочные функции и др.