Python practice in Data Engineering
Browse the rooms before signing in. All rooms are free with an account. Practice does not issue certificates.
Drop the Dupes
A retry replayed the same records into the load. Remove exact duplicates, keeping the first of each.
dedup. Free with an account.
Log Line Split
The ingestion job choked on a raw log dump. Split it into clean, non-blank lines before anything else runs.
parsing. Free with an account.
Parse the Params
A tracking pixel encodes its payload as k=v&k=v. Parse the query string into a dict, where a repeated key takes its last value.
parsing. Free with an account.
Tally Events
The dashboard needs a count of each event type from today's batch. Group and count by the event column.
aggregation. Free with an account.
Completeness Audit
A quality gate needs the completeness of the key column before the batch is allowed through.
data-quality. Free with an account.
Match the Keys
An inner join only keeps rows whose key exists on both sides. Return the sorted set of keys present in BOTH input lists, the heart of a hash join.
joins. Free with an account.
Revenue Roll-Up
Finance wants revenue grouped by region. Sum the value column within each group.
aggregation. Free with an account.
Table Loader
A partner sent a CSV with a header row. Load it into record dicts the rest of the pipeline can use.
parsing, records. Free with an account.
Delta-Encode the Column
Columnar stores shrink monotonic columns by keeping the first value, then the gaps. Delta-encode a column so a run of slowly-changing values compresses to small numbers.
columnar. Free with an account.
Sessionize the Clicks
Group a user's click timestamps into sessions, starting a new one whenever there is a gap over five seconds.
streaming. Free with an account.
Squeeze the Column
A sorted status column repeats endlessly. Run-length encode it into (value, count) runs to shrink the file.
encoding. Free with an account.
Stitch the Streams
Two feeds share an id. Join them with a hash join so each left row picks up its matching right fields.
joins. Free with an account.
Encode the Categories
A low-cardinality country column wastes space. Dictionary-encode it into integer codes plus a value-to-id map.
encoding. Free with an account.
Hold the Watermark
A streaming job decides when a window is complete by tracking a watermark: the latest event time minus an allowance for stragglers. Compute the current watermark.
streaming. Free with an account.
Schedule the DAG
The orchestrator needs a run order for the pipeline tasks. Topologically sort the dependency graph (or report a cycle).
orchestration. Free with an account.
Windowed Counts
A metrics job buckets events into one-minute tumbling windows. Count events per window by their timestamp.
streaming. Free with an account.
Capture the Changes
Compare last night's snapshot with tonight's and classify every change into inserts, updates, and deletes for the incremental load.
cdc. Free with an account.
Merge the Runs
External sort writes sorted runs to disk, then merges them. Implement the two-way merge that walks both sorted runs in lockstep into one sorted output.
external-sort. Free with an account.
Run the Warehouse
The nightly job runs the whole ETL: ingest the CSV, drop bad and unmatched rows, enrich with the product dimension, and return revenue by category.
pipeline. Free with an account.
Sort the Spill
The dataset is too big for memory. Sort it with external merge sort, never sorting more than the chunk size at once.
sorting. Free with an account.