Skip to content

Latest commit

 

History

History
265 lines (185 loc) · 7.44 KB

File metadata and controls

265 lines (185 loc) · 7.44 KB

Azure NHTSA Vehicle Complaints Analytics Pipeline

Ford Case Study | Azure Data Factory • Data Lake • Parquet • Synapse Serverless SQL • Power BI

An end-to-end cloud data engineering and analytics pipeline built on Microsoft Azure to ingest, transform, query, and visualize vehicle complaint data from the National Highway Traffic Safety Administration (NHTSA).

The pipeline retrieves the source data from the NHTSA website, processes the raw complaint files in Azure, converts the data into manufacturer-specific Parquet files, analyzes Ford complaint data with Synapse Serverless SQL, and presents the results through interactive Power BI dashboards.


Architecture

alt text

Pipeline Flow

NHTSA Website → Azure Data Factory → Azure Storage → Mapping Data Flow → Parquet → Synapse Serverless SQL → Power BI

The pipeline follows these stages:

  1. Web Data Ingestion
    Azure Data Factory retrieves the NHTSA vehicle complaint ZIP file from the web source.

  2. Extraction & Raw Storage
    The ZIP archive is extracted and the raw pipe-delimited TXT complaint data is stored in Azure Storage.

  3. Data Transformation
    An Azure Data Factory Mapping Data Flow:

    • Reads the raw TXT dataset
    • Filters invalid manufacturer records
    • Derives output file names from manufacturer names
    • Converts the data from TXT to Parquet
  4. Manufacturer-Based Output
    Complaint records are separated into manufacturer-specific Parquet files such as:

    Ford.parquet
    Toyota.parquet
    Honda.parquet
    Chevrolet.parquet
    ...
    
  5. Serverless SQL Analytics
    Azure Synapse Serverless SQL is used to create an external table over the Ford Parquet data and run analytical SQL queries.

  6. Power BI Visualization
    Power BI connects to the Ford complaint data and provides interactive dashboards for complaint volume, injuries, deaths, and incident trends.


Technology Stack

Technology Purpose
Azure Data Factory Data ingestion and transformation orchestration
Azure Storage / Data Lake Raw and transformed data storage
ADF Mapping Data Flow TXT-to-Parquet transformation
Apache Parquet Columnar storage for analytics
Azure Synapse Analytics Serverless SQL querying
SQL External tables, validation, and analysis
Power BI Interactive dashboards and visualization
Git / GitHub Source control and portfolio documentation

Data Transformation

The transformation layer uses an Azure Data Factory Mapping Data Flow.

Raw NHTSA TXT
      ↓
Filter invalid manufacturer rows
      ↓
Derive manufacturer-based filename
      ↓
Write Parquet
      ↓
Manufacturer-specific files

The output filename is derived from the manufacturer field, producing separate files such as Ford.parquet.

This approach creates analytics-friendly columnar files while keeping manufacturer datasets independently accessible.


Ford Analytics with Synapse

The downstream analytical portion of the project focuses on Ford vehicle complaints.

Azure Synapse Serverless SQL is used to create:

dbo.FordExternalTable

over the Ford Parquet dataset.

The repository includes SQL scripts for:

sql/
├── 01_create_external_table.sql
├── 02_validate_external_table.sql
└── 03_f150_crash_count_by_year.sql

One analysis examines the number of reported crashes involving the Ford F-150 by model year.

Example:

SELECT
    TRY_CAST([YEARTXT] AS INT) AS ModelYear,
    COUNT(*) AS CrashCount
FROM dbo.FordExternalTable
WHERE LTRIM(RTRIM([MODELTXT])) = 'F-150'
  AND TRY_CAST([YEARTXT] AS INT) BETWEEN 1990 AND 2010
  AND UPPER(LTRIM(RTRIM([CRASH]))) IN ('Y', 'TRUE')
GROUP BY TRY_CAST([YEARTXT] AS INT)
ORDER BY ModelYear ASC;

Power BI Dashboards

The Power BI report provides multiple views of Ford vehicle complaint data.

Complaint Severity Overview

alt text

The main dashboard summarizes overall complaint volume and severity using metrics including:

  • Total complaints
  • Total injuries
  • Total deaths
  • Injuries per 1,000 complaints
  • Deaths per 1,000 complaints

It also provides filtering by model year, state, crash status, and date.

Death Analysis

alt text

Analyzes deaths across Ford models and model years and highlights the vehicle/model-year combinations associated with the highest reported death counts.

Injury Analysis

alt text

Explores injury counts across vehicle models, model years, and reporting years.

Incident Analysis

alt text

Examines overall Ford complaint frequency and trends across different vehicle model years.


Repository Structure

azure-nhtsa-vehicle-complaint-pipeline/
│
├── adf/
│   └── Azure Data Factory deployment artifacts
│
├── docs/
│   └── architecture-diagram.png
│
├── powerbi/
│   ├── NHTSA_Ford_Complaints_Analysis.pbip
│   ├── NHTSA_Ford_Complaints_Analysis.Report/
│   └── NHTSA_Ford_Complaints_Analysis.SemanticModel/
│
├── sample-data/
│   └── ford_complaints_sample.csv
│
├── screenshots/
│   ├── 01_ford_complaint_severity_dashboard.png
│   ├── 02_ford_complaint_death_analysis.png
│   ├── 03_ford_complaint_injury_analysis.png
│   └── 04_ford_complaint_incident_analysis.png
│
├── sql/
│   ├── 01_create_external_table.sql
│   ├── 02_validate_external_table.sql
│   └── 03_f150_crash_count_by_year.sql
│
└── README.md

Sample Data

The full NHTSA dataset is not stored in this repository.

A small Ford complaint sample is included for reference:

sample-data/ford_complaints_sample.csv

The full dataset is processed through the Azure pipeline.


Key Project Highlights

  • Built an end-to-end Azure data pipeline from an external web source to BI dashboards
  • Automated ingestion and extraction using Azure Data Factory
  • Transformed raw pipe-delimited TXT data into Parquet
  • Separated output into manufacturer-specific Parquet files
  • Queried Ford data using Synapse Serverless SQL
  • Created external tables for analytics without requiring a traditional dedicated warehouse
  • Developed SQL-based Ford and F-150 complaint analysis
  • Built interactive Power BI dashboards for complaint severity, injuries, deaths, and incident trends
  • Organized Power BI using the Git-friendly PBIP project format

Project Focus

The ingestion and transformation pipeline processes NHTSA vehicle complaint data across manufacturers.

The analytical case study then focuses specifically on Ford, using:

Ford.parquet
        ↓
Synapse Serverless SQL
        ↓
dbo.FordExternalTable
        ↓
SQL Analysis
        ↓
Power BI Dashboards

This separation demonstrates how a general-purpose data pipeline can support manufacturer-specific downstream analytics.


Data Source

Vehicle complaint data is provided by the National Highway Traffic Safety Administration (NHTSA).


Author

Roozbeh Khodayari

Data Science | Data Engineering | Azure | SQL | Power BI