ETL
Last reviewed: 2026-05-29
Purpose: Extract, Transform, Load data pipeline training โ covering data ingestion pipelines, transformations, and batch/stream processing patterns.
Contents
Overview
This folder covers ETL (Extract, Transform, Load) pipeline design and implementation, with practical references to the streaming data pipelines in the training ecosystem.
ETL Pipeline Concepts
- Extract โ Pulling data from sources (databases, APIs, SSE streams, flat files)
- Transform โ Cleaning, normalizing, enriching, and structuring data (JSON parsing, type casting, field extraction)
- Load โ Writing to targets (OLAP databases, data lakes, message queues)
Real-World Examples
The training ecosystem includes working examples of ETL patterns:
Streaming ETL (Wikimedia โ Kafka โ Pinot)
- Extract โ SSE client (
wiki.py) consumes live Wikipedia event stream fromstream.wikimedia.org - Transform โ The
wiki_to_kafka.pyscript serializes events (datetime โ ISO format, JSON โ encoded bytes) - Load โ Produce to Kafka topic
wiki-eventswith batching (flush every 100 events)
Batch ETL (JSON Files โ Pinot)
- Extract โ JSON data files (check-in/checkout events, FMEA events, license usage reports)
- Transform โ Pinot table configs define transform functions using
JSONPATHextraction andJSONFORMATserialization - Load โ Batch ingestion via Pinot OFFLINE tables (
fnmea-events-table-OFFLINE.json)
Schema Inference
InferSchemaFromjson.shโ Automatically infer Pinot schema from JSON data filesInferMetaEventFromjson.shโ Infer meta-event schema for complex nested data