Join the discussions focusing on developing on top of Cognite Data Fusion. Click the + CREATE TOPIC button in the menu bar to start the conversation.
Recently active
Hi everyone,I’d like to share industrial-model — a Python ORM built on top of the Cognite Data Modeling Service API.It lets you define DMS views using Pydantic models, query them with a fluent, expressive API (filter, search, aggregate), and get fully typed results with IDE autocomplete out of the box.The SDK also supports upserts, deletes, and async workflows, making it a natural fit for modern Python stacks. In addition, it includes configuration for injecting instance spaces directly into queries, which can significantly improve query performance when working with large or complex data models.We’ve been using industrial-model for the past couple of months, and it has significantly reduced boilerplate when querying complex graphs, while also speeding up onboarding for new developers.Documentation:https://github.com/lucasrosaalves/industrial-model Feedback and feature requests are very welcome!Sample code:from pathlib import Pathfrom industrial_model import ( Engine, ViewInstanc
The documentation on this page should be updated to reflect the product behavior.https://api-docs.cognite.com/20230101/tag/Spaces/operation/deleteSpacesV3> If an existing data model references a space, you cannot delete that space. Nodes, edges and other data types that are part of a space will no longer be available. I tried deleting a space with a single node and I get this error:cognite.client.exceptions.CogniteAPIError: Unable to delete spaces because they contain nodes or edges: [some-test-space] | code: 400 This does not exactly contradict the documentation, but it means that the documentation is misleading. As it is written, it suggests a space can be used to manage lifecycle of ephemeral test data.
Description / Problem StatementWe are using the Cognite 3D File Extractor to migrate 3D model files from an on-premises Windows VM to Cognite Data Fusion (CDF).The majority of 3D files are ingested successfully with multiple sizes mostly > 10 GB. However, four specific files consistently fail ingestion, even after multiple retries.Key observations:All failing files are close to 5 GB in size Example sizes (as shown in Windows Explorer): 4.99 GB 4.94 GB 4.91 GB When checked via terminal/command line, these same files report a larger actual size (~5.3 GB) It appears that based on the Windows VM file size, the 3D extractor determines it should use a single-part upload. However, when it attempts to upload the actual file, the process fails because the size exceeds 5 GB
Hi , I have the CogniteActivity in the CDM/EDM data model which the assets is part of the model: Below is the sample data of CogniteActivity:This is the data model for Event in PDM:I tried to transform from CDM/EDM to PDM using below transformation, but i am not sure what is the script to transform CogniteActivity to PDM Event:And i got below error: Anyone know how can I transform CDM/EDM asset node reference to Event entities attribute? Thank you.
Hi Guys,I tried to use a transformation from the SDK but i keep getting error on Transformation credentials. Do you guys know what I need to do to solve this credentials issue. I have check the current credential for the Service Account that I use and the access for tranformation has been granted. def fetch_raw_table_via_transformation( client: CogniteClient, db_name: str, table_name: str, calculation_date: Optional[str] = None, columns: Optional[List[str]] = None) -> pd.DataFrame: """ Fetch data by running a temporary CDF Transformation (uses Spark SQL engine). This is the RECOMMENDED approach for production workloads: - Runs on CDF's managed Spark infrastructure - Handles billions of rows efficiently - Server-side filtering and aggregation - Can write results to temp Raw table or return directly Note: Requires transformation permissions in CDF Args: client: CogniteClient instance db_name: Name of the RAW database
Hello, Some capabilities, such as dataModelInstancesAcl or dataModelsAcl, support the spaceIdScope scope. Currently, we can only specify the spaces to which we want to grant access.To better support certain use cases, would it be possible to introduce support for exclusion rules or regex-based expressions within this scope? Thanks
We have multiple Asset Centric Location Filters created which are used in Industrial Tools search to filter site specific assets.When using multiple filters, we observed that the Search returns 0 assets.We inspected the Network requests and observed the Cognite API call to assets/list fails with below error:```{ "error": { "code": 400, "message": "Asset subtrees exceed the limit of 100000 assets." }}```There are similar cases where a location filter is setup with asset subtree and the subtree has more than 100K assets. Is there a way we can configure Location Filters to bypass the limit of 100k assets.
Wow—was I in for a challenge!I just received my first proper assignment after joining Cognite: building a custom extractor to move documents and their metadata from a Document Management System (DMS) into Cognite Data Fusion (CDF).Diving headfirst into this, I found myself at the intersection of a steep learning curve, the high-stakes data needs of our industrial customers, and my own belief in Agile engineering practices. Coming from a background where Test-Driven Development (TDD) is the heartbeat of quality, I realized I didn't just want to build a script; I wanted to build a process I could trust.In this series, I want to share a practice that served me well while learning the ropes: The "Twin Auditor" Pattern.The Challenge: Beyond Logic, It’s IntegrationWhen you build an extractor, you aren't just writing code in a vacuum. You are building a bridge between two distinct worlds: your source system (the DMS) and your data platform (CDF).Extraction is inherently an integration challen
How can we get access to work hands-on with the learning path athttps://cognite-learn.fusion.cognite.com/cdf-fundamentals/data-models?cluster=api.cognitedata.com&workspace=data-management?If not, how can we practice hands-on with Cognite Learn?
Hello everyone,I observe a difference in behavior that I cannot explain.My input data, few datapoints, and before the value is 0, timeseries.is_step = TrueInput datapointsWith client.time_series.data.retrieve, behavior is as expected :And with every granularity results are okay as expected.Nevertheless, with client.time_series.data.synthetic.query it’s… different.that’s okthat’s okNot ok, why the result is not 2 groups : from 46 to 49 then 49 to 52 ? another wrong exampleWhy the start timestamp is 48 and not at 46 ? Again, the timeseries endoint is good : I have lost hope.If anyone has anything to try or an explanation, i’ll be grateful.Thanks in advance,Pierre
Hi All,I have a large production records data set which i am utilizing to create reports using GraphQL queries.I want to perform DESC sort to fetch the latest records for which i am using default ‘StartTime’ property(This property is derived from Schedulable Container). But system is generating this warning : "The sort is not backed by a cursorable index, which means query time sorting is necessary, which in turn means a lot more data must be read. Consider whether a cursorable index is a good fit."What’s the best way to approach this so that i can fetch large data sets with improved performance?Should i make a custom DateTime field as cursorable ? What are the impact of this ?
Hi everyone! 👋 Join us tomorrow to see the results of our "Hack for Impact" challenge. We are hosting Tridiagonal.ai (presented by @Dinesh Makked ) and SLB (presented by @Aditya Kotiyal) to present the winning concepts they developed for "Smart Operations" and "Cognite Vision."This is a fantastic opportunity for the community to: Celebrate the creativity and hard work of your fellow community members. See the specific approach these teams took to build their solutions. Hear the story behind the project directly from the creators. Hope to see you there! 🗓️ Thu, Jan 15 @ 3:00 PM CEST 👉 Register Here
Hi community,I’m learning to use the /models/instances/query endpoint (with Open Industrial Data, public project) and experiencing some confusion about how cursors and pagination work.{ "with": { "cities": { "nodes": { "filter": { "and": [ { "exists": { "property": [ "Geography", "City", "name" ] } } ] } } }, "continents": { "nodes": { "filter": { "and": [ { "exists": { "property": [ "Geography", "Continent",
We’ve setup an MQTT Hosted Extractor that is recieving a SparkPlug B payload which some times contains a couple of null values, this values cannot be removed from the SparkPlug B payload. We believe that whenever the message contains null values the transformation for the datapoints fails.No more information is provided on the Transform Error, only the “Failed to transform data: Missing required field value”, could the null values just be ignored so the other values be inserted in the time series? We’re getting several empty time series that were created via the hosted extractor.
Is there an alert or notification that can be configured when the MQTT hosted extractor is down? Been having issues with Request to CDF failed with error Error in middleware: Failed to authenticate request This error is resolved by creating a new sink, however we don’t get a notification of any kind when the extractor is down.
I’m working with the PI AF Extractor and facing an issue with Table Lookup attributes.The Table Lookup attribute itself is being extracted correctly into the attributes table, but the value column always comes as “no data”, even though the attribute resolves normally inside PI System Explorer.I would like to know whether there is any supported way to extract the evaluated Table Lookup value using the PI AF Extractor, or if the extractor does not currently resolve Table Lookup references during extraction.Has anyone faced this issue or found a recommended approach to retrieve these values through the extractor?
We are thrilled to announce the next evolution of your user experience. We’ve unified our ecosystem to help you master your industrial data without the friction.What’s new? One Identity: We’ve merged Cognite Academy and the Community. One login for everything. Unified Search: Find How-to guides, discussions, and courses in a single search. Guided Careers: New role-based learning paths, starting with the Data Engineer path! 👇 Read the full announcement here:
I’m using the CogniteSDK. I have seen the following behavior several times: assets = client.assets.list()the variable assets can contain deleted assets if they have been recetly deleted. If I find the external_ids of these assets, the client.assets.retrieve_multiple(external_ids=deleted_xids) correcly do not return the assets. The assets cannot be found in fusion either. I suspect that client.assets.list() is using cached values. This also applies with arguments, f.ex LabelFilter. I have seen the issue many times, but now it really got painfull, so therefore I’m writing here. It returns assets that were deleted several days ago. What to do?
Hello, Although “unitless” is an alias of the dimensionless:unitless unit, try_get_unit(“unitless”) returns null.ref: https://github.com/cognitedata/units-catalog/blob/main/versions/v1/units.json#L1699 Could you please have a look? Thanks!
What capabilities are required to run a transformation using client credentials? I have a client_id and client_secret that when I add to the transformation and hit ‘Test credentials’ it says ‘Credentials verified’. However when I run with client credentials I get an error: Transformation job could not be created. Error code: 403 API error: Invalid source/destination credentials: Token did not provide access to project kuraray-america. Request ID: eb5136ee-594d-971f-b27a-7be0d1a60b15these credentials are a part of a group that that has read and write capabilities to:transformations sessions datamodelinstances (that is what this particular trasformation is creating)Additionally I am part of the same groups as this client_id, and I am able to run the transformation using ‘run as current user’ successfully
Hi everyone,I have a question: Can we use data from Data Models in Canvas?Is there any way to visualize that data available in Data models into Canvas?In our case, we are using Cognite Charts with time series data coming directly from machines (e.g., good parts, bad parts). However, the time series does not include product or batch information, which we do have in our Data Model.Is there any possibility to link both sets of information together for analysis?My initial thought is: if I can bring the required data from Data Models into Canvas and then create charts there, it would make the analysis much easier.But I’m not sure if this is possible—or if there’s another approach you would recommend.Any suggestions or best practices would be greatly appreciated!
Hi, I have defined a Data Model with a Source View having a DirectRelation to a Target View as a simplified version below, which Pygen created an SDK successfully. But when I added a ReverseDirectRelationApply to the Target View, Pygen returned the captioned error. Please help.source_container = ContainerApply( space =”myspace”, external_id=”sourceContainer”, properties={ “sourceName”: ContainerProperty(type=Text, name=”sourceName”), “target”: ContainerProperty(type=DirectRelation(is_list=False, container=ContainerId(space=”myspace”, external_id=”targetcontainer”) } target_container = ContainerApply( space =”myspace”, external_id=”targetContainer”, properties={ “targetName”: ContainerProperty(type=Text, name=”targetName”)} source_view = ViewApply( space = “myspace”, external_id = “souceView”, version = “1.0”, properties = { “sourceName”: MappedPropertyApply(container=ContainerId(“myspace”,
With the Java-SDK, I don’t see an option to supply the client-name during initialization of the client. https://statics.teams.cdn.office.net/evergreen-assets/safelinks/2/atp-safelinks.htmlIs there anyway we can do that? We need the client-name for logging purpose.
Hi,We are looking into contextualizing our data models with 3D info, based on the relevant concepts/types from the Cognite Core Model. However, we ran into a limitation that as far as we can see severely limits the usability of the functionality as is.The CogniteCADNode has a direct relation to a Cognite3DObject, that can be made up of multiple CogniteCADNodes, reflecting that an asset may correspond to multiple nodes in the 3D model. That makes sense. However since the link from CogniteCADNode to Cognite3DObject is a single direct relation, the current model does not allow a CogniteCADNode to be part of more than one Cognite3DObject, which typically is meant to correspond to an asset. That is unfortunately in direct contrast to reality. One CAD node belonging to many different assets/objects is not an edge case, rather, it is the norm, at least for Aker Solutions.Have we correctly understood the current functionality? If so, are there any plans to amend this limitation? Do you have a
Hi Everyone,Previously, I was able to bring my Cognite chart into Canvas, and it displayed correctly without showing the calculation area at the bottom. However, starting today, I can still add the chart to Canvas, but nothing appears—it’s completely blank. We tested this across multiple profiles, and the issue occurs for all of them. Is anyone else experiencing this problem? Could the Cognite team help us resolve it?Thanks in advance!