Share via


Time Series Insights Gen1 migreren naar Azure Data Explorer

Notitie

De Tsi-service (Time Series Insights) wordt na maart 2025 niet meer ondersteund. Overweeg om bestaande TSI-omgevingen zo snel mogelijk te migreren naar alternatieve oplossingen. Raadpleeg onze documentatie voor meer informatie over de afschaffing en migratie.

Overzicht

Het wordt aanbevolen om Azure Data Explorer-cluster in te stellen met een nieuwe consumentengroep van de Event Hub of IoT Hub en te wachten tot de retentieperiode is verstreken en Azure Data Explorer te vullen met dezelfde gegevens als de Time Series Insights-omgeving. Als telemetriegegevens moeten worden geƫxporteerd vanuit de Time Series Insights-omgeving, kunt u de Time Series Insights-query-API gebruiken om de gebeurtenissen in batches te downloaden en in de vereiste indeling te serialiseren. Voor referentiegegevens kan Time Series Insights Explorer of Reference Data API worden gebruikt om een referentiegegevensset te downloaden en deze als een andere tabel te uploaden naar Azure Data Explorer. Vervolgens kunnen gerealiseerde weergaven in Azure Data Explorer worden gebruikt om referentiegegevens samen te voegen met telemetriegegevens. Gebruik de gerealiseerde weergave met de aggregatiefunctie arg_max(), waarmee de meest recente record per entiteit wordt weergegeven, zoals wordt weergegeven in het volgende voorbeeld. Lees de volgende documentatie voor meer informatie over gerealiseerde weergaven: Use cases voor gerealiseerde weergaven.

.create materialized-view MVName on table T
{
    T
    | summarize arg_max(Column1,*) by Column2
}

Time Series Insights-query's vertalen naar KQL

Voor query's wordt aanbevolen om KQL te gebruiken in Azure Data Explorer.

Gebeurtenis

{
  "searchSpan": {
    "from": "2021-11-29T22:09:32.551Z",
    "to": "2021-12-06T22:09:32.551Z"
  },
  "predicate": {
    "predicateString": "([device_id] = 'device_0') AND ([has_error] != null OR [error_code] != null)"
  },
  "top": {
    "sort": [
      {
        "input": {
          "builtInProperty": "$ts"
        },
        "order": "Desc"
      }
    ],
    "count": 100
  }
}
	events
| where _timestamp >= datetime("2021-11-29T22:09:32.551Z") and _timestamp < datetime("2021-12-06T22:09:32.551Z") and deviceid == "device_0" and (not(isnull(haserror)) or not(isempty(errorcode)))
| top 100 by _timestamp desc

Statistische functies

{
    "searchSpan": {
      "from": "2021-12-04T22:30:00Z",
      "to": "2021-12-06T22:30:00Z"
    },
    "predicate": {
      "eq": {
        "left": {
          "property": "DeviceId",
          "type": "string"
        },
        "right": "device_0"
      }
    },
    "aggregates": [
      {
        "dimension": {
          "uniqueValues": {
            "input": {
              "property": "DeviceId",
              "type": "String"
            },
            "take": 1
          }
        },
        "aggregate": {
          "dimension": {
            "dateHistogram": {
              "input": {
                "builtInProperty": "$ts"
              },
              "breaks": {
                "size": "2d"
              }
            }
          },
          "measures": [
            {
              "count": {}
            },
            {
              "sum": {
                "input": {
                  "property": "DataValue",
                  "type": "Double"
                }
              }
            },
            {
              "min": {
                "input": {
                  "property": "DataValue",
                  "type": "Double"
                }
              }
            },
            {
              "max": {
                "input": {
                  "property": "DataValue",
                  "type": "Double"
                }
              }
            }
          ]
        }
      }
    ]
  }

	let _q = events | where _timestamp >= datetime("2021-12-04T22:30:00Z") and _timestamp < datetime("2021-12-06T22:30:00Z") and deviceid == "device_0";
let _dimValues0 = _q | project deviceId | sample-distinct 1 of deviceId;
_q
| where deviceid in (_dimValues0) or isnull(deviceid)
| summarize
    _meas0 = count(),
    _meas1 = iff(isnotnull(any(datavalue)), sum(datavalue), any(datavalue)),
    _meas2 = min(datavalue),
    _meas3 = max(datavalue),
    by _dim0 = deviceid, _dim1 = bin(_timestamp, 2d)
| project
    _dim0,
    _dim1,
    _meas0,
    _meas1,
    _meas2,
    _meas3,
| sort by _dim0 nulls last, _dim1 nulls last