warming up your workspace

Python practice in Data Engineering

Browse the rooms before signing in. Opening a room requires an account and follows your existing access. 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 room.

  • 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 room.

  • 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 room.

  • Tally Events

    The dashboard needs a count of each event type from today's batch. Group and count by the event column.

    aggregation. Free room.

  • Completeness Audit

    A quality gate needs the completeness of the key column before the batch is allowed through.

    data-quality. Account access required.

  • 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. Account access required.

  • Revenue Roll-Up

    Finance wants revenue grouped by region. Sum the value column within each group.

    aggregation. Account access required.

  • 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. Account access required.

  • 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. Account access required.

  • Sessionize the Clicks

    Group a user's click timestamps into sessions, starting a new one whenever there is a gap over five seconds.

    streaming. Account access required.

  • Squeeze the Column

    A sorted status column repeats endlessly. Run-length encode it into (value, count) runs to shrink the file.

    encoding. Account access required.

  • 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. Account access required.

  • Encode the Categories

    A low-cardinality country column wastes space. Dictionary-encode it into integer codes plus a value-to-id map.

    encoding. Account access required.

  • 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. Account access required.

  • Schedule the DAG

    The orchestrator needs a run order for the pipeline tasks. Topologically sort the dependency graph (or report a cycle).

    orchestration. Account access required.

  • Windowed Counts

    A metrics job buckets events into one-minute tumbling windows. Count events per window by their timestamp.

    streaming. Account access required.

  • 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. Account access required.

  • 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. Account access required.

  • 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. Account access required.

  • 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. Account access required.