Insert data points into a time series. You can do this for multiple time series. If you insert a data point with a timestamp that already exists, it will be overwritten with the new value.
The datapoints to insert.
required | Array of DatapointsWithInternalId (object) or DatapointsWithExternalId (object) or DatapointsWithInstanceId (object) (DatapointsPostDatapoint) [ 1 .. 10000 ] items |
Empty response.
IDs not found.
Duplicate IDs found. Retry request, keeping only one instance of each duplicated ID.
from cognite.client.data_classes.data_modeling import NodeId from cognite.client.data_classes import StatusCode from datetime import datetime, timezone to_insert = [ {"id": 1, "datapoints": [ (datetime(2018,1,1, tzinfo=timezone.utc), 1000), (datetime(2018,1,2, tzinfo=timezone.utc), 2000, StatusCode.Good)], }, {"external_id": "foo", "datapoints": [ (datetime(2018,1,3, tzinfo=timezone.utc), 3000), (datetime(2018,1,4, tzinfo=timezone.utc), 4000, StatusCode.Uncertain)], }, {"instance_id": NodeId("my-space", "my-ts-xid"), "datapoints": [ (datetime(2018,1,5, tzinfo=timezone.utc), 5000), (datetime(2018,1,6, tzinfo=timezone.utc), None, StatusCode.Bad)], } ] import math to_insert.append( {"external_id": "bar", "datapoints": [ {"timestamp": 170000000, "value": 7000}, {"timestamp": 180000000, "value": 8000, "status": {"symbol": "Uncertain"}}, {"timestamp": 190000000, "value": None, "status": {"code": StatusCode.Bad}}, {"timestamp": 200000000, "value": math.inf, "status": {"code": StatusCode.Bad, "symbol": "Bad"}}, ]}) data_to_clone = client.time_series.data.retrieve( external_id="bar", include_status=True, ignore_bad_datapoints=False) to_insert.append({"external_id": "bar-clone", "datapoints": data_to_clone}) client.time_series.data.insert_multiple(to_insert)
{ }