Condividi tramite


Migrazione di Time Series Insights Gen1 all'intelligence in tempo reale in Microsoft Fabric

Nota

Il servizio Time Series Insights verrà ritirato il 7 luglio 2024. Valutare la possibilità di eseguire la migrazione di ambienti esistenti a soluzioni alternative il prima possibile. Per altre informazioni sulla deprecazione e la migrazione, visitare la documentazione.

Panoramica

Eventhouse è il database time series in Real-Time Intelligence. Funge da destinazione per la migrazione dei dati da Time Series Insights.

Prerequisiti

Inserire nuovi dati

Per iniziare a inserire nuovi dati in Eventhouse, seguire questa procedura:

  1. Configurare l'hub eventi con un nuovo gruppo di consumer.

  2. Utilizzare i dati dall'origine dati e inserirli nell'eventhouse. Vedere la documentazione su come inserire dati dall'hub eventi.

Eseguire la migrazione dei dati cronologici da Time Series Insights

Se è necessario esportare i dati dall'ambiente Time Series Insights, è possibile usare l'API query di Time Series Insights per scaricare gli eventi in batch e serializzarli nel formato richiesto. A seconda della posizione in cui sono stati archiviati i dati esportati, è possibile inserire i dati da Archiviazione di Azure, file locali o OneLake.

Eseguire la migrazione dei dati di riferimento

Per eseguire la migrazione dei dati di riferimento, seguire questa procedura:

  1. Usare Lo strumento di esplorazione di Time Series Insights o l'API Dati di riferimento per scaricare il set di dati di riferimento.

  2. Dopo aver creato il set di dati di riferimento, caricarlo nella eventhouse come un'altra tabella. Caricando il set di dati di riferimento, è possibile accedervi e usarlo all'interno dell'ambiente Eventhouse.

Convertire le query di Time Series Insights in Linguaggio di query Kusto

Per le query, è consigliabile usare Linguaggio di query Kusto in Eventhouse.

Eventi

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

Aggregazioni

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