Ich arbeite für einen M2M IoT-Provider. Es gibt Millionen von eingesetzten IoT-Geräten im Feld. Die Daten werden von Edge-Geräten gesammelt und an unseren zentralen Server gesendet. Der Server verarbeitet die Gerätedaten und sendet die verarbeiteten Informationen an verschiedene andere Subsysteme.Analytics Engine für IoT-Geräte
Wir konzipieren die Idee einer Analytics Engine (AE) parallel zum bestehenden System. Die von den IoT-Geräten kommenden Daten müssen in diesen Motor eingegeben werden, um verschiedene Arten von Analysen zu ermöglichen. Beispiel: Überwachen Sie die Ereignisse, die von einem Gerät während der letzten 24 Stunden kommen, und ermitteln Sie den Zustand oder andere Dinge. Wir versuchen, die Antworten auf die folgenden Fragen in diesem Zusammenhang herauszufinden:
1) Wo sollen wir die eingehenden Daten von IoT-Geräten tippen, um in das neue System (AE) zu speisen? Wenn wir auf den bestehenden Server tippen, werden wir eine starke Kopplung zwischen den beiden Systemen einführen. Jede Ausfallzeit am bestehenden Server muss die Pipeline ebenfalls auf AE trocknen. Was ist die allgemein empfohlene Strategie für einen solchen Fall?
2) Wir planen, AE mit Kafka zu beenden, um die Datenverfügbarkeit zu gewährleisten. Es soll verschiedene Mikro-Dienste geben, die als Kafka-Konsumenten handeln und ihre Sachen machen. Wie soll die Architektur eines Mikroservices aussehen, der den Gerätezustand gemäß den in den letzten 24 Stunden gemeldeten Ereignissen verwalten soll (d. H. Sowohl historische Daten als auch Live-Daten berücksichtigen)? Es gibt zahlreiche Technologien wie Spark, Hadoop, Apache und ich bin mir nicht sicher, mit welchem ich anfangen soll. Wie sollte ich die eingehenden Gerätedaten beibehalten und historische und eingehende Daten zusammen verarbeiten, um den aktuellen Gerätezustand herauszufinden? Was ist in solchen Szenarien üblich: Werden die verdichteten Daten im Voraus berechnet oder gespeichert oder werden sie in Echtzeit gemäß der eingehenden Anfrage berechnet?