Skip to main content

Data modeling OData service

Connect a Cognite Data Fusion (CDF) data model as a data source and use OData clients to query, transform, and visualize data stored in CDF data models.

The data modeling OData service allows you to access data models created in CDF using OData protocols.

The data modeling OData service accepts URLs with the following schema:

https://{cluster}.cognitedata.com/odata/{apiVersion}/projects/{project}/models/spaces/{spaceExternalId}/datamodels/{dataModelExternalId}/versions/{dataModelVersion}

Where:

  • {cluster}: the name of the CDF cluster, e.g., westeurope-1.
  • {apiVersion}: the version of the OData service API (latest is 20230821).
  • {project}: the name of the CDF project, e.g., publicdata.
  • {spaceExternalId}: the external ID of the space where the data model is published.
  • {dataModelExternalId}: the external ID of the data model.
  • {dataModelVersion}: the version of the data model.

If you point the OData client to the correct data model OData URL and authenticate, the server returns a table with all views existing on the associated data model.

Character guidelines

Follow these character usage guidelines for the space and externalId fields in Power BI:

  • Safe to use:

    • Alphanumeric characters: a-z A-Z 0-9
    • Unreserved special characters: - _ . ~
  • Use with caution:

    • The following reserved characters may work but are not guaranteed to function consistently: ! * ' ( ) ; : @ & = + $ ,
  • Avoid:

    • Any special characters not listed above may prevent Power BI from loading or navigating data correctly.

Filter items in data models​

Use filters to create workable data sets for reporting or dashboarding. The data modeling OData service supports server-side filtering that allows you to push down filters to the server to avoid downloading all data into the client.

TypePushdown
Model propertyYes, except EndsWith and Contains
Time series metadataNo
Data and string pointstimestamp only
Files metadataNo

Power Query performs EndsWith and Contains string filtering operations in memory.

JSONObjects are presented as text values in Power BI.

Working with time series and data points​

The data modeling OData service supports fetching Timeseries from data models.

To get data points for a specific time series, you can navigate to string or dataPoints. To get data points from a time range, filter the data point on a timestamp value.

CDF doesn't support filtering time series based on their values.

Time series can contain highly granular data. To improve performance and reduce the data load, use the dataPoint Aggregate function.

Known limitations and issues

The sections below cover current known limitations and issues related to using CDF data models as the data source for Power BI.

Types with relations to other types

The integration between CDF data models and Power BI has limited support for traversing direct relations between nodes using the OData "expand" concept.

Power BI processes an operation to flatten a table using an expand relation by issuing a separate API request for each instance/row to be expanded. This is very time-consuming for any significant data volume.

Graph edges and attached properties

Currently, we don't support retrieval of properties on edges.

Data refreshes

The minimum refresh rate for data in Power BI is 15 minutes. The OData service doesn't let you load data in small increments for dashboard updates. If a dashboard contains a large amount of data that requires frequent updates, there may be better options than using the data modeling OData service.