ETL Testing45 min
Real ETL Testing — Live Oracle Project
About this lab
A production ELT pipeline that ran against a live Oracle Autonomous Database: 541,909 Kaggle retail rows staged in Object Storage, loaded with DBMS_CLOUD, transformed into a star schema, and validated with 23 checks — all PASS. Read the real STM document, browse the real source, staging and warehouse schemas, and run SQL as the read-only tester.
45 min · Source-to-target mapping and testing · Data warehouse testing · SQL-based validation · Real-time project scenarios
- Dataset
- Online Retail (UCI)
- Database
- elt-retail-adb · Oracle Database 19c (Always-Free, 1 ECPU)
- Bucket
- kaggle-staging-bucket (bmp9etfqahrc)
- Tester
- TESTER_USER · read-only
- Nothing here is seeded. Every row count, column and mapping rule was read from the live DWH_METRIC_CONTROL and DWH_ETL_AUDIT objects.
- The tester account holds SELECT on 16 objects and nothing else — run an INSERT and watch ORA-01031 prove the read-only guarantee.
- Fact + quarantine + excluded reconciles exactly to the cleaned input: 524,877 + 0 + 2,510 = 527,387. Nothing vanished.
Row waterfall — the pipeline in six numbers
Read from DWH_VW_ROW_PARITY. Every row is fact, quarantined or excluded — never silently dropped.
- 01Raw rows ingested (SRC_SCHEMA.RETAIL_RAW) — COPY_DATA from 23 Object Storage parts5,41,909
- 02After exact-duplicate removal — −5,268 full-row duplicates5,36,641
- 03After credit-note / adjustment removal — −9,254 InvoiceNo LIKE 'C%' / 'A%'5,27,387
- 04Unparseable rows quarantined — bad date or non-numeric qty/price → DWH_FACT_QUARANTINE0
- 05Non-positive qty/price excluded — bookkeeping lines → DWH_FACT_EXCLUDED (retained, not dropped)2,510
- 06FINAL FACT ROWS (DWH_FACT_SALES) — revenue 10,631,048.745,24,877
Run something and the rows land here.