Freigeben über


Migrieren von Azure Time Series Insights Gen1-Umgebungen zu Real-Time Intelligence in Microsoft Fabric

Hinweis

Der Time Series Insights-Dienst wird am 7. Juli 2024 eingestellt. Erwägen Sie, vorhandene Umgebungen so bald wie möglich zu alternativen Lösungen zu migrieren. Weitere Informationen zur Einstellung und Migration finden Sie in unserer Dokumentation.

Übersicht

Eventhouse ist die Zeitreihendatenbank in Real-Time Intelligence. Sie dient als Ziel für die Migration von Daten aus Time Series Insights.

Voraussetzungen

Erfassen neuer Daten

Führen Sie die folgenden Schritte aus, um mit dem Aufnehmen neuer Daten in Ihr Eventhouse zu beginnen:

  1. Konfigurieren Sie Ihren Event Hub mit einer neuen Consumergruppe.

  2. Nutzen Sie Daten aus der Datenquelle und erfassen Sie sie in Ihrem Eventhouse. In der Dokumentation erfahren Sie, wie Sie Daten aus Ihrem Event Hub erfassen.

Migrieren historischer Daten von Time Series Insights

Wenn Sie Daten aus Ihrer Time Series Insights-Umgebung exportieren müssen, können Sie die Abfrage-API von Time Series Insights verwenden, um die Ereignisse in Batches herunterzuladen und im erforderlichen Format zu serialisieren. Je nachdem, wo Sie die exportierten Daten gespeichert haben, können Sie die Daten aus Azure Storage, lokalen Dateien oder OneLake erfassen.

Migrieren von Referenzdaten

Führen Sie die folgenden Schritte aus, um Referenzdaten zu migrieren:

  1. Verwenden Sie den Time Series Insights-Explorer oder die Referenzdaten-API, um das Referenzdataset herunterzuladen.

  2. Sobald Sie über das Referenzdataset verfügen, laden sie es in Ihr Eventhouse als eine andere Tabelle hoch. Durch Hochladen des Referenzdataset können Sie in Ihrer Eventhouse-Umgebung darauf zugreifen und es dort nutzen.

Übersetzen von Time Series Insights-Abfragen in die Kusto-Abfragesprache

Bei Abfragen empfiehlt es sich, die Kusto-Abfragesprache in Eventhouse zu verwenden.

Ereignisse

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

Aggregate

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