IoT projecten; data is je uitdaging, schaalbaarheid de oplossing

Vincent Hagen
Vincent Hagen

22 februari 2022

Schaalbare IoT data verwerking

Data uitdagingen, het soort uitdagingen waar je last van kunt krijgen ver na livegang van je IoT project. Dat wil zeggen, het is gewoon nog geen probleem bij de initiële ontwikkeling van je project. Maar dat wil zeker ook niet zeggen dat je er dus op voorhand niets aan kunt voorkomen. Hoe zorg je er nu voor dat je project en/of systeem die toenemende stroom en verantwoordelijkheid aan kan? Hoe zet je zo’n IoT project schaalbaar op? In dit blog duiken we er in!

De 3 grootste data uitdagingen bij IoT projecten

De eerste en grootste uitdaging is de grote toename aan data. Pas na verloop van tijd wordt de diversiteit en hoeveelheid data groter. Bij IoT projecten groeit dit vele maten groter dan bij veel andere soort projecten.

Het tweede waar je tegenaan kunt lopen; er dienen andere systemen op aangesloten te worden. Bijvoorbeeld voor het automatiseren van taken op basis van die data.

Als laatste wordt het meer en meer noodzakelijk om alle vergaarde data op de juiste manier te interpreteren, om hier nieuwe inzichten uit te kunnen halen.

First things first

Voor groeiende IoT projecten is het van enorm belang dat de data goed en schaalbaar afgeleverd wordt aan de voordeur van je applicatie. Deze fictieve deur moet groot genoeg zijn om de stroom aan berichten aan te kunnen, ook mag hij niet dichtvallen als het achter de deur te druk wordt. Met cloud oplossingen als Core IoT van AWS of Google blijft de deur altijd open en groot genoeg voor al je IoT data. IoT devices kunnen zo door middel van het MQTT protocol berichten afleveren. Ook zijn er opensource alternatieve als RabbitMQ, HiveMQ en nog vele andere. Deze schaalbare MQTT brokers, maken het mogelijk om berichten af te leveren in een fictieve postbus welke vervolgens geleegd kan worden door 1 of meerdere programma’s 

De stroom aan berichten kan vervolgens realtime of in batches worden verwerkt door middel van Stream processors zoals Google Dataflow, AWS Kinesis Data Analytics of Apache Flink. Hiermee kunnen realtime waardes worden gefilterd, totalen worden berekend of andere logica uitgevoerd worden. Deze data flows kunnen gemakkelijk worden uitgebreid, en hergebruikt worden. Het voordeel van de genoemde software is dat ze allemaal gebruik kunnen maken van een veelgebruikte industriestandaard: Apache Beam. Hierdoor ben je niet voor eeuwig gebonden aan de cloud oplossing waar je initieel voor kiest.

Uiteraard moeten deze resultaten ook opgeslagen worden, met google dataflow en AWS Kinesis Data wordt de resultaat data direct al opgeslagen in de dienst zelf. Deze kan je direct gebruiken als nieuwe datastroom voor je applicatie, of dashboard. Als opensource alternatief zijn er vele opties. Veel IoT projecten hebben tijdsgebonden data, waardoor een timeseries database als InfluxDb vaak een vereiste is. Als dat niet het geval is, kies dan vooral een database die goed omgaat met grote hoeveelheden nieuwe data en goed mee kan groeien wanneer het cruciaal wordt, Postgres is een voorbeeld hiervan.

Tijd voor automatiseren

Nu heb je alle data die je maar wilt, maar vaak wil je op basis van die data iets in gang zetten. Denk bijvoorbeeld aan een gemiddeld IoT project met veel sensoren. Vaak kunnen onderdelen zoals batterijen, filters of de betrouwbaarheid van de sensoren zelf in de gaten worden gehouden door middel van sensoren zelf. Dan wil je dat het systeem hier op z’n minst een seintje van geeft aan de betreffende afdeling, of misschien beter nog: het onderdeel bestellen en een orderbon voor de monteur aanmaken. Dit is de fase waarin het IoT project echt waarde gaat opleveren voor je business. 

De juiste integraties met de organisatie is van groot belang, hierdoor laat je het systeem voor je werken en kunnen verschillende systemen geautomatiseerd worden. Ook kan meer en meer ‘business logica” toegevoegd gaan worden, waarmee het systeem slimmer en slimmer zal worden. Denk hierbij aan het bovengenoemde voorbeeld, stel er is ook een extern planning systeem. Dan zal er eerst een monteur in de buurt, met een gaatje, gevonden moeten worden, daarna kan deze direct op de hoogte gesteld worden van de reeds aangemaakt orderbon en opdracht met alle statusmeldingen uit het systeem. 

Dit soort integraties zijn te maken door Google cloud functions of AWS Lambda functions te schrijven specifiek voor bepaalde gebeurtenissen in je datastroom. Of door deze logica in een applicatie te schrijven die de eerder genoemde datastroom consumeert, hierop acteert en mogelijk weer nieuwe gebeurtenissen publiceert op de datastroom. Kortom de sky is the limit!

Data. En dan?

Na verloop van tijd heb je een gigantische bak met data. Vaak zit er meer data in ‘de bak’ dan direct gebruikt wordt. Maar hiermee kun je vaak wel mooie inzichten opdoen. En nog belangrijker; hier kunnen nieuwe proposities mee ontdekt en ontwikkeld worden. Op basis van de data die je al had!

Data-analyse-base

Belangrijk is wel dat deze analytische vraagstukken niet beantwoord worden door middel van de productiedatabase. Hiermee vertraag je de database en belast je onnodig je gehele applicatie en alles wat er aan hangt. Een aparte database specifiek toegespitst voor deze analyse is dan ook een must. Hier zijn verschillende oplossingen voor. 

In de cloud heb je Amazon Redshift en Google BigQuery, deze zijn makkelijk te integreren in hun eigen IoT platforms. Waarna je gemakkelijk dashboards bij elkaar kan klikken met AWS QuickSights, Google Data studio, Tableau, Power BI, Qlikview of een andere BI tool.

In de opensource kant heb je genoeg oplossingen zoals InfluxDb, Clickhouse en TimescaleDB. Met alle genoemde oplossingen is het mogelijk om realtime analytics uit te voeren op je data. 

Deze realtime analytics leiden niet alleen tot mooie rapporten en inzichten, maar kunnen ook technische vraagstukken beantwoorden. Zoals: Wat is de top 3 onderdelen die het vaakst vervangen moeten worden? Of in welke periode gaan welke onderdelen het over het algemeen stuk? 

Dat wil jij toch ook?

Wil jij dit soort vragen ook beantwoord hebben? Sta je aan de start van een groots IoT project of kunnen wij je helpen om je project op te schalen? Neem contact met ons op, onze deur staat altijd open!