Data Warehouse
This material pertains to version 2.94 of Blackbaud CRM SDK.
Starting with version 2.94, the MartKey attribute allows you to create data lists that pull data from the Blackbaud Data Warehouse database instead of the transactional database. Depending on your version, the MartKey element is also available on other spec types, and you implement it the same way for all spec types.
The MartKey element improves performance of data lists by pulling data from the data warehouse instead of the transactional database, but keep in mind that data in the Blackbaud Data Warehouse is not up to the minute. An ETL process updates the data warehouse on a scheduled basis, so the data warehouse does not include any data that was added or updated after the most recent ETL run. If data list results need to be up to the minute, you probably don't want to use the MartKey attribute to pull data from the data warehouse.
However, if this is not an issue, your data list will experience many benefits by pulling data from the data warehouse.
-
The data warehouse database is smaller than the transactional database. The database for data warehouse is usually about 10-30 percent of the total size of the transactional database. This improves performance because more of the database can be stored in memory.
-
The database is often on a separate SQL Server. This improves performance because you are not hitting the same tables that are constantly updated by imports, batch processes, and other actions in Blackbaud CRM.
-
The table structure for the database is simpler than for the transactional database. The Blackbaud Data Warehouse uses a star schema that generally requires fewer JOINs than the transactional system.
Tip: For an example of how to implement the MartKey attribute for a search list, see Write Search Lists against the Data Warehouse.