Condividi tramite


Migrazione di Time Series Insights Gen2 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, vedere la documentazione .

Panoramica

Eventhouse è la banca dati di serie temporali in Real-Time Intelligence. Funge da destinazione per la migrazione dei dati da Time Series Insights.

Raccomandazioni generali sulla migrazione.

Caratteristica Migrazione consigliata
Inserimento di JSON dall'hub con appiattimento ed escape Ottenere dati da Hub eventi di Azure
Aprire il deposito refrigerato Disponibilità di Eventhouse OneLake
Connettore Power BI Usare Connettore Eventhouse Power BI. Riscrivere TSQ in KQL manualmente.
Connettore Spark Eseguire la migrazione dei dati a Eventhouse. Usare un notebook con Apache Spark per eseguire query su un Eventhouse o Esplorare i dati nel Lakehouse con un notebook
Caricamento massivo Ottenere dati da archiviazione Azure
Modello Time Series Può essere esportato come file JSON. Può essere importata su Eventhouse. la semantica del grafo Kusto consente la modellazione, l'attraversamento e l'analisi della gerarchia del modello di serie temporali come grafo
Esplora serie temporali Real-Time dashboard, report di Power BI o creare una dashboard personalizzata usando KustoTrender
Linguaggio di query Riscrivere le query in KQL.

Migrazione dei dati di telemetria

Per recuperare la copia di tutti i dati nell'ambiente, usare la cartella PT=Time nell'account di storage. Per altre informazioni, vedere Data Storage.

Passaggio 1 della migrazione: ottenere statistiche sui dati di telemetria

Dati

  1. Panoramica di Env
    • Registra l'ID ambiente dalla prima parte del FQDN di Data Access (ad esempio, d390b0b0-1445-4c0c-8365-68d6382c1c2a da .env.crystal-dev.windows-int.net)
  2. Panoramica di Env - Configurazione dell'archiviazione> - Account di archiviazione>
  3. Usare Storage Explorer per ottenere statistiche sulle cartelle
    • Dimensione dei record e numero di BLOB della cartella PT=Time.

Passaggio 2 della migrazione: eseguire la migrazione dei dati a eventhouse

Creare un Eventhouse

Per configurare un'Eventhouse per il processo di migrazione, seguire i passaggi descritti nella sezione "creazione di un'Eventhouse".

Inserimento dati

Per recuperare i dati per l'account di archiviazione corrispondente alla tua istanza di Time Series Insights, seguire i passaggi in Getting Data from Azure Storage.

Assicurarsi di:

  1. Selezionare il contenitore appropriato e specificare il relativo URI, insieme al token di firma di accesso condiviso necessario o chiave dell'account.

  2. Configurare il percorso della cartella filtri file come V=1/PT=Time per filtrare i BLOB pertinenti.

  3. Verificare lo schema dedotto e rimuovere eventuali colonne raramente sottoposte a query, mantenendo almeno il timestamp, le colonne TSID e i valori. Per assicurarsi che tutti i dati vengano copiati in Eventhouse, aggiungete un'altra colonna e usate la trasformazione di mapping DropMappedFields.

  4. Completare il processo di inserimento.

Esecuzione di query sui dati

Ora che i dati sono stati inseriti correttamente, è possibile iniziare a esplorarli usando un set di query KQL . Se è necessario accedere ai dati dall'applicazione client personalizzata, Eventhouse fornisce SDK per i principali linguaggi di programmazione, ad esempio C# (collegamento), Java (collegamento) e Node.js (collegamento).

Migrazione del modello di Serie Temporale in Azure Data Explorer

Il modello può essere scaricato in formato JSON dall'ambiente TSI usando l'esperienza utente di Tsi Explorer o l'API Batch TSM. È quindi possibile importare il modello in Eventhouse.

  1. Scaricare TSM dall'esperienza utente tsi.

  2. Eliminare le prime tre righe usando Visual Studio Code o un altro editor.

    Screenshot della migrazione TSM in Esplora dati di Azure - Eliminare le prime 3 righe

  3. Usando Visual Studio Code o un altro editor, cercare e sostituire utilizzando il pattern regex \},\n \{ con }{.

    Screenshot della migrazione TSM a Azure Data Explorer - ricerca e sostituzione

  4. Inserire come JSON in ADX come tabella separata usando Recuperare dati da un singolo file.

Dopo aver eseguito la migrazione dei dati delle serie temporali a Eventhouse in Fabric Real-Time Intelligence, è possibile usare la potenza di semantica del grafo Kusto per contestualizzare e analizzare i dati. La semantica del grafo Kusto consente di modellare, attraversare e analizzare la gerarchia del modello Time Series come grafico. Usando la semantica del grafo Kusto, è possibile ottenere informazioni dettagliate sulle relazioni tra entità diverse nei dati delle serie temporali, ad esempio asset, siti e punti dati. Queste informazioni dettagliate consentono di comprendere le dipendenze e le interazioni tra vari componenti del sistema.

Convertire query time series (TSQ) in KQL

OttieniEventi

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

{
  "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 con variabile proiettata

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

AggregateSeries

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

AggregateSeries con filtro

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

Non esiste un processo automatizzato per la migrazione dei report di Power BI basati su Time Series Insights. È necessario eseguire la migrazione di tutte le query basate sui dati archiviati in Time Series Insights su Eventhouse.

Per creare report di serie temporali efficienti in Power BI, è consigliabile fare riferimento agli articoli di blog informativi seguenti:

Per indicazioni sulla creazione di report serie temporali efficaci in Power BI, vedere queste risorse.

Real-Time Dashboard

Un Real-Time Dashboard in Fabric è una raccolta di riquadri, organizzati facoltativamente in pagine, in cui ogni riquadro ha una query sottostante e una rappresentazione visiva. È possibile esportare in modo nativo le query KQL (Kusto Query Language) in un dashboard come elementi visivi e successivamente modificare le query sottostanti e la formattazione visiva in base alle esigenze. Oltre a semplificare l'esplorazione dei dati, questa esperienza di dashboard completamente integrata offre prestazioni di query e visualizzazione migliorate.

Per iniziare, creare un nuovo dashboard in Fabric Real-Time Intelligence. Questa potente funzionalità consente di esplorare i dati, personalizzare gli oggetti visivi, applicare la formattazione condizionale e usare i parametri. Inoltre, è possibile creare avvisi direttamente dai dashboard di Real-Time, migliorando le funzionalità di monitoraggio. Per istruzioni dettagliate su come creare un dashboard, vedere la documentazione ufficiale .