Глава 16 Разработка корпоративных систем, ориентированных на базы данных (Microsoft SQL Server)

Продолжим тему о системах управления данными, речь о которых уже шла в предыдущей главе, на примере СУБД Microsoft SQL Server 2008.

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

Рассмотрим основные возможности, основные службы, которые реализует этот сервер. Это службы анализа данных; служба обеспечения сетевой готовности; службы интеграции, управляемости, обеспечения производительности и масштабируемости; службы программируемости или обеспечения генерации отчетных данных; служба, обеспечивающая безопасность; службы, обеспечивающие обработку пространственных данных, в частности географических карт. Все знают, что такое Google Maps или Google Earth, у Microsoft тоже есть похожее средство для визуализации картографической информации. Кратко перечислим основные версии Microsoft SQL Server, которые были созданы:

• 1992 г. – SQL Server 4.2;

• 1993 г. – SQL Server 4.21 под Windows N T;

• 1995 г. – SQL Server 6.0, кодовое название SQL95;

• 1996 г. – SQL Server 6.5, кодовое название Hydra;

• 1999 г. – SQL Server 7.0, кодовое название Sphinx;

• 1999 г. – SQL Server 7.0 OLAP, кодовое название Plato;

• 2000 г. – SQL Server 2000 32-bit, кодовое название Shiloh (версия 8.0);

• 2003 г. – SQL Server 2000 64-bit, кодовое название Liberty;

• 2005 г. – SQL Server 2005, кодовое название Yukon (версия 9.0);

• 2008 г. – SQL Server 2008, кодовое название Katmai (версия 10.0).

Истоки современного SQL-сервера имеют достаточно продолжительную историю. Это порядка 15 лет, даже, наверное, больше и, пожалуй, где-то на версии 7.0 (1999 г.) с кодовым названием «Сфинкс» Microsoft удалось выйти на рынок корпоративных систем. До этого решения были для малых, настольных систем, и здесь достаточно серьезно был улучшен интерфейс, возможности. В итоге Microsoft удалось создать достаточно серьезную масштабируемую систему. Можно долго рассказывать о том, кто и как называл свои SQL-серверы из основных производителей, ведь Oracle-сервер называется Enterprise Server, и Microsoft одно время использовала это название, и слова SQL Server тоже были использованы многими производителями. Пожалуй, версия 7.0 была первой версией с серьезным графическим интерфейсом для администрирования, с хорошими, удобными средствами администрирования и существенной коррекцией исходного кода, по сути, полной переработкой исходного кода, для устранения претензий со стороны Sybase.

Версия 2005 появилась в ноябре 2005 г., вместе с Visual Studio 2005. Понятно, что это платформа. NET, и обеспечивалась интеграция не только с платформой, но и со средством разработки. Пожалуй, в SQL Server 2005 было наиболее серьезное развитие интегрированной среды разработки, и был создан и разработан ряд дополнительных подсистем. В частности, это система извлечения/ преобразования/загрузки данных ETL, а также компонентов интеграции SQL Server Integration Services, далее будем называть эту технологию SSIS, OLAP-сервер аналитической обработки или онлайн-обработки многомерных моделей данных и сбора релевантной информации. Эти службы находятся в составе Microsoft Analysis Services и ряда служб сообщений (Service Broker, Notification Services). По сути, на этой платформе с небольшими, но важными изменениями, направленными на интеграцию и на еще большую специализацию корпоративных приложений, и построен SQL Server 2008.

Концепция платформы данных Microsoft, на которой основан этот сервер, заключается в следующем: упрощается управление любыми данными, в любом месте и в любой момент времени. При этом поддерживается возможность хранения в базах данных информации, полученной как из структурированных, так и полу– или неструктурированных источников данных, т. е. из источников данных с различной степенью структурированности, например, изображения, видеофайлы, аудиофайлы, музыка и т. д. В SQL Server 2008 имеется большой набор интегрированных служб, которые расширяют возможности доступа, извлечения и использования данных. Можно составлять запросы, выполнять поиск, производить синхронизацию, делать отчеты, анализировать различного рода данные разной степени структурированности и получать к ним доступ как с настольных компьютеров, так и с мобильных устройств, осуществлять полное управление данными независимо от того, где они хранятся.

Как правило, данные хранятся на серверах, которые входят в состав центра обработки данных, Data Center. В этом заключается концепция данных корпорации Microsoft. При этом SQL Server 2008 позволяет осуществлять доступ к данным практически из любого корпоративного приложения, которое основано на технологии, на платформе. NET и на инструментальном средстве Visual Studio. С другой стороны, осуществляется возможность работы в рамках сервисно-ориентированной архитектуры при поддержке Microsoft BizTalk сервера, который обеспечивает интеграцию корпоративных приложений на основе SOA, а также бизнес-процессов этой архитектуры.

Таким образом, сотрудники, которые отвечают за сбор и анализ информации, могут работать как с данными в системе Microsoft Office, так и с другими корпоративными приложениями внутри корпорации. Фактически они работают в привычной офисной среде и пользуются механизмами Visual Studio.NET, платформой. NET и SQL Server 2008. При этом поддерживаются надежность, высокая производительность и достаточно интеллектуальная обработка, извлечение, коррекция, интеграция, составление отчетов и трансформация этих отчетов в офисные форматы, которые отвечают всем основным требованиям по работе с данными, представленными и реализованными в Microsoft Office, Microsoft.NET платформе. Как видно из рис. 16.1, который описывает SQL Server, этот сервер поддерживает обработку данных на основе концепции центра данных.

Рис. 16.1. SQL Server как центр данных

Все данные хранятся в едином центре и поддерживают различные виды хранения и использования сущностей как на основе стандартных баз данных реляционной структуры, реляционных СУБД, так и на основе стандарта XML, который позволяет описать гетерогенные данные, слабоструктурированные в том числе. Некоторые данные просто хранятся в виде файлов. Существуют возможности онлайнового анализа данных на основе OLAP-технологий, и реализованы службы, которые применимы ко всем этим видам сущностей. Можно создавать запросы, анализировать, генерировать отчеты, осуществлять интеграцию этих данных, синхронизацию и поиск данных, а также работу в облачной модели данных над хранилищами данных, которые объединяют данные различной степени структурированности. Доступ возможен как с настольных, так и с мобильных компьютеров в рамках различных профилей доступа.

Какого рода технологии поддерживаются Microsoft SQL Server? Прежде всего, службы аналитики, которые позволяют создавать комплексные корпоративные решения, вести анализ данных и фактически получать приборную панель, на основе которой руководство может судить о производственных показателях корпорации. При этом, с точки зрения пользователя, руководство, как правило, является не профессиональными разработчиками, а скорее квалифицированными пользователями. Можно вести работу в терминах Microsoft Office, привычных каждому пользователю.

Интеллектуальный анализ данных осуществляется на платформе Microsoft Business Intelligence (Microsoft BI) с возможностью реализации упреждающей аналитики, встроенной в SQL Server 2008. Здесь используются мощные средства анализа данных, которые позволяют осуществить интеграцию с произвольными офисными и корпоративными приложениями. Обеспечивается высокий уровень сетевой доступности и готовности, минимизирующей время простоя и поддерживающей должный уровень доступности приложения. Службы интеграции отличаются хорошей масштабируемостью и степенью извлечения, преобразования и загрузки данных, а также широкими возможностями интеграции гетерогенных источников данных различной степени структурированности. Система управляемости основана на принципе политик, который позволяет управлять одним или несколькими экземплярами серверов.

Кроме того, существуют средства контроля производительности тонкой настройки, поиска и устранения неполадок, которые позволяют администратору увеличить эффективность управления данными различных экземпляров SQL-серверов. Средства производительности и масштабируемости поддерживают как вертикальную масштабируемость для отдельных серверов, так и горизонтальную для больших баз данных, а также средства оптимизации производительности в форме консоли, которая достаточно удобна. Поддерживаются различные средства создания программных расширений при помощи платформы. NET Framework и Visual Studio Team System, поддерживающей командную разработку.

Служба отчетов – это комплексная серверная платформа, которая отвечает различным потребностям для создания отчетности и доставляет релевантную информацию на рабочее место, в том числе в офисном формате. Что касается безопасности, то поддерживается расширенное управление параметрами систем безопасности, строгая проверка подлинности, аутентичности, контроля доступа, шифрование и управление ключами и расширенный аудит данных. Кроме того, реализуется подсистема для управления пространственными данными, которая поддерживает комплексную работу, в том числе обработку данных о географическом положении и консолидации данных, выборки данных на основе информации о пространственных данных.

Продолжим обсуждение служб Microsoft SQL Server. Что касается служб, которые связаны с анализом данных, то прежде всего это OLAP-служба, для создания и развертывания новых систем разработчикам приходится осваивать и использовать много новых средств. При использовании служб Analysis Services можно использовать на платформе Visual Studio единую среду разработки, которая называется BIDS (Business Intelligence Development Studio). По сути, это надстройка над Visual Studio, которая также связана со средством командной разработки Team System: в связи с этим у разработчиков есть ресурсы для проектирования, разработки, совместной работы, оптимизации и тестирования. В результате появляется интегрированная среда с интуитивно ясным интерфейсом, где разработчики могут достаточно быстро и эффективно создавать приложения. Кроме того, повышается производительность труда при разработке за счет мастеров бизнес-аналитики, Business Wizards, которые дают возможность даже начинающим пользователям строить модели достаточно сложных задач бизнес-аналитики. Таким образом, разработка решений, в том числе многомерная, OLAP, использование механизмов KPI анализа ключевых показателей и других задач, связанных с OLAP-обработкой данных, становится доступной большому количеству аналитиков, а не профессионалов в области разработки.

Проверка корректности структуры данных в интерфейсе SQL Server (рис. 16.2) реализуется посредством иерархии Calendary и по отношению к измерению времени на основе оповещений. Это одно из новых дополнений, которое автоматически информирует о возможных недочетах на ранних стадиях процесса разработки, позволяет сократить потери времени, вызванные проектными ошибками, и ускорить разработку. Это просто пример оповещения. Как видно из рисунка, выделяются проблемные области, они подсвечиваются. При этом они не затрагивают функциональность системы, поскольку оповещения можно как игнорировать, так и отклонять либо по отдельности, либо глобально. Вообще же таким образом можно осуществлять контроль над относительно неэффективными решениями на ранних этапах разработки. Напомним, что методология Microsoft призвана как раз выявлять ошибки на ранних стадиях разработки и осуществлять в связи с этим оптимизацию производительности по затратам времени и средств. Кроме создания оповещений в реальном времени, возможно насквозь осуществлять сканирование проекта решения и затем выдавать текущее оповещение по проекту, как это показано на рис. 16.3, который демонстрирует набор правил для проверки корректности, в том числе на основе OLAP-анализа данных, многомерной оптимизации, анализа многомерных данных на основе куба в пространственном приложении и т. д.

