Banking Customer 360 on GCP
Every customer, account, loan and payment in one trusted warehouse.
- Role
- Data engineer · personal project
- Status
- Personal project
- Stack
- Python · SQL · PySpark · BigQuery · Cloud Storage · Dataflow · Pub/Sub · Cloud Composer
A personal project built on Google Cloud. It is not a bank’s or an employer’s production system.
How it fits together
Context
Banking data typically lives in separate systems for customers, accounts, transactions, loans and payments. Answering a basic Customer 360 question means joining all of them, and the numbers have to agree.
I designed this platform on Google Cloud to bring those sources together in a BigQuery warehouse built for analytics and reporting.
Constraints
- Financial figures must reconcile: totals in the warehouse have to match the source systems.
- Sources change continuously, so reloading everything on each run is too slow and too costly.
- Some transaction data needs to arrive in near real time, alongside scheduled batch loads.
What I built
- Python and SQL ETL pipelines that ingest structured banking datasets from several source systems into Cloud Storage as the landing layer.
- Bronze, Silver and Gold layers, with PySpark transformations for customer, account, loan and transaction data.
- A star-schema model in BigQuery, with fact and dimension tables for transactions, loans, payments and customers.
- Incremental loading using Change Data Capture concepts, and Pub/Sub event ingestion for near-real-time transactions.
- Validation and reconciliation checks that keep financial totals correct between layers.
- Cloud Composer (Apache Airflow) DAGs to orchestrate the pipelines, and tuned BigQuery SQL for reporting.
- Exploratory GenAI and RAG work for banking document processing and customer information extraction.
Tradeoff: Reconcile at every layer, not just at the end
Checking totals between Bronze, Silver and Gold adds pipeline steps and run time. When a number is wrong, the failing layer is obvious immediately instead of surfacing later as a report nobody trusts.
Outcome
One analytical model supports Customer 360, transaction and loan analytics, segmentation and transaction monitoring, with financial totals reconciled at every layer.