One of the greatest problems in an enterprise environment is the integration of systems that use different models and languages.
Most companies use several applications for different functions, one for time keeping, one for HR management, one for payroll, one for financials and some even in excel spreadsheets. All these applications store data in their own format and collating all sources could be a daunting, if not impossible, task.
One of the answers to this problem is the Common Data Model(CDM) which, as defined by Microsoft, is a structure that comprises entities, attributes and relationships that represents business concepts. CDM definitions are open source and extendable and, in turns, scalable.
Microsoft has fully adopted CDM starting with Dynamic 365 and is continuously expanding it through collaboration with industries in different sectors like automotive or healthcare.
Microsoft ultimate vision is for CDM to be the de facto standard data model. CDM is supported in most MS services through Common Data Services (CDS). So Power BI, Dynamic 365, Power Apps and Azure Services all support CDM.
- Power Apps come with a built-in Common Data Model and it also allows to connect to Dynamics 365 CDM as a data source.
- Dynamics 365 natively supports CDM, it can be used as a data source in Data Flow or Power Apps and Entities can be pushed to ADLSV2 (as of Nov 2019 this is a preview feature only available to selected MS clients). There is an integration tool that allows to integrate data from multiple sources using CDS and Power Apps.
- PowerBI supports CDM through DataFlow, where the CDM can be the destination of storing data.
The structure is composed of folders and files. Every CDM folder has two elements, a Json file and data files:
- The Model.json file contains the metadata, the information that describes the underlying data. It has links to the data files and information on entity records and attributes
- The data files are in CSV format and follow the CDM structure
There are two concepts that Microsoft introduces in relation to the CDM folders:
- Data Producer, an app or service (Dynamic 365, Power apps etc) that creates the CDM folders and files.
- Data Consumer, an app or service (Azure services like Machine Learning or Databricks) that reads the CDM folders and files.
Just by reading this brief overview one can see the enormous potential that CDM has to offer and the barriers it is set to overcome.
Upon building new applications instead of designing and implementing a new data model from scratch one could simply refer to Microsoft CDM as an off the shelf solution.