Рис. 16.2. Проверка корректности структуры данных

Рис. 16.3. Набор правил для проверки корректности

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

Рис. 16.4. Проектирование связи между атрибутами

Рисунок 16.5 демонстрирует интеграцию с офисными приложениями, в том числе с Microsoft Excel.

Частично возможности подобной интеграции рассматривались при обсуждении офисных приложений. Нужно добавить, что приложение Excel 2007 является полнофункциональным клиентом служб Analysis Services, которые входят в состав SQL Server 2008. При этом возможности Excel 2007 поддерживаются в следующих областях: это доступ к данным, которые хранятся в OLAP-кубах служб Analysis Services. Excel позволяет создавать сводные таблицы с представлением многомерных данных, т. е. пользователи в рамках привычных им интерфейсов Microsoft Excel могут по-разному разбивать данные, обрабатываемые на сервере, результаты кэшируются на сервере и на клиенте и дают возможность повышения производительности вычислений. Доступ пользователей к функциям и аналитическим возможностям служб Analysis Services – это ключевой показатель эффективности KPI, вычисляемые элементы, именованные наборы данных, есть и переводы, также осуществляются централизованно.

Рис. 16.5. Интеграция с MS Excel

Надстройки над приложениями Office 2007, не только Excel, но и над другими приложениями, для извлечения и обработки данных, которые предоставляют в распоряжение конечных пользователей средства анализа и прогноза данных, реализованы в SQL Server 2008. Новой является функция автоматического анализа, например, определение исключений, в которых данные отличаются от шаблонов, которые заранее заданы или наблюдаются в других областях таблицы, а также специализированных диапазонов данных, которые можно выделить, функции предсказания будущих данных по текущим тенденциям, анализ сценариев моделирования по определенным условиям, определение изменений, необходимых для достижения какой-либо конкретной цели, также можно фиксировать и отслеживать. Создание отчетов по информации, которая предоставлена службами Analysis Services, при помощи служб отчетов Reporting Services и визуализация этих отчетов в виде таблиц Excel дают возможность обеспечить большую доступность для конечных пользователей.

Далее обсудим средства и пути анализа данных. Используются средство Data Mining Client для Excel 2007 и определенные шаблоны, которые поддерживают интеграцию Data Mining, добычу данных для Visual Studio 2007. В надстройке BIDS (Business Intelligence Development Studio) Visual Studio 2007, о которой уже говорилось, используется средство Data Mining Designer. Естественно, реализация средств анализа данных основана на концепции объектов, и используется подход Analysis Management Objects (AMO) и открытые интерфейсы API на его основе. Также возможно подключение сторонних алгоритмов для анализа данных.

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

Как и в случае с OLAP-технологиями, извлечение и обработка данных ранее было прерогативой узких специалистов высокой квалификации и было поэтому дорогостоящим. Однако сейчас за счет комплексной реализации технологии извлечения и обработки данных в службах Analysis Services и тесной интеграции с приложениями Office 2007, в частности Excel, корпорации Microsoft удалось создать достаточно эффективные экономические решения, которые позволяют практически каждому пользователю, знакомому с Office, делать задачи по извлечению и анализу данных на основе использования служб Service Analysis платформы SQL Server.

Проиллюстрируем возможности извлечения данных, Data Mining, на основе стандартного клиента для Microsoft Excel 2007. Именно это средство облегчает извлечение и анализ данных для пользователей, поскольку основано на стандартной платформе Office. Этот набор средств дает возможность эффективного анализа и визуализации различных представлений данных (рис. 16.6) средствами офисных приложений, в данном случае электронные таблицы.

Рис. 16.6. Data Mining Client для Excel 2007

Таким образом, пользователи могут повысить эффективность принимаемых ими решений, оперативно получая практические рекомендации путем выполнения нескольких простых действий, для чего существует специализированная надстройка, которая называется Table Analysis Tools для Excel 2007. Сложность извлечения и обработки данных при этом инкапсулируется набором интуитивно понятных задач, которые дают возможность пользователям относительно прозрачно переходить от исследования к построению предметно-ориентированного решения на основе тех понятий, которыми они владеют, в бизнес-терминах и производить эффективное извлечение и анализ данных, проверять их корректность и осуществлять доступ к этим данным. Также существуют шаблоны, которые называются Data Mining Templates и позволяют извлекать и обрабатывать данные на основе приложения Visio. Хотелось бы напомнить, что Visio имеет средства интеграции с Microsoft Visual Studio и является на сегодня компонентом Microsoft Office, т. е. интегрирован и с. NET, и с SQL Server 2008. При этом возможно достаточно легкими средствами генерировать большое количество стандартного рода диаграмм и таким образом формировать широкую, интуитивно понятную и способствующую коллективной работе систему, которая открывает путь к повышению эффективности совместно принимаемых бизнес-решений по всей корпорации с учетом анализа и прогноза данных.

