Udostępnij za pośrednictwem


Migrowanie usługi Time Series Insights Gen2 do analizy Real-Time w usłudze Microsoft Fabric

Notatka

Usługa Time Series Insights zostanie wycofana 7 lipca 2024 r. Rozważ migrację istniejących środowisk do alternatywnych rozwiązań tak szybko, jak to możliwe. Aby uzyskać więcej informacji na temat wycofania z użytku i migracji, odwiedź naszą dokumentację .

Przegląd

Eventhouse to baza danych szeregów czasowych w Real-Time Intelligence. Służy jako element docelowy do migrowania danych z dala od usługi Time Series Insights.

Ogólne zalecenia dotyczące migracji.

Cecha Zalecana migracja
Pozyskiwanie danych JSON z centrum za pomocą spłaszczania i ucieczki pobieranie danych z usługi Azure Event Hubs
Otwórz zimny sklep Dostępność Eventhouse OneLake
Konektor Power BI Użyj Eventhouse Power BI Connector. Ręczne ponowne zapisywanie TSQ w języku KQL.
Łącznik platformy Spark Migrowanie danych do usługi Eventhouse. Używanie notesu z platformą Apache Spark do wykonywania zapytań dotyczących usługi Eventhouse lub Eksplorowanie danych w usłudze Lakehouse przy użyciu notesu
Przekazywanie zbiorcze Pobieranie danych z usługi Azure Storage
Model szeregów czasowych Można wyeksportować jako plik JSON. Można zaimportować do usługi Eventhouse. Semantyka grafów Kusto umożliwia modelowanie, przeszukiwanie i analizowanie hierarchii modelu szeregów czasowych jako graf
Eksplorator szeregów czasowych Real-Time Dashboard, raport Power BI lub stworzenie niestandardowego pulpitu nawigacyjnego za pomocą KustoTrender
Język zapytań Ponowne zapisywanie zapytań w języku KQL.

Migrowanie telemetrii

Aby pobrać kopię wszystkich danych w środowisku, użyj folderu PT=Time na koncie magazynowym. Aby uzyskać więcej informacji, zobacz Data Storage.

Krok 1 migracji — uzyskiwanie statystyk dotyczących danych telemetrycznych

Dane

  1. Omówienie środowiska
    • Zapisz identyfikator środowiska z pierwszej części nazwy FQDN dostępu do danych (na przykład d390b0b0-1445-4c0c-8365-68d6382c1c2a z .env.crystal-dev.windows-int.net).
  2. Omówienie usługi Env — konfiguracja magazynu> — konto magazynu>
  3. Uzyskiwanie statystyk folderów za pomocą Eksploratora usługi Storage
    • Rozmiar rekordów i liczba obiektów blob w folderze PT=Time.

Migracja — krok 2 — migrowanie danych do usługi Eventhouse

Utwórz Dom Wydarzeń

Aby skonfigurować Eventhouse dla procesu migracji, wykonaj kroki opisane w tworzeniu Eventhouse.

Pozyskiwanie danych

Aby pobrać dane dla konta magazynu odpowiadającego Twojemu wystąpieniu usługi Time Series Insights, wykonaj kroki opisane w sekcji dotyczącej pobierania danych z usługi Azure Storage.

Upewnij się, że:

  1. Wybierz odpowiedni kontener i podaj jego identyfikator URI wraz z wymaganym tokenem SAS lub kluczem konta .

  2. Skonfiguruj ścieżkę folderu filtrów plików jako V=1/PT=Time, aby filtrować odpowiednie obiekty blob.

  3. Zweryfikuj wywnioskowany schemat i usuń wszelkie kolumny, które są rzadko używane w zapytaniach, zachowując co najmniej kolumny ze znacznikiem czasu, TSID i wartościami. Aby upewnić się, że wszystkie dane są kopiowane do Eventhouse, dodaj kolejną kolumnę i użyj przekształcenia mapowania DropMappedFields.

  4. Ukończ proces importowania.

Wykonywanie zapytań dotyczących danych

Po pomyślnym wczytaniu danych możesz rozpocząć ich eksplorację za pomocą zapytania KQL . Jeśli musisz uzyskać dostęp do danych z niestandardowej aplikacji klienckiej, usługa Eventhouse udostępnia zestawy SDK dla głównych języków programowania, takich jak C# (link), Java (link) i Node.js (link).

