Condividi tramite


Migrazione di Time Series Insights Gen1 a Real-Time Intelligence 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 ulteriori informazioni sulla deprecazione e la migrazione, consultare 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. Configura il tuo Hub Eventi con un nuovo gruppo di consumatori.

  2. Utilizzare i dati dall'origine dati e inserirli nell'Eventhouse. Consultare la documentazione su come inserire dati dal tuo hub di 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 localio 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 dei 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.

Tradurre le query di Time Series Insights nel linguaggio di query Kusto

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

Avvenimenti

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

Aggregati

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