На рис. 16.7 представлен пример применения средства Data Mining Designer, который позволяет интегрировать средства извлечения данных и бизнес-аналитики в пакет Microsoft Office 2007.

Рис. 16.7. Пример применения средства Data Mining Designer

При этом используется средство интеграции с SQL Server, которое называется BIDS. Оно имеет проектно-ориентированную структуру и содержит все средства, которые позволяют отлаживать и управлять исходными текстами, как и в Visual Studio, для того чтобы бизнес-аналитики могли не только проектировать, но и создавать и корректировать собственные решения. Естественно, такой подход возможен только для достаточно квалифицированных пользователей, которые могут создавать собственные системы, и позволяет грамотно распределять функционал между пользователями разных уровней, декомпозировать задачи и получать их решения в сжатые сроки и с наивысшим качеством.

Business Intelligence Development Studio – это фрагмент SQL Server, который представляет собой комплексную среду разработки на основе Microsoft Visual Studio, это надстройка над Visual Studio. С помощью этой среды разработчики могут создавать структуру данных для их извлечения и обработки, могут настраивать доступ к данным по столбцам, к данным таблиц, добавлять множество моделей для извлечения и обработки данных, в том числе гетерогенных, слабоструктурированных, которые предусматривают различные алгоритмы извлечения данных и размещения их в этих таблицах. По сути, речь идет о применении технологии, схожей с DataGrid, т. е. достаточно гибкой технологии по извлечению и представлению данных, их форматированию для создания корпоративных консолидированных отчетов.

Шаблон приложения проекта служб Analysis Services BIDS, изображенный на рис. 16.8, включает в себя средства проектирования с интуитивно понятным интерфейсом для создания и просмотра моделей извлечения и обработки данных, а также обеспечивает перекрестную проверку корректности и построения диаграмм превышения и прибыли.

Рис. 16.8. Performance Point Server

Это позволяет перед развертыванием моделей сравнить их качества, причем используя средства визуального контроля, и по результирующим статистическим метрикам погрешности и точности обеспечивает корректный выбор процедуры дальнейшего развития корпоративных систем и корпоративной стратегии. Существует стандартное средство, встроенное в Microsoft SQL Server, которое называется Performance Points Server и создано для оценки и анализа KPI (Key Performance Indicators) – основных показателей бизнес-деятельности.

На рис. 16.8 представлено решение, которое используется на значительном количестве предприятий корпоративного типа для оценки соответствия различных плановых значений, прежде всего финансовых показателей, ключевым значениям. Это одна из основных бизнес-метрик. Служба Analysis Services SQL Server 2008 обеспечивает централизованную базу данных для учета KPI в масштабах всей корпорации. При этом существует приложение Microsoft Office Performance Point Server 2007, с которым поддерживается интеграция, что дает возможность топ-менеджерам и лицам, принимающим решения, создавать специализированные панели, Dashboard или аналоги приборной панели, где они могут отслеживать ключевые показатели компании и принимать решения на основе динамики анализа этих показателей. При этом ключевые показатели традиционно имеют ретроспективный характер. Можно отслеживать, например, динамику продаж с учетом изменения запасов за последний месяц, квартал, год и т. д., а располагая знаниями прогностического анализа, организация может формулировать ключевые показатели KPI на будущие периоды и планировать свою деятельность, выявлять и разрешать потенциальные проблемы и узкие места.

На рис. 16.8 изображен один из показателей эффективности KPI, а именно число заказов, которые относятся к будущему периоду и, как ожидается, будут размещены впоследствии. Рисунок 16.9 иллюстрирует Reporting Services.

Следует напомнить, что построение консолидированных отчетов является важной целью для каждой корпорации, для анализа результатов функционирования различных компаний, подразделений и видов деятельности. Для построения такого рода отчетов существуют службы Reporting Services на платформе SQL Server 2008, которые дают возможность генерации параметрических отчетов исходя из прогнозируемой вероятности. Например, рис. 16.9 иллюстрирует результаты запроса, который анализирует список потенциальных клиентов некоторой гипотетической компании Adventure Works, занимающейся продажей велосипедов, и оценивается вероятность покупки этими клиентами велосипедов. Запрос фильтруется таким образом, чтобы в результате возвращались только те потенциальные клиенты, для которых вероятность покупки превышает 50 %. Представлен полученный отчет, на основе которого корпорация может разработать маркетинговую кампанию, нацеленную только на ту аудиторию, которая с наибольшей вероятностью осуществит такую покупку велосипеда. Подобная процедура существенно повышает эффективность работы корпорации по направлениям и дает возможность обеспечить окупаемость инвестиций.

Рис. 16.9. Reporting Services

Следующая схема иллюстрирует обеспечение сетевой готовности в рамках SQL Server 2008:

• поврежденные страницы данных можно восстановить с зеркального сервера благодаря улучшенному зеркалированию баз данных;

• улучшения в создании отказоустойчивых кластеров в ОС Windows Server 2008;

• новые узлы в одноранговую репликацию можно добавлять во время работы, не отключая репликацию;

• сжатие резервных копий позволяет сократить время, требуемое на восстановление, а также уменьшить количество занимаемого резервными копиями пространства;

• изменения в механизме блокировок улучшают одновременную работу;

• возможность горячей замены процессора снижает время простоев из-за обслуживания оборудования;

