Join the conversations to shape a safer, more efficient, and sustainable industrial future!
Recently active
Hello As our industrial data evolves; we're facing challenges with schema versioning specifically when modifying / extending the properties of existing asset or time series types in Cognite Data Fusion (CDF). 🙂For instance; adding new fields or changing data types (e.g., integer to float) in metadata often breaks downstream pipelines or applications that expect the original structure. CDF doesn’t enforce a strict schema, but how do others handle backward compatibility in real-world use?😐We’ve experimented with versioned types and custom labels to signal changes, but this quickly becomes hard to manage at scale. Some of our consumers rely on fixed field names, and introducing Salesforce Developer Course breaking changes results in unexpected behaviors in the SDKs or fusion apps.😐Is there a recommended practice for managing schema evolution that preserves data integrity while enabling flexibility for growth?🤔Looking to hear how other developers are addressing this challenge—do you v
Hello, As per the docuementaiton Pygen exposes a `graphql_query` method. However, I’m not able to find it. Could you please help? version used: cognite-pygen==1.2.1Thanks
Hello, While testing data gouvernance feature per space in the data model service, we noticed that it does work on the instance level but not on the data models level. Here are the tests conducted: Test 1:We tested giving access to users to only instances that are in a specific space but applying the following ACL : - dataModelInstancesAcl: actions: - READ scope: spaceIdScope: { spaceIds: ['test'] }When requesting the data model, only instances in the test space are returned. ACL works on instance level. Perfect!Test 2: When applying a similar ACL on the data model level : - dataModelsAcl: actions: - READ scope: spaceIdScope: { spaceIds: ['not_that_important_data_models'] }In this case, we notice that we get revoked access to all data models, even data model in not_that_important_data_models space. We expected that we would be able to access only data models in not_that_important_data_models. Could you please check ? Thanks
Hi,I would like to check whether there is any CDF Admin UI or available APIs that provide the telemetry and usage-related insights such: User activity logs such logins, user actions, dataset access, frequency of use API usage metering such calls made by service accounts or integrations, volume over time Application usage tracking such as which integrations/apps are active, which endpoints are being used and etc. Quota and resource usage tracking, like number of API calls, storage/compute loads. Are there any CDF admin dashboards, telemetry APIs, or audit logs available for this purpose?Please advise. Thanks
Hi!Is there a way to enable cascading deletes for instances for both direct relations and edges? Edit: I posted in the wrong group, but i don’t think i can delete.
I would like to know what to fill in BI to be able to connect on CDF. I tried to use that how on the course, but gives a error to add the organization name. publicdata?tenantID=48d5043c-cf70-4c49-881c-c638f5796997
Hello, I’m having this error while using CDF latest Spark datasource. I was only able to make it work using 2.1.10 version (com.cognite.spark.datasource:cdf-spark-datasource_2.12:2.1.10). Could you please take a look? Thank you !
Hello, We are using cdf toolkit to deploy our container, views and data models.We recently added many new views, these views are dependent. i.e: they reference each other in the properties through a source block or via implements block. Here an examples of these view dependencies:- externalId: View1 implements: [] name: View1 properties: test: container: externalId: Container1 space: some_space type: container containerPropertyIdentifier: Test name: test source: externalId: View2 space: some_space type: view version: v1 space: some_space version: v1- externalId: View2 implements: [] name: View2 properties: wow: container: externalId: Container2 space: some_space type: container containerPropertyIdentifier: Test name: wow space: some_space version: v1or - externalId: Country implements: - externalId: CountryAttributes space: '{{sp_dm_dap_knowledge_graph}}_wv'
In Cognite Academy Fundamentals : Working With CDF: Contextualize, I have followed all of the instructions several times for Entity Matching and, in all instances, get “No matches found”, so there is nothing to confirm or write to CDF. What am I missing here?
Using PBI Desktop and Cognites Rest API Connector betaWhen configuring the GraphQL parameters of Space, Datamodel, version and queryThere is a problem when pasting a query that was copied from the Query Explorer or even notepad into the query input boxIt is truncating the query string at the first carriage return CR and or Line Feed LFIf all CR and LF are removed from the query string, it will paste properly and run properly.
I am new bee for this mammal, to Setup the Cognite file extractor for the local file upload to CDF, how to I config the environment variable in the yaml?according to the example-local.yaml I need to read:COGNITE_BASE_URLCOGNITE_PROJECTCOGNITE_CLIENT_IDCOGNITE_TOKEN_URLCOGNITE_CLIENT_SECRETI am little confuse, should I create a .env file to have all of those environment variables in that file and put it in the same folder as the yaml config file or can I inject those variables in the configuration file itself, if so any example? need someone lighting me up.
it says that the project is not valid and do not give me the hello world output.
got 401 "Unauthorized" error when using Postman and also sometimes a bad request error while I did everything as they did in the course. please help it took a lot of time from me.
How can we configure the OPCUA data node (in string) as event in Cognite instead of timeseries (by default)?P.S. The existing OPCUA Server does not support to configure it as Event.
I m working cognite hosted rest extractor and i m not able to perform incremental load and getting Kuiper http error while making a request. Can someone explain what the key name is when we use query params for incremental load and how should value look like in json having a conditional statement to pick a constant value in first execution and last_run from context after that? (Assume we have to modify startindex and lastindex query params after first excution)
I am trying to use the CogniteSdk in c# to build my FDM model node and egde. I able to insert the node accordingly but having issue when trying to define the edge. As you can see below , to create an edge, it require the "Type" to be define. There is no error but when i check my UserDashboard model, it cannot link to my DashboardItem. Anyone know how we can insert Edge using C# SDK? FDM:type UserDashboard @view(version: "c3020ef716088a") { userId: String! createdDateTime: Timestamp lastUpdateDatetime: Timestamp dashboard: [DashboardItem]}type DashboardItem @view(version: "62c414860c7734") { userId: String! index: Int! id: Int!} UserDashboard DashboardItem
so in the Learn to Use the Cognite Python SDK in the data engineer course , I got stuck on the hands on test.as in the readme file after I created a dataset and a root assets I just do not know how can I do this section : - Read the `all_countries.csv` file as a dataframe and list all the unique regions in the world.- For each geographical region, create a corresponding CDF asset that is under the "global" root asset and is associated with the "world_info" data set.- Next, create country-level assets using the data from the CSV and link them to their corresponding region-level assets.
I have a data model with a many to many relation between view 1 and view 2. This is modeled as an edge and stored as columnEdgeView2 in view 1 and has an edge pointing the other direction in the other view. I have been digging through the Python SDK documentation but cannot figure out how to retrieve this information. Can anyone help me with this? What I need to do is query either of the edge properties and do something similar to the instance.list of regular views. If possible, getting the columnEdgeView2 included in the result when listing instances the normal way would also work. I have tried to replicate my data model structure below.type View1 { column1: String columnEdgeView2: [View2]}type View2 { column1: String columnEdgeView1: [View1] @relation( type: { space: "space", externalId: "View1.columnEdgeView2" } direction: INWARDS )}Thank you!
Hello Team,I am trying to check like how many edges(entities in my case) are null in the view(event) is there any specific way to do so? I am trying right now sdk query api like below, but not working. Please give your insights. { "with": { "Event": { "nodes": { "filter": { "hasData": [ { "type": "view", "space": "slb-pdm-dm-governed", "externalId": "Event", "version": "1_7" } ] }, "chain_to": "destination", "direction": "outwards" }, "limit": 10000 }, "Event_2_entities.Entity": { "edges": { "from": "Event", "direction": "outwards", "filter": { "and": [ { "equ
Hello, we're using pygen to generate a Full Data Model and instances. One of our containers can have multiple connections to objects in another container (see the pic below).As a result, definitions are lists of objects. It is then difficult to query data using tuples: bays = dm_client.bay.list( bay_to_line=(space, id), retrieve_connections="identifier", limit=None, ).to_pandas()We can overcome this by reading all bays with retreive_connections=”full” and then querying the data. But we would like to generate a model, where such tricks are not needed and the definitions are not a list. Is it possible? To generate a model we do this workflow: neat.read.rdf("lines_bays.jsonld")neat.infer(max_number_of_instance=-1)neat.prepare.data_model.cdf_compliant_external_ids()neat.verify()neat.convert("dms")neat.set.data_model_id(("lin", "lines", "v1"))neat.to.cdf.data_model()neat.to.cdf.instances()
I'm using python sdk and wanted to query instances based on a condition using “data_modeling.instances.query” methos . I have a view called TimeseriesPropertyType which has a field (properties: [Property]) which is a reverse direct relation throughProperty: "propertyType".i just need to check if there are any “properties” field values associated with each instance of the TimeseriesPropertyType view. for that I'm fetching data in property view associated with those particular TimeseriesPropertyType view and doing the check manually in code.. is there any direct filter i can use that's available? i dont see any filters available on properties field in query explorer for the samebelow is the query im using #view_id_ts_prop_type - TimeseriesPropertyType view#view_id_property - Property viewquery= Query(with_= { "TimeseriesPropertyType":NodeResultSetExpression( limit=10000, filter= HasData(views=[view_id_ts_prop_type])), "Pr
Hello, We are currently the Pygen (cognite-pygen==1.0.2) to generate an SDK of our data model. While testing a use case where we want to query all Casings of all Onshore Wells we notice that we get different results using the `List` and `Select` methods. # First method of queryingwells = dm_client.well.list(product_line='Onshore', retrieve_connections='identifier',limit=-1)direct_relations = []for w in wells: if w.wellbores: for wb in w.wellbores: wb_ext=wb.external_id inst = dm.DirectRelationReference(wb.space, wb_ext) direct_relations.append(inst)wb_sections = dm_client.wellbore_section.list(wellbore=direct_relations, retrieve_connections='full', limit=-1)casings = wb_sections.casingprint(f'casings: {len(casings)}') # casings: 645# Second method of queryingcasings= dm_client.well.select().product_line.equals('Onshore').wellbores.wellbore_sections.casing.list_casing(limit=-1)print(f'casings: {len(casings)}') # casings: 94Any thing we missing
Hello Team,We have three views:→ ScalarProperty{#other fieldsentity: Entity}→ Entity{#other fieldsentitytype: EntityType}→ EntityType{externalId}Given this, from ScalarProperty view, can we use groupby on entity.entityType.externalId when querying instances and counting them using the query API, or is there another way to achieve this?
The current naming convention in the OPCUA server node structure naming is not intuitive for user to be able to find the tag in Cognite.From the example below, we will have 3 timeseries tags with Message and also Data.It is not intuitive for user to look into the path or externalid to find which it is belongs to.How do we configure the OPCUA extractor to construct the timeseries name based on certain criteria or to based on the complete path of the node to be the timeseries name (e.g. Root\Temperature1\Message as the name)?E.g. OPCUA Node structureRoot|_ Temperature1 |_ Message |_ Data|_ Temperature2 |_ Message |_ Data|_ Pressure1 |_ Message |_ Data
Hi All,I am working with hosted extractors for kafka and it works pretty well for me with transformations when we have plain json data in kafka topics.Now I am trying to check if we can work with zlib gzip compressed data coming in topic, I have json string and messagepayload attribute of json string will be holding compressed data instead of whole message as compressed one, is it possible to write transformation for such data. e.g., in kafka topics{ "Header": { "MessageId": 133367162, "MessageType": "DATA_REPORT", "Timestamp": 1741122422, "PayloadCompression": "Z_LIB_COMPRESSION" }, "MessagePayload": "eJyqVnJJLctMTi1WsoquVvJLzE1VslIyVNJRckksSQxJTIeIhySmQ6WCA3wVfFMTi0uLUlNgqioLQDIu/qFOPq7xYY4+oa5KOkphiTmlMLNCMnNTi0sScwuUrAzNTQwNjYxMjAwtzA11lAJLE3MySyqVrAxqY2tjawEBAAD//x5aKt0="}