Хотя я уже довольно много времени занимаюсь TFS, его хранилище данных и создание собственных отчетов до сих пор оставались terra incognita. В основном, из-за "технологического барьера" - в своем программистском прошлом
сталкиваться с OLAP не приходилось вообще, а с отчетами - очень поверхностно.
Но... все когда-то бывает в первый раз. Сейчас одна из моих задач на работе - разработка метрик для нашего процесса разработки, а известно, что без автоматического сбора данных метрики, по-хорошему, не работают. Благо, наши разработчики все активнее используют TFS, который собирает довольно много данных автоматически, а там, где этого не хватает, задача решается вводом одного-двух дополнительных полей.
Собрать данные мало - их нужно обработать, чтобы получить интересующие показатели, а потом представить в удобоваримой форме. Чтобы не писать "голословно-теоретическую" спецификацию, я решил поэкспериментировать, сделав один-два отчета-прототипа, иллюстрирующих общую концепцию.
Пришлось закатать рукава и разобраться в том, как устроено хранилище данных TFS, что такое схема "звезда", как создавать запросы к многомерному кубу и показывать результаты хотя бы в виде простенького отчета. Начать мне очень помогли брошюра Creating and Customizing TFS Reports и пост в блоге Team WIT Tools под названием Understanding the TFS Cube - без этих материалов мое разбирательство затянулось бы на несколько дней, а так уже через часов 6-7 чистого времени (и то, по большей части из-за разбирательства с аггрегирующими функциями в языке запросов MDX) был получен первый результат. Очень рекомендую всем, кто планирует работать с хранилищем данных TFS.
По моим впечатлениям, самое трудное, если вы раньше не сталкивались с OLAP - понять, как "работают" хранилища данных и построенные по ним многомерные кубы. Освоившись с этим, уже гораздо легче будет понять структуру куба TFS Warehouse и "набить руку" в использовании его основных измерений (dimensions) и мер (measures) - заодно попрактикуетесь в составлении MDX-запросов. С получением же данных из самого хранилища, если вы раньше работали с базами данных Microsoft SQL Server, серьезных проблем вообще быть не должно - хотя сама схема базы и отличается от привычных нам 3й и более высоких нормальных форм, во всем остальном получение данных происходит точно также (за исключением не всегда очевидных пар первичных и внешних ключей).
Пока что я не планирую заниматься отчетами серьезно, на уровне производственной эксплуатации, но чем, как говорится, черт не шутит... поэтому добавил себе в закладки подборку материалов.