• регулятор ресурсов позволяет осуществлять упреждающий контроль приоритетности рабочей нагрузки.

Как указывалось ранее, хранение данных под управлением СУБД осуществляется в страницах памяти. Если происходит повреждение страниц данных, например в результате программного или аппаратного сбоя, то поврежденные страницы можно восстановить благодаря улучшенному зеркалированию баз данных, используя зеркальные серверы. Также реализован целый ряд механизмов по усовершенствованию отказоустойчивости кластеров на основе функционирования ОС Windows Server 2008, т. е. на уровне ОС. Новые узлы, т. е. новые машины, можно добавлять во время работы сервера, не отключая механизмы репликации, и при этом репликация продолжается. Резервные копии могут храниться в сжатом виде, что обеспечивает сокращение времени восстановления и позволяет существенно уменьшить количество пространства, которое отводится на хранение резервных копий. Изменения в механизме блокировок транзакций, улучшенная обработка блокировок транзакций (существуют взаимные блокировки транзакций и целый ряд проблем, связанных с разрешением этих блокировок) улучшают одновременную работу большого количества пользователей, что является крайне важным для корпоративных приложений. Кроме того, существует возможность горячей замены процессора сервера базы данных, что обеспечивает снижение времени простоя и, кроме того, может обеспечить динамическую приоретизацию с упреждающим контролем приоритетности нагрузки, т. е. улучшенное управление ресурсами.

Еще один важный аспект функционирования Enterprise Server 2008 связан с SSIS (SQL Server Integration Services) – службой интеграции, в данном случае он существенно улучшен по сравнению со стандартным ETL-подходом к интеграции, который лежит в основе большинства информационных хранилищ. ETL – это извлечение, преобразование и загрузка данных. Однако потребности в реализации совместного использования большого количества разнообразных источников данных, а также соседство глобальных онлайновых операций быстро меняют традиционные требования к интеграции данных. При этом для извлечения максимальной выгоды, достижения максимальной эффективности собранных и подлежащих анализу данных необходимо повышение эффективности интеграции этих данных для повышения эффективности принятия решений и обеспечения консолидированных отчетов. В связи с этим службы интеграции дают нам возможность построения достаточно гибкой и масштабируемой архитектуры, которая повышает эффективность интеграции гетерогенных данных различной степени структурированности, в различных корпоративных бизнес-средах. Для корпорации Enterprise Server является достаточно хорошим решением.

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

Рис. 16.10. Отсутствие промежуточного хранения данных

Поэтому традиционные ETL-архитектуры существенно ограничивают возможность системы реагировать на новые требования бизнеса. На рис. 16.10 представлена структура SSIS, которая реализована в SQL Server, минимизирует промежуточное хранение данных, совершенствуя ETL-процессы, и справляется с большинством технологических проблем, возникающих при интеграции и промежуточном хранении данных. Как показано на рисунке, SSIS минимизирует или вовсе исключает промежуточное хранение. При этом службы позволяют обеспечить возможность сложных манипуляций над данными на основе конвейерных операций и реагировать на изменение данных достаточно оперативно. Такого рода архитектура существенно отличается от традиционных и позволяет повысить эффективность манипулирования и совместного использования гетерогенных данных.

Рассмотрим структуру SSIS – Microsoft SQL Server Integration Services. В основе лежит разделение на потоки задач и потоки данных, без промежуточного хранения и без дублирования информации. SSIS содержат ядро поддержки потока задач, которое ориентировано на операции, а также масштабируемое быстрое ядро поддержки потока данных. Поток данных при этом существует в контексте общего потока задач. Первое ядро предоставляет ресурсы и поддержку операций для второго ядра. Такое сочетание потоков задач и потоков данных этих двух ядер обеспечивает эффективность подхода как для традиционных ETL-решений, так и для гетерогенных информационных хранилищ. При этом во многих более сложных ситуациях, например при поддержке центров обработки данных, использование подобного подхода оправданно и повышает эффективность.

Что касается потоков данных, попробуем рассмотреть некоторые примеры, в частности применение SSIS для поддержки процессов и работ, которые ориентированы на центры обработки данных. В основе лежит применение конвейерного подхода для преобразования данных. Архитектура конвейера поддерживает буферизацию, что позволяет конвейеру достаточно быстро осуществлять манипуляции над наборами данных после их загрузки в память. При этом суть похода заключается в выполнении всех этапов ETL-преобразований в рамках одной операции без промежуточного хранения. Хотя специфичные требования к преобразованию, операциям или оборудованию могут несколько осложнить реализацию этого подхода, тем не менее для повышения производительности архитектура позволяет в целом минимизировать объем промежуточного хранения данных. SSIS, по возможности, даже избегает копирования данных памяти, что принципиально отличается от традиционных ETL-средств, которые часто требуют промежуточного хранения данных практически на каждом этапе процесса преобразования, обработки, интеграции данных. Такого рода поддержка манипуляций над данными без промежуточного хранения позволяет существенно улучшить ETL-средства, а также дать возможность поддержки хранения и манипулирования с реляционными и плоскими данными. При этом гетерогенные данные, как структурированные, так и неструктурированные, хранящиеся в формате XML и т. д., перед загрузкой в буферы преобразуются в табличную структуру, т. е. разбиваются на строки и столбцы. И далее любую операцию с табличными данными можно выполнять на любой стадии функционирования конвейера поточной обработки данных. Это означает, что единственный конвейер способен интегрировать разнообразные источники данных и выполнять над этими источниками данных операции произвольной степени без промежуточного хранения. Конечно, если промежуточное хранение по эксплуатационным требованиям является необходимым, то SSIS дает возможность поддерживать и такого рода реализации. Эта архитектура позволяет применять SSIS в самых разных сценариях интеграции данных, от традиционных ETL-решений до нетрадиционных способов интеграции гетерогенной корпоративной информации.

