Компоненты хранилища данных TFS

Хранилище отчетов Team Foundation — это традиционное хранилище данных, состоящее из реляционной базы данных, организованной близко к схеме типа "звезда", и куба служб SQL Server Analysis Services, созданного на основе этой реляционной базы данных. На следующей схеме показана общая архитектура хранилища данных Team Foundation и связи между операционными хранилищами, хранилищем данных и командными отчетами.

Архитектура хранилища данных

Операционные хранилища

Каждый инструмент или подключаемый модуль в Team Foundation использует реляционную базу данных в SQL Server 2008 для хранения данных, используемых в своих повседневных операциях. Эта реляционная база данных часто называется операционным хранилищем. Операционные хранилища Team Foundation включают:

  • базы данных обычной структуры (Tfs_Configuration);

  • базы данных коллекции командного проекта (Tfs_Collection).

У вас также могут быть оперативные хранилища, созданные для сторонних средств.

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

Адаптеры хранилища

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

Адаптер хранилища копирует и преобразует те поля данных, которые указаны в базовой конфигурации хранилища или в шаблоне процесса, используемом во время создания нового командного проекта. Если впоследствии шаблон процесса изменяется путем добавления или удаления полей данных, которые записываются в хранилище данных, эти изменения обнаруживаются при очередном запуске адаптера. Адаптер запускается периодически с частотой, заданной в свойстве RunIntervalSeconds. По умолчанию для периодичности обновления используется значение в два часа (7 200 секунд), поэтому уделите внимание выбору соответствующей периодичности обновления для своей установки. Дополнительные сведения об изменении периодичности обновления см. в статье Изменение параметров управления обработкой для хранилища данных или куба служб аналитики.

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

Реляционная база данных или хранилище данных

Каждый инструмент описывает свой вклад в хранилище данных в схеме XML. Эта схема определяет поля, которые записываются в реляционную базу данных в виде измерений, мер и сведений. Схема также сопоставляется непосредственно с кубом.

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

В таблице измерения хранится набор значений, существующих для данного измерения. Измерения могут совместно использоваться разными таблицами фактов и кубами, и на них может ссылаться одна таблица фактов или куб данных. Например, на измерение "Пользователь" будет ссылаться таблица фактов рабочих элементов для свойств Assigned To (кому назначено), Opened By (кем открыто), Resolved By (кем разрешено) и Closed By (кем закрыто), а также таблица фактов обработки кода для свойства Checked In By (кем возвращено).

Меры являются значениями, взятыми из операционных данных. Например, Total Churn (всего обновлений) — это мера, показывающая количество изменений исходного кода в выбранных наборах изменений. Count (число) — особая мера в том, что она может быть неявной, при условии, что существует одна запись для каждого элемента, который учитывается. Меры, определенные в таблице фактов, образуют группу мер в кубе.

Дополнительные сведения о фактах, измерениях и мерах в хранилище данных см. в статье Перспективы и группы мер, предоставляемые в кубе служб Analysis Services для Visual Studio.

Куб служб Analysis Services

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

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

Отчеты конструктора отчетов

Конструктор отчетов — это компонент Visual Studio, который позволяет задать хранилище данных Team Foundation в качестве источника данных, а затем создавать отчеты в интерактивном режиме. Конструктор отчетов предоставляет окна с вкладками для данных, макета и предварительного просмотра, и вы можете добавлять наборы данных для реализации новых идей по созданию отчетов или настраивать макет отчета на основе результатов предварительного просмотра. Помимо областей конструктора данных, макета и предварительного просмотра в конструкторе отчетов предусмотрены построители запросов, редактор выражений и мастеры, которые помогают размещать изображения или пошагово проходить процесс создания простого отчета. Дополнительные сведения об использовании конструктора отчетов см. в статье Создание и настройка отчетов для Visual Studio ALM и управление ими.

Отчеты Excel

Team Foundation интегрируется с Microsoft Excel, чтобы вы могли использовать Microsoft Excel для управления своими проектами и создания отчетов. Microsoft Excel предоставляет сводные таблицы и диаграммы для просмотра и анализа многомерных данных. Вы можете привязать эти сводные таблицы непосредственно к кубу Team Foundation, чтобы можно было взаимодействовать с данными в кубе. Дополнительные сведения об использовании Microsoft Excel для создания отчетов см. в статье Создание отчетов Excel при помощи запроса рабочего элемента.

Безопасность

Безопасность для хранилища данных Team Foundation определяется на уровне базы данных, тогда как безопасность командных отчетов — на уровне командного проекта. Администратор Team Foundation Server определяет, кто имеет доступ к данным в хранилище данных, предоставляя или отзывая разрешения для учетной записи пользователя. По умолчанию доступ на запись в хранилище предоставляется только учетной записи службы, с использованием которой запускается служба хранилища. Каждый адаптер инструментов имеет доступ на запись в хранилище данных, поскольку он выполняется в этом контексте безопасности. Доступ только на чтение предоставляется администратором отдельным пользователям или группам пользователей. Пользователь, имеющий разрешение на просмотр данных в хранилище, имеет полный доступ ко всем данным для всех командных проектов во всех коллекциях командных проектов. Дополнительные сведения о предоставлении и запрете доступа только на чтение к хранилищу данных см. в статье Предоставление доступа к базам данных хранилища данных для Visual Studio ALM.