Migrace Time Series Insights Gen1 do Azure Data Explorer

Poznámka

Služba Time Series Insights (TSI) už nebude po březnu 2025 podporována. Zvažte co nejdříve migraci stávajících prostředí TSI na alternativní řešení. Další informace o vyřazení a migraci najdete v naší dokumentaci.

Přehled

Doporučujeme nastavit cluster Azure Data Explorer s novou skupinou uživatelů z centra událostí nebo IoT Hub a počkat na uplynutí doby uchovávání a naplnění Azure Data Explorer stejnými daty jako v prostředí Time Series Insights. Pokud je potřeba exportovat telemetrická data z prostředí Time Series Insights, doporučujeme použít rozhraní API dotazů Služby Time Series Insights ke stažení událostí v dávkách a serializaci v požadovaném formátu. V případě referenčních dat je možné stáhnout referenční datovou sadu a nahrát ji do Azure Data Explorer jako jinou tabulku pomocí průzkumníka Time Series Insights nebo rozhraní API referenčních dat. Materializovaná zobrazení v Azure Data Explorer pak můžete použít ke spojení referenčních dat s telemetrickými daty. Použijte materializované zobrazení s agregační funkcí arg_max(), která získá nejnovější záznam pro každou entitu, jak je znázorněno v následujícím příkladu. Další informace o materializovaných zobrazeních najdete v následující dokumentaci: Případy použití materializovaných zobrazení.

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

Překlad dotazů Time Series Insights do KQL

U dotazů se doporučuje použít KQL v Azure Data Explorer.

Událost

{
  "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

Agregace

{
    "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