Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a small ELT pipeline over a real dataset (a public API or CSV files). Requirements: EXTRACT the source and LOAD it raw into a warehouse (or DuckDB, a free local analytical database), then TRANSFORM it with SQL (or dbt) into a clean modeled table — a small star-style schema with a fact table (at a stated GRAIN) and at least one dimension. Make the load INCREMENTAL (only new rows, via a watermark) and IDEMPOTENT (re-running does not duplicate — use MERGE/upsert or insert-overwrite). Write at least one analytical query using a window function or aggregation, and document the schema and grain. Explain one place columnar storage or partitioning helped performance.
Extract -> load raw -> transform-in-warehouse (SQL/dbt) into a clean modeled table (a fact at a stated grain + a dimension).
Incremental (watermark) AND idempotent (MERGE/upsert or insert-overwrite) so re-running the load is safe.
A documented schema with an explicit grain; at least one analytical query (window function or aggregation).
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# An ELT pipeline into a warehouse ## Goal Build a small ELT pipeline over a real dataset (a public API or CSV files). Requirements: EXTRACT the source and LOAD it raw into a warehouse (or DuckDB, a free local analytical database), then TRANSFORM it with SQL (or dbt) into a clean modeled table — a small star-style schema with a fact table (at a stated GRAIN) and at least one dimension. Make the load INCREMENTAL (only new rows, via a watermark) and IDEMPOTENT (re-running does not duplicate — use MERGE/upsert or insert-overwrite). Write at least one analytical query using a window function or aggregation, and document the schema and grain. Explain one place columnar storage or partitioning helped performance. ## Acceptance criteria - [ ] ELT pipeline: Extract -> load raw -> transform-in-warehouse (SQL/dbt) into a clean modeled table (a fact at a stated grain + a dimension). - [ ] Correct loads: Incremental (watermark) AND idempotent (MERGE/upsert or insert-overwrite) so re-running the load is safe. - [ ] Modeling & SQL: A documented schema with an explicit grain; at least one analytical query (window function or aggregation). ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.