SSIS судя по рис. 16.11 дает возможность комплексной полнофункциональной ETL-интеграции, обеспечивая возможности по функциональности, масштабируемости и производительности, существенно более высокие, чем у большинства конкурирующих аналогов, при значительно меньших затратах. Особенность решения составляет конвейерная архитектура, которая дает возможность получать данные из множества источников одновременно, выполнять целый ряд преобразований последовательно и передавать данные нескольким приемникам в параллельном режиме. Такого рода архитектура дает возможность применять SSIS-технологии не только для больших наборов данных, но и для множественных потоков данных. При перемещении данных из источника к приемнику или из нескольких источников к нескольким приемникам можно разделять, объединять, комбинировать потоки данных или иным образом манипулировать информацией. Рисунок 16.11 дает иллюстрацию примера манипулирования потоками данных при таком преобразовании. Рисунок 16.12 иллюстрирует процесс очистки данных.

Рис. 16.11. Схема интеграции данных

SSIS тесно интегрирована с функциональностью просеивания или очистки данных в службах анализа данных. Поддержка анализа данных обеспечивает абстрагирование от закономерностей в наборе данных, инкапсулирует их модели анализа. Можно применять эту модель анализа для того, чтобы предсказать, какие данные относятся к набору, а какие нет, т. е. просеять данные и отсечь так называемые аномальные. То есть можно использовать анализ данных как инструмент, который повышает качество данных в корпоративной системе и снимает противоречия или намеренные искажения данных сотрудниками. Поддержка сложного распределения данных в SSIS позволяет не только выявить аномальные данные, но и автоматически корректировать или заменять их. Это делает возможным варианты очистки по принципу замкнутого цикла.

Рис. 16.12. Очистка данных

Пример использования потока как источника данных, эта важная особенность SSIS, представлен на рис. 16.13.

Имеется возможность загрузки данных в компонент Data Reader ADO.NET. Этот компонент можно включить в конвейер потока данных, что дает возможность использовать Data Reader как источник данных, которые предоставляются собственно ADO.NET. При этом можно использовать SSIS не только как традиционные ETL-инструменты для загрузки, преобразования данных в хранилище, но и как источник данных, который может предоставлять доступ к интегрированным и синхронизированным в очищенные данные источник, причем по запросу пользователя, и делать это даже из офисных приложений. Например, эту функциональность можно задействовать для того, чтобы службы отчетов, Reporting Services, извлекали данные из множества разнообразных источников, в которых хранится информация для корпоративных приложений. При этом SSIS-пакеты используются как источник данных. Для управляемости корпоративных систем на основе SQL Server используются подходы, связанные с политиками, автоматизированным обслуживанием на основе задач, и оповещение операторов и графиков, средства Performance Data Collection, которые позволяют оптимизировать производительность графическим образом, и специальный инструмент для оптимизации индексов таблиц баз данных и разделов, который называется Data Base Engine Tuning Advisor. Осуществляются принципы упреждающего управления, которые обеспечивают: логическое представление конфигурации системы, что позволяет администраторам заблаговременно определять желаемую конфигурацию служб данных, а не вносить изменения после того, как возникнут проблемы; интеллектуальный мониторинг, который поддерживает на основе политик инфраструктуры управление, отслеживание и запрещение изменений, несовместимых с желаемыми конфигурациями; а также виртуализацию управления, которая позволяет масштабировать изменения по инфраструктуре, структуре корпорации, передавать или распределять их по большому количеству серверов, что облегчает применение унифицированных политик во всей организации.

Рис. 16.13. Использование потока как источника данных

Каким образом осуществляется создание конфигурационных политик?

На рис. 16.14 представлен механизм инструментария для создания политик. SQL Server 2008 поддерживает существенно расширенный набор элементов управления конфигурациями и правилами настройки сервера баз данных.

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

Рис. 16.14. Создание политик

Aspect Surface Area позволяет управлять активными функциями и уменьшить потенциальную уязвимость сервера. Aspect Data Base управляет изменением определенных параметров баз данных, например параметров совместимости. Aspect Multipart Name обеспечивает соблюдение правил именования таблиц, представление других объектов баз данных, определенных в схеме. Ряд других аспектов позволяет реализовать приемы и методы работы, рекомендованные для конкретных решений или конфигураций баз данных, например хранение файлов с данными или файлов с журналом изменений на жестких дисках.

