Skip to content

The project aims to demonstrate how to work with real-time data using Kafka, KSQL, Elasticsearch, and Flask. It shows how to perform joins on Kafka topics, ingest data into Elasticsearch using Kafka Connect, and build a REST API to provide real-time metrics to end-users.

Notifications You must be signed in to change notification settings

atu-sharm/Real-time-Data-Processing-and-Analysis-with-Kafka-Connect-KSQL-Elasticsearch-and-Flask

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-time Data Processing and Analysis with Kafka, Connect, KSQL, Elasticsearch, and Flask

Architectural overview

Architecture

Get started

Prerequisites & setup

  • install docker/docker-compose
  • clone this repo!

Docker Startup

docker-compose up -d

KSQL

Go control-center:

localhost:9021

Run the KSQL script:

scripts/03_ksql.ksql';
exit;

Load Dynamic Templates for Elastic

./04_elastic_dynamic_template

Setup Kafka Connect Elastic Sink

Write topic runner_status and runner_location to Elastic

./05_kafka_to_elastic_sink

Check connector status:

curl -s "http://localhost:8083/connectors?expand=info&expand=status" | \
         jq '. | to_entries[] | [ .value.info.type, .key, .value.status.connector.state,.value.status.tasks[].state,.value.info.config."connector.class"]|join(":|:")' | \
         column -s : -t| sed 's/\"//g'| sort

Flask-Api

About

The project aims to demonstrate how to work with real-time data using Kafka, KSQL, Elasticsearch, and Flask. It shows how to perform joins on Kafka topics, ingest data into Elasticsearch using Kafka Connect, and build a REST API to provide real-time metrics to end-users.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 68.3%
  • Shell 20.2%
  • HTML 6.5%
  • CSS 5.0%