Time Series Insights Gen2 migreren naar Real-Time Intelligence in Microsoft Fabric
Notitie
De Time Series Insights-service wordt op 7 juli 2024 buiten gebruik gesteld. Overweeg om bestaande omgevingen zo snel mogelijk naar alternatieve oplossingen te migreren. Ga voor meer informatie over de depreciatie en migratie naar onze documentatie.
Overzicht
Eventhouse is de tijdreeksdatabase bij Real-Time Intelligence. Het fungeert als het doel voor het migreren van gegevens van Time Series Insights.
Aanbevelingen voor migratie op hoog niveau.
Kenmerk | Migratie aanbevolen |
---|---|
JSON opnemen vanuit Hub met platmaken en ontsnappen | Gegevens ophalen uit Azure Event Hubs |
Koude opslag openen | Beschikbaarheid van Eventhouse OneLake |
Power BI Connector | Gebruik Eventhouse Power BI Connector. Herschrijf TSQ handmatig naar KQL. |
Spark connector | Gegevens migreren naar Eventhouse. Een notebook met Apache Spark gebruiken om een query uit te voeren op een Eventhouse- of De gegevens in uw Lakehouse verkennen met een notebook |
Bulksgewijs uploaden | Gegevens ophalen uit Azure Storage |
Tijdreeksmodel | Kan worden geëxporteerd als JSON-bestand. Kan worden geïmporteerd in Eventhouse. Kusto Graph Semantics maken het mogelijk de hierarchie van Tijdreeksmodellen te modelleren, doorlopen en analyseren als een grafiek. |
Tijdreeksen Verkenner | Real-Time DashboardPower BI-rapport of schrijf een aangepast dashboard met KustoTrender |
querytaal | Query's herschrijven in KQL. |
Het Migreren van Telemetrie
Als u de kopie van alle gegevens in de omgeving wilt ophalen, gebruikt u PT=Time
map in het opslagaccount. Zie Data Storagevoor meer informatie.
Migratie stap 1: statistieken over telemetriegegevens ophalen
Gegevens
- Overzicht van Env
- Noteer het Environment ID van het eerste deel van de Data Access FQDN (bijvoorbeeld d390b0b0-1445-4c0c-8365-68d6382c1c2a van .env.crystal-dev.windows-int.net)
- Overzicht van Env ->-opslagconfiguratie ->-opslagaccount
- Storage Explorer gebruiken om mapstatistieken op te halen
- Recordgrootte en het aantal blobs van
PT=Time
map.
- Recordgrootte en het aantal blobs van
Migratie stap 2: gegevens migreren naar Eventhouse
Een Eventhouse maken
Als u een Eventhouse voor uw migratieproces wilt instellen, volgt u de stappen in het maken van een Eventhouse.
Gegevensopname
Als u gegevens wilt ophalen voor het opslagaccount dat overeenkomt met uw Time Series Insights-exemplaar, volgt u de stappen in het ophalen van gegevens uit Azure Storage.
Zorg ervoor dat u het volgende doet:
Selecteer de juiste container en geef de bijbehorende URI op, samen met de benodigde SAS-token of accountsleutel.
Configureer het pad naar de map met bestandsfilters als
V=1/PT=Time
om de relevante blobs te filteren.Controleer het uitgestelde schema en verwijder onregelmatig opgevraagde kolommen, terwijl u ten minste de tijdstempel, TSID-kolommen en -waarden behoudt. Om ervoor te zorgen dat al uw gegevens naar Eventhouse worden gekopieerd, voegt u nog een kolom toe en gebruikt u de DropMappedFields toewijzingstransformatie.
Voltooi het opnameproces.
Query's uitvoeren op de gegevens
Nu u de gegevens hebt opgenomen, kunt u deze verkennen met behulp van een KQL-queryset. Als u toegang nodig hebt tot de gegevens van uw aangepaste clienttoepassing, biedt Eventhouse SDK's voor belangrijke programmeertalen zoals C# (koppeling), Java (koppeling) en Node.js (koppeling).
Time Series-model migreren naar Azure Data Explorer
Het model kan worden gedownload in JSON-indeling vanuit TSI Environment met behulp van TSI Explorer UX of TSM Batch API. Vervolgens kan het model worden geïmporteerd in Eventhouse.
Download TSM van TSI UX.
Verwijder de eerste drie regels met Visual Studio Code of een andere editor.
Gebruik Visual Studio Code of een andere editor om met regex
\},\n \{
te zoeken en te vervangen door}{
.Opnemen als JSON in ADX als een afzonderlijke tabel met behulp van Gegevens ophalen uit één bestand.
Zodra u uw tijdreeksgegevens hebt gemigreerd naar Eventhouse in Fabric Real-Time Intelligence, kunt u de kracht van Kusto Graph-semantiek gebruiken om uw gegevens te contextualiseren en analyseren. Met Kusto Graph Semantics kunt u de hiërarchie van uw Time Series-model als grafiek modelleren, doorlopen en analyseren. Met behulp van Kusto Graph-semantiek kunt u inzicht krijgen in de relaties tussen verschillende entiteiten in uw tijdreeksgegevens, zoals assets, sites en gegevenspunten. Deze inzichten helpen u inzicht te krijgen in de afhankelijkheden en interacties tussen verschillende onderdelen van uw systeem.
Time Series Queries (TSQ) vertalen naar KQL
Evenementen Ophalen
{
"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 met filteroptie
{
"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 met projected variable
{
"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']
GeaggregeerdeReeks
{
"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 met filter
{
"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
Er is geen geautomatiseerd proces voor het migreren van Power BI-rapporten die zijn gebaseerd op Time Series Insights. Alle query's die afhankelijk zijn van gegevens die zijn opgeslagen in Time Series Insights, moeten worden gemigreerd naar Eventhouse-.
Als u efficiënte tijdreeksrapporten in Power BI wilt maken, raden we u aan om te verwijzen naar de volgende informatieve blogartikelen:
- mogelijkheden van Eventhouse-tijdreeksen in Power BI
- Dynamische M-parameters gebruiken zonder de meeste beperkingen
- waarden voor tijdsduur/duur in KQL-, Power Query- en Power BI-
- KQL-queryinstellingen in Power BI
- Kusto-gegevens filteren en visualiseren in lokale tijd
- Bijna realtime rapporten in PBI + Kusto
- Power BI-modellering met ADX - spiekbriefje
Raadpleeg deze resources voor hulp bij het maken van effectieve tijdreeksrapporten in Power BI.
Real-Time Overzicht
Een Real-Time Dashboard in Fabric is een verzameling tegels, optioneel ingedeeld op pagina's, waarbij elke tegel een onderliggende query en een visuele weergave heeft. U kunt KQL-query's (Kusto Query Language) standaard exporteren naar een dashboard als visuals en de onderliggende query's en visuele opmaak later zo nodig wijzigen. Naast het gemak van gegevensverkenning biedt deze volledig geïntegreerde dashboardervaring verbeterde prestaties van query's en visualisaties.
Begin met het maken van een nieuw dashboard in Fabric Real-Time Intelligence. Met deze krachtige functie kunt u gegevens verkennen, visuals aanpassen, voorwaardelijke opmaak toepassen en parameters gebruiken. Bovendien kunt u waarschuwingen rechtstreeks vanuit uw Real-Time Dashboards maken, waardoor uw bewakingsmogelijkheden worden verbeterd. Raadpleeg de officiële documentatievoor gedetailleerde instructies over het maken van een dashboard.