Working with Power BI and Power Platform dataflows, or using Dynamics in general, might cause you to hear one of these two CDS (Common Data Services), or CDM (Common Data Model). Often there is a misconception about these two, and many people think they are the same. In this article, I’ll explain the difference between these two.
CDM: Common Data Model
CDM is a data model that includes many existing standard definition for tables (entities), such as Account, Product, etc. The reason that this data model exists is to help to unify databases and applications into a standard form of data or let’s say into a Common Data Model.
The picture below shows some of the tables in CDM;
The tables above don’t necessarily include data. they are like blank templates that can be filled using other applications in Dynamics or Power Platform services.
To read more about CDM, read my article here.
CDS: Common Data Services
CDS is a data storage system, which also comes with a lot of services around it for security, integration, and etc. CDS is something like a database, which is primarily used for Power Apps and some other Power Platform services.
Using CDS as a data storage system comes also with some extra features such as the usage of Portal Apps and AI Builder etc. You can consider CDS as a database storage system to be used for a citizen app developer.
To learn more about CDS, read my article here.
CDM is a Metadata Structure for Entities
To understand the difference, you need to understand that CDM is not a data storage system, is not a database. You can not say data is stored in CDM as storage. There should be always a data storage technology behind it. CDM just provides the metadata structure for entities. For example, the Power BI dataflows stores data into Azure Data Lake Storage, but that data can get stored in the format of CDM, into the structure of CDM.
If you hear that this data is stored in CDM, that probably means; it is stored in the CDM metadata structure template, but in an underlying data storage.
The underlying data storage of CDM can be Azure Data Lake, CDS etc.
CDS is a Data Storage System
CDS on the other hand side, is a database system. you can store data in it. CDS fortunately leverages the structure of CDM. that means you can use the entity templates that are defined in CDM as your entities and fill data into it, But you can also define your custom entities.
You can use CDS as a data source when you use Get Data in Power BI, but you can never use CDM (because CDM is not a storage system);
CDM is Built for having a Unified Data Model Experience
The goal for having CDM is to have a unified data model experience. Instead of having 20 version of a product table, each with some columns different than the others and some common columns. you can have one product table, and use it in all other applications, and that product table have all the columns that any application needs.
CDS is Built for Citizen App Developer As an Easy-to-Use Database System
CDS, is created to give the citizen app developer, a easy-to-use database system experience. A citizen app developer is someone who works with Power Apps, Power Automate etc to create business applications, and this person would not necessarily know database systems such as SQL Server Database. Or those database systems might look very technical for the citizen developer. So Power Platform came with the idea of having a database system that is easy-to-use across Power Platform applications.
CDS behind the scene is using Azure SQL DB, Cosmos DB, Blob storage, and etc for storing the data. But all of that details is abstract from the citizen developer’s view. Citizen developer easily work with a simple graphical database management portal through Power Apps portal to work with the CDS entities.
Although the names are so similar, these two are talking about different things: CDS is a data storage system, and CDM is a metadata structure framework. They often work with each other, because CDS, like any other database systems would get a better outcome if works with a unified data model.
To learn more about each of these, I highly recommend reading these articles: