ankurchavda/streamify
ankurchavda/streamify has 933 GitHub stars and 205 forks. GitHot measured +1 stars in 24 hours, +4 in 7 days, and +12 in 15 days. Last checked 2026-11-09 20:13 UTC. Last push 2022-04-16.
A data engineering project with Kafka, Spark Streaming, dbt, Docker, Airflow, Terraform, GCP and much more!
Crecimiento de estrellas medido
- in 24h
- +1
- in 7 days
- +4
- in 15 days
- +12
- in 1 month
- Actualización retrasada
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
README.md
OriginalStreamify
A data pipeline with Kafka, Spark Streaming, dbt, Docker, Airflow, Terraform, GCP and much more!
Description
Objective
The project will stream events generated from a fake music streaming service (like Spotify) and create a data pipeline that consumes the real-time data. The data coming in would be similar to an event of a user listening to a song, navigating on the website, authenticating. The data would be processed in real-time and stored to the data lake periodically (every two minutes). The hourly batch job will then consume this data, apply transformations, and create the desired tables for our dashboard to generate analytics. We will try to analyze metrics like popular songs, active users, user demographics etc.
Dataset
Eventsim is a program that generates event data to replicate page requests for a fake music web site. The results look like real use data, but are totally fake. The docker image is borrowed from viirya's fork of it, as the original project has gone without maintenance for a few years now.
Eventsim uses song data from Million Songs Dataset to generate events. I have used a subset of 10000 songs.
Tools & Technologies
- Cloud - Google Cloud Platform
- Infrastructure as Code software - Terraform
- Containerization - Docker, Docker Compose
- Stream Processing - Kafka, Spark Streaming
- Orchestration - Airflow
- Transformation - dbt
- Data Lake - Google Cloud Storage
- Data Warehouse - BigQuery
- Data Visualization - Data Studio
- Language - Python
Architecture

Final Result

Setup
WARNING: You will be charged for all the infra setup. You can avail 300$ in credit by creating a new account on GCP.
Pre-requisites
If you already have a Google Cloud account and a working terraform setup, you can skip the pre-requisite steps.
- Google Cloud Platform.
- Terraform
Get Going!
A video walkthrough of how I run my project - YouTube Video
- Procure infra on GCP with Terraform - Setup
- (Extra) SSH into your VMs, Forward Ports - Setup
- Setup Kafka Compute Instance and start sending messages from Eventsim - Setup
- Setup Spark Cluster for stream processing - Setup
- Setup Airflow on Compute Instance to trigger the hourly data pipeline - Setup
Debug
If you run into issues, see if you find something in this debug guide.
How can I make this better?!
A lot can still be done :).
- Choose managed Infra
- Cloud Composer for Airflow
- Confluent Cloud for Kafka
- Create your own VPC network
- Build dimensions and facts incrementally instead of full refresh
- Write data quality tests
- Create dimensional models for additional business processes
- Include CI/CD
- Add more visualizations
Special Mentions
I'd like to thank the DataTalks.Club for offering this Data Engineering course for completely free. All the things I learnt there, enabled me to come up with this project. If you want to upskill on Data Engineering technologies, please check out the course. :)
Explorar proyectos relacionados
Asabeneh/30-Days-Of-Python
El reto de programación 30 Days of Python es una guía paso a paso para aprender el lenguaje de programación Python en 30 días. Este reto puede llevar más de 100 días. Sigue tu propio ritmo. Estos vídeos también pueden ayudarte: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,486 estrellasgrafana/grafana
Plataforma abierta y componible de observabilidad y visualización de datos. Visualiza métricas, registros y trazas de múltiples fuentes, como Prometheus, Loki, Elasticsearch, InfluxDB, Postgres y muchas más.
77,790 estrellasredis/redis
Para los desarrolladores que crean aplicaciones en tiempo real basadas en datos, Redis es la opción preferida, la más rápida y la de más funciones como caché, servidor de estructuras de datos y motor de consultas de documentos y vectores.
77,332 estrellasapache/superset
Apache Superset es una plataforma de visualización y exploración de datos.
75,455 estrellas