Ga verder naar hoofdinhoud

Naming standards

Establishing a naming standard for CDF resource types and configurations is key to successfully deploy and administer CDF projects with the Cognite Toolkit.

Separation tokens

In the naming standard, use separation tokens for "namespacing":

  • For external IDs, use "_" (underscore).

    External IDs are often used in code and configuration files and must be easily processed by code.

  • For names, use ":" (colon) or "_" (underscore).

    Names often appear in reports or user interfaces and should be easy to read.

Example naming standard

The example below sets up a project based on the Open Industry Data (OID), and uses oid as the location.

  • The location_name = oid

  • Source systems:

    • Workmate (asset and workorder data)
    • Fileshare (files and 3D)
    • PI (time series and data points)
CDF project

├── Data sets:
│   ├── extId: ds_asset_oid ── name: asset:oid
│   │ ├── Extraction pipelines:
│   │ │ └── extId: ep_src_asset_oid_workmate ── name: src:asset:oid:workmate
│ │ │
│   │ ├── RAW DB tables:
│   │ │ └── DB: asset_oid_workmate ── table: assets
│ │ │
│   │ ├── Transformations:
│   │ │ └── extId: tr_asset_oid_workmate_asset_hierarchy ── name: asset:oid:workmate:asset_hierarchy
│ │ │
│   │ └── Authorization groups:
│   │ ├── id: asset:oid:extractor
│   │ ├── id: asset:oid:prosessing
│   │ └── id: asset:oid:read
│ │ 
│   ├── extId: ds_files_oid ── name: files:oid
│   │ ├── Extraction pipelines:
│   │ │ ├── extId: ep_src_files_oid_fileshare ── name: src:files:oid:fileshare
│   │ │ └── extId: ep_ctx_files_oid_fileshare:annotation ── name: ctx:files:oid:fileshare:annotation
│ │ │
│   │ ├── RAW DB tables:
│   │ │ └── DB: files_oid_fileshare ── table: file_metadata
│ │ │
│   │ ├── Transformations:
│   │ │ └── extId: tr_file_oid_fileshare_file_metadata ── name: file:oid:metadata:fileshare:file_metadata
│ │ │
│   │ ├── Functions:
│   │ │ └── extId: fn_files_oid_fileshare_annotation ── name: files:oid:fileshare:annotation
│ │ │
│   │ └── Authorisation groups:
│   │ ├── id: gp_files_oid_extractor
│   │ ├── id: gp_files_oid_prosessing
│   │ └── id: gp_files_oid_read
│ │ 
│   ├── extId: ds_workorder_oid ── name: workorder:oid
│   │ ├── ...
│ │  ...
│ │
│   ├── extId: ds_timeseries_oid ── name: timeseries:oid
│   │ ├── ...
│ │ ... 
│ │
│   ├── extId: ds_3d_oid ── name: 3d:oid
│   │ ├── ...
│ │ ... 
│ 
└── Spaces:
   └── extId: sp_apm_oid ── name: oid

Naming elements

  • Data type: Asset, timeseries, workorder, files, 3d,... (use what is relevant for the project)
  • Source: Source system (SAP, Workmate, Aveva, PI, Fileshare, SharePoint,..)
  • Location: Location for asset, system, plant, installation, ...
  • Pipeline type: src = source data, ctx = contextualization, uc = use case, ...
  • Operation type: Type of operation/action/functionality in transformation or CDF function.
  • Access type: Type of access used in authorization groups (extractor, processing, read, ...)

Data sets

External ID: ds_<data type>_<location>
Name: <data type>:<location>
Example: ds_asset_oid / asset:oid

Extraction pipelines

External ID: ep_<pipeline type>_<data type>_<location>_<source>
Name: <pipeline type>:<data type>:<location>:<source>:
Example: ep_src_asset_oid_workmate / src:asset:oid:workmate

RAW DB tables

DB: <data type>_<location>_<source>
Table: use name from source, or other descriptive name.
Example: asset_oid_workmate

Transformations

External ID: tr_<data type>_<location>_<source>_<operation type>
Name: <data type>:<location>:<source>:<operation type>
Example: tr_asset_oid_workmate_asset_hierarchy / asset:oid:workmate:asset_hierarchy

Functions

External ID: fn_<data type>_<location>_<source>_<operation type>
Name: <data type>:<location>:<source>:<operation type>
Example: fn_files_oid_fileshare_annotation / files:oid:fileshare:annotation

Authorization groups

Groups don't have external IDs. We still recommend using the same naming convention as for external IDs.

Name: gp_<data type>_<location>_<access type>
Example: gp_asset_oid_extractor / gp_asset_oid_processing / gp_asset_oid_read

Authorization security categories

Security categories don't have external IDs. We still recommend using the same naming convention as for external IDs.

Name: sc_<data type>_<location>_<access type>
Example: sc_asset_oid_extractor / sc_asset_oid_processing / sc_asset_oid_read

Data model spaces

For data model spaces, it's important to distinguish between data spaces and schema spaces. Schema spaces store the schema for the data model, containers, views, node_types, data_models, but not data itself. Data spaces stores data, nodes and edges.

Data model spaces for data

space: sp_<data type>_<source>
Name: <data type>:<source>
Example: sp_apm_oid / apm:oid

Data model spaces for schema

space: sp_<model_type>_<model_identifier>
Name: <model_type>:<model_identifier>
Example: sp_enterprise_model_cognite / enterprise_model:cognite
Example: sp_solution_model_finance_predictonis / solution_model:finance_prediction