Еще один инструмент называется Performance Data Collection и позволяет осуществлять сравнение интегрированных отчетов о функционировании серверов в графическом виде. Он дает возможность быстро проанализировать собранные данные с использованием стабильно работающих системных наборов элементов сбора данных. Системный набор элементов данных сервера, Server Activity, является важной отправной точкой для большинства сценариев, осуществляющих мониторинг по устранению неполадок в системе. Группа отчетов, связанная с каждым из системных наборов данных сбора и набора элементов для сбора данных, публикуется в SQL Server Management Studio. На основе этих отчетов можно сделать приборную панель, которая информирует о производительности. Она так и называется – Performance Dashboard. При помощи этой приборной модели (рис. 16.15) можно анализировать производительность СУБД.

Кроме этих системных отчетов можно использовать другие отчеты Performance Studio о производительности, например, SQL Server Management Studio поддерживает другие отчеты, один из которых представлен на рис. 16.16 – стандартный отчет об использовании памяти. Важным средством работы системных администраторов с сервером в консольном виде на основе MMC (Microsoft Management Console) – стандартной оснастки, представлен на данном рисунке, это SQL Server Configuration Manager. В виде консоли можно осуществлять оптимизацию параметров сервера на основе целого ряда инструментов в жесткие сроки и в привычном интерфейсе. Средства конфигурирования SQL Server позволяют администратору управлять группами служб, ответственных за вверенные им функции. Это дает возможность администраторам сосредоточиться на управлении базами данных и оптимизации их производительности.

Рис. 16.15. Отчет о функционировании сервера

Что касается производительности и масштабируемости, то осуществляется как горизонтальное, так и вертикальное масштабирование. Это важно для крупных корпораций с большим количеством серверов. При горизонтальном масштабировании используется оптимизация мощностей сервера, возможно горячее переподключение или замена оборудования. При вертикальном масштабировании осуществляется обработка на основе использования резервных копий данных. Кроме того, поддерживается одноранговая репликация, маршрутизация данных, а также те возможности, о которых говорилось в связи с Performance Studio. Это крайне важно для больших корпораций с быстрым ростом объемов существенных данных, количества пользователей и для тех организаций, где масштабируемость приложений является бизнес-критичной. SQL Server 2008 предоставляет устойчивый обработчик баз данных, который может работать с большими реляционными базами данных и обеспечивает обработку сложных запросов.

Рис. 16.16. Отчеты SQL Management Studio

Что касается программируемости, то имеется целый ряд средств, которые поддерживают обработку на основе LINQ. Это средство формирования запросов на основе объектных технологий, а также используются все механизмы Visual Studio и SQL Server Compact Edition для работы с мобильными средствами связи. LINQ-ToSQL поддерживает оперативную разработку приложений с интеграцией программных объектов в SQL с элементами SQL, таблицами, представлениями, хранимыми процедурами и пользовательскими функциями. Существует также LINQToEntities, которым осуществляется поставление объектов реляционным таблицам, LINQToDataSet, поддерживаются также богатые возможности запросов на основе обычных и типизированных наборов данных, LINQToXML, это API для доступа к XML-объектам, хранимым в оперативной памяти, поддерживающей. NET языки и LINQToObject, обеспечивает взаимодействие с произвольными объектами данных в оперативной памяти, а также данными из сторонних источников.

Ряд средств осуществляет управление отчетами. Это управляемая система бизнес-отчетности, которая дает возможность автоматизированного создания отчетов по разным аспектам бизнеса и распространения их по всей инфраструктуре корпорации, обеспечивая в реальном времени доступ к информации каждому сотруднику. Автоматизированная система отчетности дает возможность пользователям создавать свои собственные отчеты с достаточно гибкими возможностями по извлечению, преобразованию информации. Также существует встроенная отчетность с интеграцией между бизнес-приложениями и веб-порталами на основе конкретных бизнес-процессов. При этом поддерживается тесная интеграция с SharePoint Server 2007, со средством создания веб-порталов, и централизованная библиотека отчетов на основе компонентов интегрирована с SharePoint.

Есть возможность создания панелей мониторинга, централизованного сбора структурированных и неструктурированных данных и контроля за доступом пользователей к информационной инфраструктуре корпорации в любой момент времени. Построитель отчетов дает возможность быстрого построения и разворачивания отчетов для большого количества пользователей в единообразной и строгой структуре. При этом отдельные бизнес-пользователи могут настраивать отчеты или создавать собственные отчеты в соответствии со своими конкретными требованиями. Конструктор отчетов является достаточно эргономичным, ориентированным на бизнес-потребности и дает возможность извлекать гетерогенные данные об аспектах деятельности предприятия. Это могут быть заказчики, объем продукции и т. д. На рис. 16.16, где изображен построитель отчетов, показана модель, ориентированная на использование данных для решения коммерческих задач. Построитель отчетов дает возможность пользователям создавать надежные отчеты, не обладая глубокими знаниями о том, как строятся SQL-запросы, каким образом данные представляются в системе и из каких источников они поступают. Диспетчер отчетов позволяет строить управление отчетами через Интернет, осуществлять интернет-доступ к этим отчетам. Администраторы могут при этом просматривать отчеты и управлять настройкой параметров обработки отчетов и безопасности с любого компьютера просто посредством браузера.

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

Рис. 16.17. SQL Server Confguration Manager

Это существенно упрощает для администраторов выполнение ряда задач, необходимых для развертывания служб отчетов, сокращает затраты рабочего времени и ускоряет получение отчетности. Безопасность включает различные виды аутентификации, расширенное управление авторизацией и использование передовых технологий шифрования. Основные виды аутентификации: базовая аутентификация, хеш-аутентификация, аутентификация посредством сетевого протокола NTLM, аутентификация посредством протокола Kerberos, стандартного протокола для Windows 2000 и выше, и встроенная аутентификация.