Migrowanie modelu szeregów czasowych do usługi Azure Data Explorer

Model można pobrać w formacie JSON z TSI Environment przy użyciu interfejsu TSI Explorer lub interfejsu API TSM Batch. Następnie model można zaimportować do usługi Eventhouse.

  1. Pobierz rozwiązanie TSM z środowiska użytkownika usługi TSI.

  2. Usuń pierwsze trzy wiersze przy użyciu programu Visual Studio Code lub innego edytora.

    zrzut ekranu przedstawiający migrację TSM do usługi Azure Data Explorer — usuwanie pierwszych 3 wierszy

  3. Używając programu Visual Studio Code lub innego edytora, wyszukaj \},\n \{ i zastąp go }{, używając wyrażeń regularnych.

    Zrzut ekranu przedstawiający migrację TSM do usługi Azure Data Explorer — wyszukiwanie i zastępowanie

  4. Przesyłanie jako JSON do Azure Data Explorer jako osobna tabela przy użyciu Pobieranie danych z jednego pliku.

Po przeprowadzeniu migracji danych szeregów czasowych do usługi Eventhouse w usłudze Fabric Real-Time Intelligence możesz użyć możliwości semantyki programu Kusto Graph, aby kontekstować i analizować dane. Semantyka programu Kusto Graph umożliwia modelowanie, przechodzenie i analizowanie hierarchii modelu szeregów czasowych jako grafu. Korzystając z semantyki programu Kusto Graph, możesz uzyskać wgląd w relacje między różnymi jednostkami w danych szeregów czasowych, takich jak zasoby, lokacje i punkty danych. Te szczegółowe informacje ułatwiają zrozumienie zależności i interakcji między różnymi składnikami systemu.

Tłumaczenie zapytań szeregów czasowych (TSQ) na język KQL

PobierzWydarzenia

{
  "getEvents": {
    "timeSeriesId": [
      "assest1",
      "siteId1",
      "dataId1"
    ],
    "searchSpan": {
      "from": "2021-11-01T00:00:0.0000000Z",
      "to": "2021-11-05T00:00:00.000000Z"
    },
    "inlineVariables": {},
  }
}
events
| where timestamp >= datetime(2021-11-01T00:00:0.0000000Z) and timestamp < datetime(2021-11-05T00:00:00.000000Z)
| where assetId_string == "assest1" and siteId_string == "siteId1" and dataid_string == "dataId1"
| take 10000

GetEvents z filtrem

{
  "getEvents": {
    "timeSeriesId": [
      "deviceId1",
      "siteId1",
      "dataId1"
    ],
    "searchSpan": {
      "from": "2021-11-01T00:00:0.0000000Z",
      "to": "2021-11-05T00:00:00.000000Z"
    },
    "filter": {
      "tsx": "$event.sensors.sensor.String = 'status' AND $event.sensors.unit.String = 'ONLINE"
    }
  }
} 
events
| where timestamp >= datetime(2021-11-01T00:00:0.0000000Z) and timestamp < datetime(2021-11-05T00:00:00.000000Z)
| where deviceId_string== "deviceId1" and siteId_string == "siteId1" and dataId_string == "dataId1"
| where ['sensors.sensor_string'] == "status" and ['sensors.unit_string'] == "ONLINE"
| take 10000

GetEvents z przewidywaną zmienną

{
  "getEvents": {
    "timeSeriesId": [
      "deviceId1",
      "siteId1",
      "dataId1"
    ],
    "searchSpan": {
      "from": "2021-11-01T00:00:0.0000000Z",
      "to": "2021-11-05T00:00:00.000000Z"
    },
    "inlineVariables": {},
    "projectedVariables": [],
    "projectedProperties": [
      {
        "name": "sensors.value",
        "type": "String"
      },
      {
        "name": "sensors.value",
        "type": "bool"
      },
      {
        "name": "sensors.value",
        "type": "Double"
      }
    ]
  }
}	 
events
| where timestamp >= datetime(2021-11-01T00:00:0.0000000Z) and timestamp < datetime(2021-11-05T00:00:00.000000Z)
| where deviceId_string== "deviceId1" and siteId_string == "siteId1" and dataId_string == "dataId1"
| take 10000
| project timestamp, sensorStringValue= ['sensors.value_string'], sensorBoolValue= ['sensors.value_bool'], sensorDoublelValue= ['sensors.value_double']

AgregacjaSerii

{
  "aggregateSeries": {
    "timeSeriesId": [
      "deviceId1"
    ],
    "searchSpan": {
      "from": "2021-11-01T00:00:00.0000000Z",
      "to": "2021-11-05T00:00:00.0000000Z"
    },
    "interval": "PT1M",
    "inlineVariables": {
      "sensor": {
        "kind": "numeric",
        "value": {
          "tsx": "coalesce($event.sensors.value.Double, todouble($event.sensors.value.Long))"
        },
        "aggregation": {
          "tsx": "avg($value)"
        }
      }
    },
    "projectedVariables": [
      "sensor"
    ]
  }	
events
| where timestamp >= datetime(2021-11-01T00:00:00.0000000Z) and timestamp < datetime(2021-11-05T00:00:00.0000000Z)
| where  deviceId_string == "deviceId1"
| summarize avgSensorValue= avg(coalesce(['sensors.value_double'], todouble(['sensors.value_long']))) by bin(IntervalTs = timestamp, 1m)
| project IntervalTs, avgSensorValue

Agregacje z filtrem

{
  "aggregateSeries": {
    "timeSeriesId": [
      "deviceId1"
    ],
    "searchSpan": {
      "from": "2021-11-01T00:00:00.0000000Z",
      "to": "2021-11-05T00:00:00.0000000Z"
    },
    "filter": {
      "tsx": "$event.sensors.sensor.String = 'heater' AND $event.sensors.location.String = 'floor1room12'"
    },
    "interval": "PT1M",
    "inlineVariables": {
      "sensor": {
        "kind": "numeric",
        "value": {
          "tsx": "coalesce($event.sensors.value.Double, todouble($event.sensors.value.Long))"
        },
        "aggregation": {
          "tsx": "avg($value)"
        }
      }
    },
    "projectedVariables": [
      "sensor"
    ]
  }
}	
events
| where timestamp >= datetime(2021-11-01T00:00:00.0000000Z) and timestamp < datetime(2021-11-05T00:00:00.0000000Z)
| where  deviceId_string == "deviceId1"
| where ['sensors.sensor_string'] == "heater" and ['sensors.location_string'] == "floor1room12"
| summarize avgSensorValue= avg(coalesce(['sensors.value_double'], todouble(['sensors.value_long']))) by bin(IntervalTs = timestamp, 1m)
| project IntervalTs, avgSensorValue

Power BI

Nie ma zautomatyzowanego procesu migracji raportów usługi Power BI opartych na usłudze Time Series Insights. Wszystkie zapytania korzystające z danych przechowywanych w usłudze Time Series Insights muszą zostać zmigrowane do usługi Eventhouse.

Aby utworzyć wydajne raporty szeregów czasowych w usłudze Power BI, zalecamy zapoznanie się z następującymi artykułami w blogu informacyjnym:

Zapoznaj się z tymi zasobami, aby uzyskać wskazówki dotyczące tworzenia skutecznych raportów szeregów czasowych w usłudze Power BI.

pulpit nawigacyjny Real-Time

Pulpit nawigacyjny Real-Time w sieci szkieletowej to kolekcja kafelków, opcjonalnie uporządkowana na stronach, na których każdy kafelek ma zapytanie bazowe i wizualną reprezentację. Zapytania języka Kusto Query Language (KQL) można eksportować natywnie do pulpitu nawigacyjnego jako wizualizacje, a później modyfikować ich podstawowe zapytania i formatowanie wizualne zgodnie z potrzebami. Oprócz łatwości eksploracji danych to w pełni zintegrowane środowisko pulpitu nawigacyjnego zapewnia lepszą wydajność zapytań i wizualizacji.

Zacznij od utworzenia nowego pulpitu nawigacyjnego w usłudze Fabric Real-Time Intelligence. Ta zaawansowana funkcja umożliwia eksplorowanie danych, dostosowywanie wizualizacji, stosowanie formatowania warunkowego i korzystanie z parametrów. Ponadto możesz tworzyć alerty bezpośrednio z poziomu pulpitów nawigacyjnych Real-Time, zwiększając możliwości monitorowania. Aby uzyskać szczegółowe instrukcje dotyczące tworzenia pulpitu nawigacyjnego, zapoznaj się z oficjalną dokumentacją .