Frequently asked questions about Common Data Model

This topic contains answers to frequently asked questions and best practices around a variety of areas related to the Common Data Model, including Microsoft Dataverse and Microsoft Azure data lake Storage Gen2. If you have more questions or comments about the Common Data Model and related topics, we recommend that you submit an issue in GitHub.


What is Common Data Model?

The Common Data Model comprises of Microsoft application and analytical data schemas which have a standardized metadata system that help applications and services interoperate so that you get more value from your data. The Common Data Model simplifies data integration and application-development scenarios, allowing applications to be developed independently while they still maintain shared meaning of data.
More information: The Common Data Model

The Open Data Initiative, announced in September 2018 at Microsoft Ignite, is a vision that was jointly developed by Adobe, Microsoft, and SAP. The Common Data Model, including the Common Data Model metadata format and standard entities, will continue to evolve and directly accrue value toward the Open Data Initiative.
More information: The Open Data Initiative website

The Common Data Model schema and standard entities are influenced by existing standards, such as, throughout a variety of industries. Many Common Data Model standard entities originated from Dynamics 365 but, as we extend to new industries and areas, we look to public standards in that space to help define extensions to the Common Data Model. Common Data Model standard entities are open source and available under a Creative Commons license on GitHub.

What type of semantic information can be defined with Common Data Model?

The Common Data Model schema definitions include a wide variety of semantic information, such as metadata related to geolocation, demographics, measurements, and calendar/dates, in addition to standard data types. You can see examples of these types within the published Common Data Model standard entities.

How are schemas and other artifacts versioned?

The standard entity definitions, and the schema format itself, use a major/minor versioning system. Learn more about versions for standard entities.

Where can I find libraries to help read and write Common Data Model metadata?

You can find sample libraries to read and write Common Data Model schema documents in .NET, Java, Python, and TypeScript.


Dataverse implements the Common Data Model standard entities, such as Account and Contact.

How do I get all the standard entities in my Dataverse database?

Some standard entities in the Common Data Model are built in to each Dataverse database. Other standard entities are installed as part of a solution, including first-party applications (such as Dynamics 365 Field Service) or industry solution accelerators (such as the Dynamics 365 Automotive Accelerator).

Azure Data Lake gen2 Storage

How do I discover Common Data Model content in the data lake?

Today, you can identify which is a Common Data Model folder in the data lake by whether the folder includes a model.json file that conforms to the Common Data Model model.json specification. We're working to add better discovery mechanisms, so that you can more easily find and consume data and metadata in Common Data Model folders.

How do I get started?

Start by creating an instance of data lake Storage Gen2 that has hierarchical namespaces enabled. When the instance is available, you can onboard it to a service that produces Common Data Model folders (such as Power BI dataflows) or create your own file system and Common Data Model folder format. Then, you provide access to a service —or your own application—that consumes Common Data Model folders.

What are the correct authorization levels for Common Data Model folders?

In general, the best practice is to set the least required privilege to complete the action. For data producers, this strategy gives full create, read, update, and delete (CRUD) permissions to content within their file systems. For data consumers, this strategy gives read-access permissions only. When data producers provide access to their file systems, the best practice is to create and manage groups in Azure Active Directory and set access control lists for those groups. This approach makes adding consumers easier going forward.
More information: Authorization for Common Data Model folders

What are the expectations of a Common Data Model data producer?

In the Common Data Model ecosystem, data producers are expected to provide sufficient information for a data consumer to understand and parse the data files. A general principle is to make the metadata as rich as possible to simplify the experience for data consumers.

What are the expectations of a Common Data Model data consumer?

In the Common Data Model ecosystem, data consumers are expected to read the metadata and data as the producer described them, and not modify any data that the consumer didn't also produce. If a data consumer wants to extend or modify the data from another data producer, the consumer then becomes a data producer and should follow the best practices of data producers.

What's the cost implication?

Today, Common Data Model folders and data files are treated the same as any other data. Moving data between regions incurs additional charges.
More information: Azure Data Lake Storage Gen 2 pricing

How do I access Common Data Model artifacts?

You can create, read, update, or delete Common Data Model folders, model.json files, and data files by using APIs for Azure data lake Storage Gen2.
More information: Azure data lake Store REST API

Power BI dataflows

Power BI dataflows are both a data producer and data consumer of the Common Data Model. Power BI dataflows can write data in Common Data Model folders in data lake Storage Gen2 and read data in Common Data Model folder format. Power BI dataflows also offer an experience to map your data to Common Data Model standard entities through the mapping transformation in Power Query Online.

Will my dataflows be affected if the Common Data Model standard entities are revised?

When entities in a dataflow are mapped to a Common Data Model standard entity, such as Account, the version of that standard entity is included in the dataflow definition (model.json). Existing versions of the Common Data Model standard entities will persist unchanged, so existing dataflows won't be affected. If you'd like to leverage new versions of the Common Data Model standard entities, you can edit existing dataflows, but your changes might affect reports and dashboards that use the dataflow.

More questions?

If you have more questions or comments about Common Data Model or related topics, please submit an issue in GitHub.