← All projects

Financial data engineering · Case study 02

Nuga Bank
Data Pipeline

From raw CSV transactions to validated, analytics-ready Gold tables using Databricks, PySpark and a medallion architecture.

01 · Context

The challenge

A large raw banking transaction CSV needed to be ingested, cleaned, standardized, modelled and validated in a repeatable pipeline rather than processed manually in an exploratory notebook.

02 · Architecture

A clear path from raw to trusted.

Raw CSVUnity Catalog Volume
BronzeSource-like Delta table
SilverClean & standardize
GoldAnalytics model
QualityAutomated checks

The layers separate ingestion from cleaning and business-facing modelling, making each stage easier to reason about and validate.

03 · Engineering

Engineering approach

01

Bronze ingestion

Read the raw transaction file from a governed Volume and persist the source data as Delta.

02

Silver transformation

Handle missing values, required-field rules, identifiers and standardization before modelling.

03

Gold modelling

Create customer, employee, transaction and fact tables from the cleaned dataset.

04

Quality validation

Fail the workflow when the fact table is empty or required identifiers are missing.

04 · Orchestration

Dependency-based workflow.

01_bronze_ingestion
ingestion.py
↓
02_silver_transform
transformation.py
↓
03_gold_transform
gold_transformations.py
↓
04_data_quality
data_quality.py

Each task runs only after its upstream dependency succeeds. Databricks provides run status, metrics and lineage around the code.

05 · Modelling

Gold data model

Customer

Customer-focused descriptive attributes.

Employee

Employee-related attributes.

Transaction

Transaction-level descriptive data.

Fact table

Keys and measures for analytics-ready querying.

06 · Reliability

Quality is part of the pipeline.

The final task validates that the fact table contains data and that customer, employee and transaction identifiers are not null. A failed rule raises an error so the workflow cannot silently report success with invalid output.

  • Databricks
  • PySpark
  • Delta Lake
  • Unity Catalog
  • Workflows
  • Data Quality

07 · Reflection

What I would improve next

  • Parameterize catalog, schema and source paths for multiple environments.
  • Move toward incremental ingestion when new source data arrives regularly.
  • Expand quality checks to uniqueness, accepted values, referential integrity and freshness.
  • Add monitoring and notifications for production-style operations.