Condividi tramite


Migrazione di Time Series Insights Gen2 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.

Raccomandazioni generali sulla migrazione.

Funzionalità Migrazione consigliata
Inserimento di JSON dall'hub con appiattimento ed escape Ottenere dati da Hub eventi di Azure
Aprire l'archivio ad accesso sporadico Disponibilità di OneLake di Eventhouse
Connettore Power BI Usare Il connettore Power BI di Eventhouse. 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'istanza di Eventhouse o esplorare i dati in una lakehouse con un notebook
Caricamento in blocco Ottenere dati da Archiviazione di Azure
Modello Time Series Può essere esportato come file JSON. Può essere importato in Eventhouse. La semantica del grafo Kusto consente il modello, l'attraversamento e l'analisi della gerarchia del modello Time Series come grafico
Esplora serie temporali Dashboard in tempo reale, report di Power BI o scrittura di un dashboard personalizzato con 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 PT=Time la cartella nell'account di archiviazione. Per altre informazioni, vedere Archiviazione dati.

Passaggio 1 della migrazione: ottenere statistiche sui dati di telemetria

Dati

  1. Panoramica di Env
    • Record Environment ID from first part of Data Access FQDN (ad esempio, d390b0b0-1445-4c0c-8365-68d6382c1c2a From .env.crystal-dev.windows-int.net)
  2. Panoramica di Env -> Configurazione archiviazione -> Account di archiviazione
  3. Usare Storage Explorer per ottenere statistiche sulle cartelle
    • Dimensioni del record e numero di BLOB della PT=Time cartella.

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

Creare un'istanza di Eventhouse

Per configurare una eventhouse per il processo di migrazione, seguire la procedura descritta in Creazione di un'istanza di Eventhouse.

Inserimento di dati

Per recuperare i dati per l'account di archiviazione corrispondente all'istanza di Time Series Insights, seguire i passaggi per ottenere dati da Archiviazione di Azure.

Verificare quanto segue:

  1. Selezionare il contenitore appropriato e specificare l'URI insieme al token di firma di accesso condiviso o alla chiave dell'account necessaria.

  2. Configurare il percorso della cartella filtri file per V=1/PT=Time 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 aggiungere un'altra colonna e usare la trasformazione mapping DropMappedFields .

  4. Completare il processo di inserimento.

Eseguire query sui dati

Dopo aver inserito correttamente i dati, è 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 Time Series ad Azure Esplora dati

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 all'Esplora dati di Azure - Eliminare le prime 3 righe

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

    Screenshot della migrazione TSM all'Esplora dati di Azure - Ricerca e sostituzione

  4. Inserire come JSON in ADX come tabella separata usando Recupera 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 della 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

GetEvents

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

Dashboard in tempo reale

Un dashboard in tempo reale 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 Linguaggio di query Kusto (KQL) in un dashboard come oggetti 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. È anche possibile creare avvisi direttamente dai dashboard in tempo reale, migliorando le funzionalità di monitoraggio. Per istruzioni dettagliate su come creare un dashboard, vedere la documentazione ufficiale.