How do you approach data cleaning and validation when dealing with large, unstructured datasets?
Write a PostgreSQL query that standardizes raw usage fields, checks each record against the subscriber reference data, and identifies invalid records. Treat blank values, malformed dates, unsupported event types, negative usage, unknown subscribers, and inactive subscribers as validation failures.
event_id, cleaned subscriber and event fields, validation_status, and validation_reason.event_id ascending.| Column | Type | Description |
|---|---|---|
| event_idPK | INT | Unique raw usage event identifier |
| raw_subscriber_id | VARCHAR(30) | Unstandardized subscriber identifier |
| raw_event_type | VARCHAR(30) | Unstandardized usage event type |
| raw_event_date | VARCHAR(30) | Event date stored as raw text |
| raw_usage_mb | VARCHAR(30) | Usage amount stored as raw text in megabytes |
| Column | Type | Description |
|---|---|---|
| subscriber_idPK | VARCHAR(30) | Reference subscriber identifier |
| account_status | VARCHAR(20) | Current subscriber account status |