The Sitecore Experience Database reporting architecture is a highly scalable and high-performance solution for storing data and delivering reports.
In the Sitecore Experience Database, the reporting architecture consists of:
- Reporting server – a Sitecore server that hosts the Reporting Service
- Reporting Service – uses queries to fetch report data from various data sources, such as MongoDB, SQL Server, or other custom data sources, such as a customer relationship management system (CRM)
- Reporting database – a Microsoft SQL Server database that contains fact and dimension tables of aggregated data from the collection database
- Reporting applications – for example, the Experience Profile (xFile) and Experience Analytics
In earlier versions of Sitecore, there was only a single analytics SQL Server database for all collection and reporting needs. In Sitecore xDB, for high traffic websites, SQL Server is no longer scalable or high performance enough to perform all data collection and reporting tasks.
To improve scalability and performance, the xDB uses the following database systems:
- MongoDB (NoSQL) collection database – stores all contact and interaction data
- Microsoft SQL Server database – Sitecore reporting applications read data from a SQL Server reporting database
You should install the SQL Server reporting database on a dedicated server to achieve higher performance.
The xDB collection database is a scalable, document-oriented database that can handle billions of interactions. It collects and stores all visitor data, such as contacts, devices, locations, goals, engagement automation states, and other details. By default, it uses MongoDB to store all relevant information in documents that are roughly equivalent records in a relational database but it is quicker to query, so writing and reading is very fast. However, in MongoDB, the data operations required for reporting are either not supported or only partially supported.