Data modeling examples and best practices
This section has examples and best practices to apply when working with data modeling in Cognite Data Fusion (CDF).
📄️ Building an asset hierarchy
The CogniteAsset concept in the Cognite core data model has properties to represent systems that support industrial functions or processes. You can structure assets hierarchically according to your organization's criteria. For example, an asset can represent a water pump that's part of a larger pump station asset at a clarification plant asset.
📄️ Performance considerations
This article outlines key data modeling factors that impact performance when ingesting and querying data.
📄️ Optimizing data models for AI search
This article outlines best practices for documenting data models and optimize the accuracy of AI search in Cognite Data Fusion (CDF).
📄️ Time series in data modeling
Cognite's core data model has a built-in CogniteTimeSeries concept to ingest and retrieve time series. CogniteTimeSeries integrates with the time series API. To ingest and retrieve data points, you must use the same API.
📄️ Files in data modeling
Cognite's core data model uses CogniteFile to represent files. The actual file content is handled by the File service. This article describes how to use files with the core data model.
📄️ Extending the core data model via GraphQL
Cognite's core data model offers standardized building blocks for industrial data, forming the basis for more specialized models. This article outlines how to use the Data modeling language extension for GraphQL (DML) to create a custom data model that extends the core data model.
📄️ Manage data models in CI/CD
We strongly recommend that you include the Cognite Data Fusion (CDF) Toolkit and configurations in your **CI/CD pipelines** to reliably deploy data modules to CDF projects as part of your development workflow and release pipeline.
📄️ Delete nodes without associated container data
Use the Python script provided below to delete nodes without associated container data. We strongly recommend first running the script in dry-run mode to determine which nodes it'll delete.