Aggregate Time Series Unique Values

async AsyncCogniteClient.time_series.aggregate_unique_values(
property: TimeSeriesProperty | str | list[str],
advanced_filter: Filter | dict[str, Any] | None = None,
aggregate_filter: AggregationFilter | dict[str, Any] | None = None,
filter: TimeSeriesFilter | dict[str, Any] | None = None,
) UniqueResultList

Get unique properties with counts for time series.

Parameters:
  • property (TimeSeriesProperty | str | list[str]) – The property to group by.

  • advanced_filter (Filter | dict[str, Any] | None) – The filter to narrow down the time series to count cardinality.

  • aggregate_filter (AggregationFilter | dict[str, Any] | None) – The filter to apply to the resulting buckets.

  • filter (TimeSeriesFilter | dict[str, Any] | None) – The filter to narrow down the time series to count requiring exact match.

Returns:

List of unique values of time series matching the specified filters and search.

Return type:

UniqueResultList

Examples

Get the timezones (metadata key) with count for your time series in your CDF project:

>>> from cognite.client import CogniteClient
>>> from cognite.client.data_classes.time_series import TimeSeriesProperty
>>> client = CogniteClient()
>>> # async_client = AsyncCogniteClient()  # another option
>>> result = client.time_series.aggregate_unique_values(
...     TimeSeriesProperty.metadata_key("timezone")
... )
>>> print(result.unique)

Get the different units with count used for time series created after 2020-01-01 in your CDF project:

>>> from cognite.client.data_classes import filters
>>> from cognite.client.data_classes.time_series import TimeSeriesProperty
>>> from cognite.client.utils import timestamp_to_ms
>>> from datetime import datetime
>>> created_after_2020 = filters.Range(
...     TimeSeriesProperty.created_time, gte=timestamp_to_ms(datetime(2020, 1, 1))
... )
>>> result = client.time_series.aggregate_unique_values(
...     TimeSeriesProperty.unit, advanced_filter=created_after_2020
... )
>>> print(result.unique)

Get the different units with count for time series updated after 2020-01-01 in your CDF project, but exclude all units that start with “test”:

>>> from cognite.client.data_classes.time_series import TimeSeriesProperty
>>> from cognite.client.data_classes import aggregations as aggs, filters
>>> not_test = aggs.Not(aggs.Prefix("test"))
>>> created_after_2020 = filters.Range(
...     TimeSeriesProperty.last_updated_time, gte=timestamp_to_ms(datetime(2020, 1, 1))
... )
>>> result = client.time_series.aggregate_unique_values(
...     TimeSeriesProperty.unit,
...     advanced_filter=created_after_2020,
...     aggregate_filter=not_test,
... )
>>> print(result.unique)