🇮🇳 Independence Day Special Offer – Learn More, Pay Less!
SQL Validation Lab
The six checks that make up almost every ETL test plan — metadata, record count, duplicates, nulls, column mapping and minus — each one a real query with its failures highlighted in the result grid.
- 01
Every check runs against the same seeded defects, so a pass or fail here is a genuine outcome, not a canned message.
- 02
Failing rows are marked in the result grid. Red is a defect, amber is a warning worth explaining.
- 03
Run the ETL Pipeline lab first and the transformation and target-side MINUS checks turn green, while the source-side checks stay red — a good load rejects bad data, it does not clean the source.
Test plan
7 checks, each one a real query against the seeded defects
PRAGMA table_info(src_sales);
- src_sales.cidmissingtgt_sales.cidmissingColumn not found on one side
- src_sales.customer_namemissingtgt_sales.customer_namemissingColumn not found on one side
- src_sales.productmissingtgt_sales.productmissingColumn not found on one side
- src_sales.amountmissingtgt_sales.amountmissingColumn not found on one side
- src_sales.sale_datemissingtgt_sales.sale_datemissingColumn not found on one side
Every source column arrives as TEXT because the extract is a flat file, so each mapping into the typed target needs an explicit cast. Skip it and the engine stores what it was given: land this extract in stg_sales as-is and 20 amounts convert to REAL, while "63,000" stays text in a REAL column because it is not a number. Nothing errors. The data is simply wrong.
Run something and the rows land here.