Skip to content

mohamedhassan279/Weather-Stations-Monitoring

 
 

Repository files navigation

Weather-Stations-Monitoring

DDIA class final project that is about building a full weather stations monitoring system.

Overview

The Internet of Things (IoT) is an important source of data streams in the modern digital world. The “Things” are huge in count and emit messages in very high frequency which flood the global internet. Hence, efficient stream processing is inevitable. One use case is the distributed weather stations use case. Each “weather station” emits readings for the current weather status to the “central base station” for persistence and analysis. In this project, you will be required to implement the architecture of a weather monitoring system.

System Architecture

The system is composed of three stages:

  • Data Acquisition: multiple weather stations that feed a queueing service (Kafka) with their readings.
  • Data Processing & Archiving: The base central station is consuming the streamed data and archiving all data in the form of Parquet files.
  • Indexing: two variants of index are maintained
    • Key-value store (Bitcask) for the latest reading from each individual station
    • ElasticSearch / Kibana that are running over the Parquet files

image

About

DDIA class final project that is about building a full weather stations monitoring system.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 94.8%
  • Python 3.2%
  • Shell 2.0%