Join the discussions about products powered by Cognite Data Fusion. Click the + CREATE TOPIC button in the menu bar to start the conversation.
Recently active
Since Cognite's start, we have prioritized security and take our security role very seriously as a partner to mission-critical industries. Today, I am happy to announce that Cognite has obtained our SOC 2 Type II certification. The American Institute of Certified Public Accountants (AICPA) bases SOC 2 engagements on its Trust Service Criteria. These criteria ensure we have rigorous security guidelines and stick with them. Type II certifications, in particular, are comprehensive and involve significant work to prepare, so a huge thank you to our team and our partners for their contribution to this achievement. At Cognite, we are investing in more automated ways to support continuous compliance monitoring. We focus on empowering our end users with industrial data operations without managing the related infrastructure. We believe it's our mission to create frictionless security, and our SOC 2 Type II certification is another significant step toward this mission!
Currently when fetching datapoints from multiple timeseries, the Python Cognite-SDK splits up the requests into one request per timeseries, while the underlying CDF API supports up to 100 timeseries per requests. This slows down fetching multiple timeseries, which is a problem when you display multiple timeseries (or aggregated of timeseries) in a frontend application.
Cognite Summit 28.04.22: Industrial data operations: Data as an asset. Presentation by Cognite.
The below is reflecting current thinking from the App Dev Journey team in Cognite and is a mental model that will likely develop over time as this topic mature.A data model enables users to customize the shape and structure their expectation of data. It plays a crucial part in building solutions (like data science models, mobile and web apps). It is also the core of an ontology, knowledge graphs, or industry standard.There are some crucial reasons why data models are effective for the industrial space. Data modeling enables explicit language, flexible customization, governed iteration, and enhanced accessibility towards data. Let's dive further into each of these qualities of data modeling. Data Model is ExplicitA data model needs to be explicit because it provides a clear contract/interface between data providers and consumers. Hence, those loading the data and using the data can both understand the underlying data and use it correctly. By having explicit data modeling, a shared cont
This presentation gives a quick introduction to Cognite as a company and our core product, Cognite Data Fusion. Get introduced to how our products turn industrial data into customer value by liberating it, contextualizing it, and making it actionable for users.
I was thinking around the idea of adding the bindings and mappings into the Solution Data Model as directives to have more simpler syntax and UX. The idea is to “hide” the data model storage syntax and bindings syntax so everything can be merged into Solution Data Model GraphQL SDL.For example if we have following Solution data model type Person @view { firstName: string lastName: string}The following DMS should be automatically created Data model storage-----PersonTablefirstName: stringlastName: string However, if I want to make some overrides, I can use the additional directives. For example: type Activity @view @bind(filter: { hasData: { "in": "Risk" } }) { position: string @bind("dms.Table2.position") action: string line: Asset @bind("dms.Asset") equipment: Asset}In this case, in DMS, the Activity data model can be created automatically as well as the bindings and mappings to the related tables.Thoughts?
Hey, Currently, it’s hard to maintain a coherent versioned datamodel in CDF. With Templates, and further developments there, this becomes easier.Even with a versioned datamodel it seems to me that there still isn’t a good way to track changes in the model that are not version-breaking.In our datamodel we have two types of changes that we would like to track in a structured way: Field value updates, as simple as a metadata field and as complex as the unit-multiplier on a TimeSeries changing. Edge field value updates. Our model is an adption of a RDF representation of a Common Information Model in the Common Grid Model Exchange Specification for Norway. A field on an object can imply an edge in the datamodel, and this field can change. Currently this is solvable with Labels and Start/End time on Relationships today, though it isn’t obvious that we would want to introduce an Edge type to Templates?This question is a part of the larger struggle of maintaining a sane structure on a time-
Introduction In this post we share some of our internal material aimed towards solution builders, such as data scientists, who want to develop their ability to develop high quality solutions by creating more reliable, maintainable and readable code. This is the first part of 2.MotivationHigh code quality is easy to recognize but can be very hard to describe concretely. The assumed benefits are easier maintainability, modifiability, and more. While code style, like formatting, can be a matter of different taste, most parties agree that other code practices that fall under the umbrella term “anti-patterns” should be avoided. To stop endless formatting discussions and the like, having (and adhering to the industry) standard makes reading and understanding code across repositories easier.What this guide is notThis guide will not tackle the topic of “how to set up a Python project” the right way . Please let us know in the comments if you would like us to share more of our experience in t
Hi,If you are to share a chart today, you have to share it with everyone. Are there any plans for making it possible to share it with a specific group? The reason for asking is that we have a project that is interested in using charts, but they only want to share their charts with their own users. Ola
We are currently migrating to OIDC where we need to give access through access groups linked to Azure AD.On our Statnett cluster it seems that a user needs to explicitly be member of a group “transformations” in order to to delete (or edit) a transformation.The admin group has the capabilities (on “test”) {'transformationsAcl': {'actions': ['READ', 'WRITE'], 'scope': {'all': {}}}}]But we need to login to the legacy login without OIDC and have a service account linked explicitly to the group “transformations” in order to delete a transformation. The group “transformations” has no capabilities set.I have tried both Fusion and the API/python-SDK (read is possible):CogniteAPIError: Transformation not found. This may also be due to insufficient access rights. | code: 403 | X-Request-ID: b7c0beb6-d3e0-9ec4-ba50-895533ac1996
Hi! I’m Dilini Fernando from Cognite! This is my first post, and I am super excited to share a how to guide on Cognite’s DB extractor. This post is targeted to folks who have not used the DB extractor before and wish to extract data from popular tabular databases like MySQL, Oracle, and PostgreSQL databases and ingest it to CDF.The post contains three major steps. The first two focus on setting up a database and ODBC driver, and the third step focuses on running the Cognite DB extractor. You could skip steps that are not required for you. For example, if you already have a database setup, you could skip the first step. Step 1: Setting up a databaseDownload Micorosoft SQL Server Express Edition 2019Install the server Note: Remember the password. You need to enter the password when you are login to SQL Server Install SQL Server Management Studio. Connect SQL Server Management with SQL server 2019. Open SQL Server Management and select the Authentication as SQL Server Authentication.
Hello everyone,I was curious if anyone has leveraged Cognite AIR (Automated Identification and Reporting) in a way where alerts could be triggered off of other alerts? If so, how has this been done?I’d like for this to be a core feature of AIR where you can build a workflow from a visual canvas (similar to the charts function builder) and say “If this alert is triggered, check if this other alert has been triggered also” and so on. This would allow for setting up “offline conditions” so we don’t see all anomaly alerts or threshold alerts unless we can confirm the equipment is running, or even automate root cause investigations. Currently if I build an alert, I’m getting too many “false positives” of sorts that I’d like to filter out. Any input is welcome. Thank you,Richard Maidla (Hess Corporation)
At release, will Schema Services support being federated into a GraphQL schema, like with Hot Chocolate or Apollo? This is how we are planning to utilize combining what is available in CDF with what we are providing in our GraphQL schemas and I was assuming this is feasible. But, a dev mentioned that the downstream services have to support being federated for it to be made available at the federation gateway. If you are using Lighthouse for your implementation, then I see it has preview support for being federated, but I need to confirm you will configure it this way or whatever you may be using will support being federated. Thanks!
Hello!We have a new version of the new documentation around Templates out live on our Documentation portal!https://docs.cognite.com/dev/concepts/resource_types/templates/Here we provide a full guide on how to go from modeling the data to querying the data. As well, we provide much more detailed specifications on what is doable via the UI and also the SDKs.Please provide feedback on what else you would like to see documented and if you run into any issues with the code samples / guides!
As an application developer, a very common interface to build is filtering user interfaces. There are a few types of aggregation that would be very useful to us! #1 Unique value aggregationIn order to allow for effective filtering, aggregating a field by all its unique values is vital for this, to enable showing the user all possible options for a certain filter.Generally the amount of results can be limited to perhaps 1000, but having this paginate (or a higher number of 10000) would be even better! This also allows us in many cases to avoid needing expensive ‘substring queries’ on fields, as doing this in the front end on several thousand strings is trivial. Not all fields needs this, so if its required to add a `@aggregatable` decorator, then this is fine!In addition to this, having the amount of each of these values would be useful, to allow us to sort by the most commonly occurring fields.This is by far the highest priority for our use case! #2 Count aggregationSecond most importa
Congratulations to #PGS @Cerys James @Sverre Olsen, selected as one of the 11 winners of the Verdantix Innovation Excellence Awards!PGS won the Safety Performance Improvement award for an incident management tool that uses artificial intelligence to identify trends, automate alerts, and proactively prevent incidents.PGS is using Industrial DataOps software, including Cognite Data Fusion®, to take a more proactive approach to HSEQ incident management. PGS worked together with Cognite to ingest observations from the reporting system into the data platform and sort observations into larger categories.Learn more here: https://hubs.ly/Q016VkD00
The @searchable field is a great addition! Fundamental for certainThe final point to make it usable for us will be to allow the user to select what searchable field they want to be able to filter on. e.g. given the schematype Equipment { name: String @searchable @filterable description: String @searchable @filterable} Its very common that the user will know that they want to search on specifically name or description.
We are working on some new features in Charts, and would love to show and talk to some of you about it. If you have 30 minutes next week to help us make the best tool possible, please write me at emmy.reehorst@cognite.com Emmy, designer in the Charts team
Hello! We have worked on a new prototype experience with Templates. Data model editorWe have heard feedback on the current editor UI and the lack of parity with the actual possibilities of the Data Modeling via Code. For example, there is no ability to add List, references to other custom declared types. This is all resolved via the new data model UI prototype. Data Model VisualizationAnother common request is to visualize the data model as a "graph" or "relationships". We have created a new visualizer to show the data model as nodes with relationships to other types. Note this does not show the data within the data model (yet) and we would love to hear if you would like this feature. Here is a Loom video to the prototype showing both features.What's next? We would love to hear if you would like to try out these features, given enough requests we may add this back to the Templates UI. Alternatively, we can also grant you access to a test CDF project you can use to try these features.
Hei!In the current schema setup, I might make a query such as this:The terms ‘edges’ and ‘node’ is a bit confusing to me. I’m not sure what they really mean in this context (I understand it from a graph db point of view, but its a bit confusing from other points. I might expect something like this instead{ listAsset() { items { externalId } pageinfo { cursor, ... } }} Curious to hear your thoughts on this :)
Hi, I am trying to use templates to model domain specific connections between assets and time series in CDF, and I have come across an issue that I would like some feedback on.If I have the following schema type:type StringOrNumber @template { Asset: Asset NumericTS: TimeSeries}and do the following query:query StringOrNumber { stringOrNumberQuery { items { NumericTS { __typename isString datapoints(limit: 1) { __typename timestamp value } } } }}then the datapoint output __typename has the value “DatapointString” even though the timeseries is not a string timeseries:{ "data": { "stringOrNumberQuery": { "items": [ { "NumericTS": { "__typename": "TimeSeries", "isString": false, "datapoints": [ { "__typename": "DatapointString", "timestamp": 1634534671570, "value": 14.3
Hi I'm Knut, I’m Product Management Lead working on Cognite Data Fusion. I had the pleasure of meeting some of you in our Product Release Spotlight webinar this Monday. Here's the recording if you missed it.We'd love to hear your thoughts!
Release v0.19 of ChartsHello everyone,The team and I are happy to announce that a new version of Charts (charts.cogniteapp.com) has been released! In place of a live webinar, I’ll be posting videos soon to provide both a walkthrough of these new features and some concrete examples of use cases they help to solve. In the meantime, enjoy reading the release notes and, as always, please leave your feedback or questions in the comments below. Release DetailsFilters are now available in the search panel We’ve released some important and frequently asked for filtering capabilities in the + Add time series search panel. Everyone who uses Charts is always interested in and looking for time series. Equipment tags (assets) that do not have any time series directly related to them are now automatically filtered out of the results list, providing you with more relevant and useful results. You can always show the “empty” equipment tags, if you’d like via the new filters dropdown. Empty equ
What is best practice for global error-handling in the JS-SDK?
Can machines think? Hello Community! As this is my first post, I would like to introduce myself. I'm Shailja, my team and I work on Cognite Learn where you can find Cognite's e-learning courses and live virtual training sessions. Cognite allows me to continue my passion for cinematography and editing, and I genuinely love what I do. Today, I’d like to introduce you to our digital upskilling offering. With the help of our learning paths and bite-sized courses, you can learn about technologies that enable digital transformation. One of the topics you can explore is artificial intelligence (AI). Understanding how AI works in our daily lives would benefit all of you.The buzz around artificial intelligence began in 1950, followed by deep learning. Until the late 1970s, it was a part of AI’s evolution. Then, it branched off to evolve on its own.Artificial Intelligence (AI) allows machines to learn from their mistakes, adapt to new inputs, and execute tasks like humans. From chess-playing co