Data Warehouse Extensibility
Team Foundation Server includes a data warehouse that stores data from work item tracking, source control, builds, and testing tools. The warehouse is organized to facilitate data mining to create various reports. You can use the reports to better understand the state and health of a team's projects. The warehouse allows the kinds of queries used to generate reports to run much faster than possible on the Team Foundation Server operational data store. The warehouse is optimized for fast queries, and the data it contains is updated in batch mode. The query speed comes at the expense of a latency in data freshness.
The warehouse is a relational database with OLAP services for high performance aggregation and query support on the data cube.
The methodologies that are in use on the Team Foundation server influence the schema of the database. SQL Server Reporting Services is integrated with Visual Studio to provide support for designing reports on project data and historical trends.
A warehouse service manages the updates. The warehouse service periodically calls each of the warehouse adapters by using the IWarehouseAdapter interface. The adapters pull data from the operational store, transform it as necessary, and write it to the warehouse through the warehouse object model. The data in the warehouse will be only as recent as the last update service call.
If you want to add new data types to the warehouse you will probably need to create an adapter. Adding work item fields is an exception. When the schema for a work item is extended to include additional fields, they can be marked as reportable. XML schema for the work item will reflect the new fields and they will be added to the data warehouse automatically.
In most cases an adapter is required to move new types of data from a tool into the warehouse. An adapter is a managed assembly that implements IWarehouseAdapter. An adapter uses the warehouse object model to interact with the Team Foundation Server warehouse. When an adapter adds new data fields to the warehouse it must extend the schema that defines data moved to the warehouse. The schema extension is performed programmatically by the adapter.