Основные сведения об архитектуре хранилища данных
Обновлен: Ноябрь 2007
Хранилище отчетности Team Foundation представляет собой традиционное хранилище данных, состоящее из реляционной базы данных, организованной по приближенной к типу "звезда" схеме, и базы данных OLAP, надстроенной над реляционной базой данных. На следующей схеме показана высокоуровневая архитектура хранилища данных Team Foundation и отношения между оперативными хранилищами, хранилищем данных и отчетами команды.
Оперативные хранилища
Для хранения данных, используемых в ежедневной работе каждым из инструментов и подключаемых модулей Team Foundation, служит реляционная база данных под управлением Microsoft SQL Server 2005. Эта реляционная база данных часто называется оперативным хранилищем. Ниже перечислены оперативные хранилища Team Foundation:
Базы данных общей структуры (TfsIntegration и TfsActivityLogging)
Базы данных отслеживания рабочих элементов (TfsWorkItemTracking и TfsWorkItemTrackingAttachments)
База данных системы управления версиями (TfsVersionControl)
База данных Team Foundation Build (TfsBuild)
База данных команды тестеров (TfsBuild)
В конкретных случаях также могут иметься оперативные хранилища, созданные для сторонних инструментов.
Как и у большинства оперативных хранилищ, схема реляционной базы данных разработана и оптимизирована для оперативной транзакционной обработки данных. При выполнении того или иного действия инструмент или подключаемый модуль записывает последнюю информацию в оперативное хранилище. Таким образом, данные в оперативном хранилище постоянно изменяются и обновляются, и все данные рассматриваются как текущие.
Адаптеры хранилища
Поскольку каждый инструмент или подключаемый модуль имеет свои собственные требования к схеме и данные хранятся в оперативном хранилище для оптимизации транзакционной обработки, назначение адаптера хранилища данных состоит в приведении оперативных данных в виду, пригодному для использования хранилищем данных. Адаптер хранилища данных представляет собой управляемую сборку, которая извлекает данные из оперативного хранилища, преобразует данные в совместимый с хранилищем данных стандартизованный формат и записывает преобразованные данные в реляционную базу данных хранилища. Для каждого оперативного хранилища существует отдельный адаптер.
Адаптер хранилища данных копирует и преобразует те поля данных, которые указаны либо в базовой конфигурации хранилища данных, либо в шаблоне процессов, использовавшемся при создании командного проекта. Если шаблон процессов впоследствии был изменен, т. е. в него были добавлены или из него были удалены поля данных для записи в хранилище, изменения обнаруживаются при следующем выполнении адаптера. Адаптер выполняется периодически с частотой, определяемой свойством RunIntervalSeconds. По умолчанию значение частоты обновления составляет 3 600 секунд, поэтому необходимо обратить внимание на соответствие частоты обновления потребностям данной установки. Дополнительные сведения об изменении частоты обновления см. в разделе Практическое руководство. Изменение частоты обновления хранилища данных для Team System.
Важно, чтобы данные из реляционной базы данных не записывались в куб данных во время обновления самой реляционной базы данных данными из оперативного хранилища. Во избежание конфликтов чтения и записи данных адаптеры, отправляющие и запрашивающие данные, синхронизируются. По завершении адаптерами соответствующих вызовов выполняется повторная обработка куба.
Реляционная база данных хранилища
Вклад каждого инструмента в хранилище данных описывается в виде XML-схемы. Схема определяет поля, записываемые в реляционную базу данных в качестве измерений, мер и сведений. Схема также сопоставляется непосредственно с базой данных OLAP.
Данные в хранилище хранятся в наборе таблиц, организованных по схеме "звезда". Центральная таблица схемы "звезда" называется таблицей фактов, а связанные с ней таблицы представляют собой измерения. Измерения используются для разбиения отчетов на более мелкие части. Строка таблицы фактов обычно содержит либо значение меры, либо ссылку внешнего ключа на таблицу измерения. Строка представляет текущее состояние каждого элемента, фигурирующего в таблице фактов. Например, таблица фактов "Рабочий элемент" содержит по одной строке для каждого рабочего элемента, хранящегося в оперативном хранилище "Рабочий элемент".
В таблице измерения хранится набор значений, имеющихся для данного измерения. Одно и то же измерение может использоваться разными таблицами фактов и кубами или одной таблицей фактов (одним кубом данных). Например, на измерение "Пользователь" будет ссылаться таблица фактов "Рабочие элементы" для получения свойств "Назначено", "Открыто", "Разрешено" и "Закрыто" и таблица "Обработка кода" — для получения свойства "Возвращено".
Меры — это значения, которые берутся из оперативных данных. Например, "Всего обновлений" — мера, показывающая количество изменений исходного кода в выбранных наборах изменений. Особой мерой является мера "Счетчик", поскольку она может быть неявной, когда на каждый учитываемый элемент приходится по одной записи. Меры, определенные в таблице фактов, образуют группу мер в кубе.
Дополнительные сведения о фактах, измерениях и мерах в хранилище данных см. в разделе Основные сведения о структуре куба хранилища данных.
Куб OLAP хранилища
Таблицы фактов — хороший источник информации для отчетов, характеризующих текущее состояние дел. Однако для отражения в отчетах динамики изменяющихся во времени данных необходимо дублировать одни и те же данные для каждого временного интервала, включаемого в отчет. Например, для формирования отчета о ежедневной динамике рабочих элементов или результатов тестов в хранилище должны сохраняться состояния всех элементов на каждый день. Это позволяет кубу данных агрегировать меры по дням. Куб данных OLAP хранилища агрегирует и данные из лежащей в его основе схемы "звезда", и временные данные в многомерные структуры.
При каждой обработке куба данные, хранящиеся в схемах "звезда" в реляционной базе данных, переносятся в OLAP-куб, агрегируются и сохраняются. Данные в кубе агрегируются так, что высокоуровневые отчеты, которые в ином случае требовали бы сложной обработки с использованием схемы "звезда", могут представлять собой простые операторы SELECT. Куб играет роль централизованного источника данных для отчетов, что позволяет обойтись без знания схем оперативных хранилищ и устраняет необходимость в отдельном обращении к каждому их них.
Отчеты конструктора отчетов
Конструктор отчетов — это компонент Visual Studio, позволяющий определить хранилище данных Team Foundation в качестве источника данных и затем в интерактивном режиме сконструировать отчет. Конструктор отчетов содержит окна с вкладками "Данные", "Макет" и "Просмотр", позволяющие добавлять наборы данных для реализации задуманных функций отчета или корректировать макет отчета в зависимости от результатов предварительного просмотра. Помимо рабочих областей "Данные", "Макет" и "Просмотр", в конструкторе отчетов предусмотрены построители запросов, редактор выражений и мастера, которые помогают шаг за шагом создать простой отчет или вставить в отчет изображения. Дополнительные сведения о работе с конструктором отчетов см. в разделе Начало работы с настраиваемыми отчетами для Team System.
Отчеты Excel
Система Team Foundation интегрирована с приложением Microsoft Excel, что позволяет использовать Microsoft Excel для управления проектами и подготовки отчетов. Сводные таблицы и диаграммы Microsoft Excel очень удобно использовать для просмотра и анализа многомерных данных. Сводные таблицы можно связать непосредственно с OLAP-кубом Team Foundation, чтобы можно было взаимодействовать с данными в кубе. Дополнительные сведения об использовании Microsoft Excel для создания отчетов см. в разделе Использование Microsoft Excel для создания отчетов Team Foundation Server.
Безопасность
Безопасность хранилища данных Team Foundation определяется на уровне базы данных, тогда как безопасность отчетов команды — на уровне командного проекта. Администратор Team Foundation Server определяет, кто имеет доступ к данным в хранилище, предоставляя или отзывая разрешения учетных записей пользователей. По умолчанию доступ на запись к хранилищу предоставляется только учетной записи службы, от имени которой запускается служба хранилища. Каждый из адаптеров инструментов имеет доступ на запись к хранилищу данных, поскольку он выполняется в этом контексте безопасности. Доступ только на чтение предоставляется администратором отдельным пользователям или группам пользователей. Пользователь, имеющий разрешение на просмотр данных в хранилище по определенному командному проекту, имеет полный доступ ко всем данным по этому проекту. При этом разрешение на просмотр данных по одному командному проекту не дает пользователю автоматической возможности просматривать данные по другому проекту команды. Дополнительные сведения о разрешении и запрете доступа только для чтения к хранилищу данных см. в разделе Практическое руководство. Изменение параметров безопасности хранилища данных для Team System.