Базовая аутентификация описывается протоколом HTTP, хеш-аутентификация дополнительно использует алгоритм MD5 перед отправкой данных на сервер, с возможностью подключения удостоверений. Аутентификация по методу NTLM использует протокол запрос-ответ и дает возможность обеспечить безопасную аутентификацию с учетом указания допустимой доменной учетной записи. Аутентификация Kerberos использует специализированный протокол, и необходима регистрация в Kerberos Services Principle Name с помощью специальной утилиты Set SPN, которая входит в набор базового инструментария. Встроенная аутентификация, или Integrated Autentification, объединяет NTLM и Kerberos и по запросу пользователя осуществляет выбор того или иного механизма аутентификации, что обеспечивает наиболее гибкую и безопасную аутентификацию из поддерживаемых возможностей.

Наконец, последний аспект, о котором хотелось бы поговорить в связи с SQL Server, связан с пространственными данными. Это прежде всего данные, связанные с геодезией и картографией, представлением данных, которые могут быть использованы, например для веб-узла розничной торговли, когда можно найти ближайшую торговую точку по карте и проложить маршрут к ней, можно управлять движением менеджера по продажам, при привязке покупателей к продавцам и анализе эффективности продаж. Можно привязывать архитектурный проект нового здания к местоположению на карте, можно определять маршрут для водителя, осуществлять быстрый поиск объектов недвижимости по заданным адресам и вести поиск кафе или автозаправок по заданному адресу, с учетом заданного радиуса действия. Кроме того, можно поддерживать пространственный индекс (рис. 16.18) и импорт пространственных данных. Поддерживается как геодезическая, так и планарная модель и преобразование данных из одного формата в другой. Особенности форматов данных показаны на рис. 16.18.

Производительность запросов пространственных данных существенно повышается за счет поддержки пространственного индекса. Принцип работы – степень детализации. Из рис. 16.18 видно, как осуществляется детализация. Пространственные данные можно индексировать при помощи гибкого многоуровневого сетчатого индекса, интегрированного в ядро базы данных SQL Server. При этом пространственные индексы содержат сетчатую иерархию, в рамках которой каждый уровень индекса дает возможность доступа к сектору сетки, который определен на предыдущем уровне. Концептуальная модель показана на рис. 16.18.

Рис. 16.18. Пространственный индекс

На основе такого рода подхода можно задавать интеграцию с моделью Virtual Earth, это аналог Goolge Earth от Microsoft. На рис. 16.19 показаны районы, которые задаются почтовым индексом, и данные о населении и числе ресторанов на данном фрагменте географической карты.

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

Как видно, Microsoft SQL Server поддерживает действительно гибкую и надежную организацию различных механизмов доступа к данным и интеграцию гетерогенных корпоративных источников данных, а также работу пользователей с данными на основе различных офисных приложений в знакомой им среде.

Рис. 16.19. Интеграция с Virtual Earth

На этом следует закончить рассказ о корпоративных технологиях объектных библиотек данных, а также об управлении этими данными на уровне СУБД. Попробуем подвести промежуточные итоги второго раздела нашей книги.

Были рассмотрены вопросы, связанные с программными архитектурами, CASE-средствами, т. е. средствами автоматизации проектирования корпоративных приложений, и архитектурами взаимодействия этих приложений в распределенных средах. Естественно, для проектирования таких сложных и больших систем, как корпоративная, необходимы специализированные средства, поддерживающие весь их жизненный цикл, от анализа и проектирования до управления сопровождением и документированием. Для иллюстрации корпоративных приложений была использована платформа Microsoft.NET, которая поддерживает языковую интероперабельность, т. е. проектирование компонентных приложений на различных языках программирования, наиболее полно соответствующих требованиям, которые выдвигаются для этих приложений. Надстройкой над классами, поскольку речь идет об объектно-ориентированном проектировании, о компонентно-ориентированном проектировании, постулируется, что всякая сущность есть объект, является целый ряд библиотек, в частности поддерживающих формы доступа к данным, клиентские интерфейсы, например на основе технологии Windows Forms, и проектирование распределенных приложений на основе технологии Remoting, внутренней технологии Microsoft, и более-менее открытых технологий на основе сервисов, сервисно-ориентированной архитектуры, это SOA. Это веб-сервисы и приложения, реализованные на основе Windows Communication Foundation (WCF).

Развитием объектного подхода является компонентно-ориентированная технология, которая дает возможность проектирования и реализации корпоративных приложений на основе открытых интерфейсов и концепции сборок, когда приложения могут поставляться на основе DLL– или EXE-файлов, которые независимы и могут надежно и безопасно интегрироваться друг с другом по запросу, и пользователь оплачивает только стоимость тех компонентов, которые его интересуют. На основе этих компонентов осуществляется построение офисных приложений – была рассмотрена библиотека Visual Studio Tools for Office и корпоративных приложений – библиотека Enterprise Library, которая осуществляет извлечение, преобразование и загрузку данных и интеграцию гетерогенных источников, что позволяет осуществить эффективное, надежное, безопасное и эргономичное манипулирование данными в корпоративных системах.

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК