๐Ÿฆ Banking Data Engineering Pipeline

March 6, 2026 ยท View on GitHub

End-to-end data engineering project built on a banking dataset. Raw transactional data is ingested with Airbyte, stored and transformed in Snowflake using dbt, and visualized through Power BI and Qlik Sense dashboards.


๐Ÿ“ Architecture

Project Architecture

LayerTool
IngestionAirbyte
Data WarehouseSnowflake
Transformationdbt (Data Build Tool)
VisualizationPower BI, Qlik Sense

๐Ÿ“ Project Structure

banking-data-engineering/
โ”œโ”€โ”€ dbt/
โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ”œโ”€โ”€ sources.yaml          # Raw source definitions
โ”‚   โ”‚   โ”œโ”€โ”€ stg_account.sql       # Staging: Account
โ”‚   โ”‚   โ”œโ”€โ”€ stg_customer.sql      # Staging: Customer
โ”‚   โ”‚   โ”œโ”€โ”€ stg_transaction.sql   # Staging: Transaction
โ”‚   โ”‚   โ”œโ”€โ”€ stg_card.sql          # Staging: Card
โ”‚   โ”‚   โ”œโ”€โ”€ stg_dispositions.sql  # Staging: Disposition
โ”‚   โ”‚   โ””โ”€โ”€ marts/
โ”‚   โ”‚       โ”œโ”€โ”€ dim_account.sql       # Dimension: Account
โ”‚   โ”‚       โ”œโ”€โ”€ dim_customer.sql      # Dimension: Customer
โ”‚   โ”‚       โ”œโ”€โ”€ dim_card.sql          # Dimension: Card
โ”‚   โ”‚       โ”œโ”€โ”€ dim_date.sql          # Dimension: Date
โ”‚   โ”‚       โ”œโ”€โ”€ dim_disposition.sql   # Dimension: Disposition
โ”‚   โ”‚       โ””โ”€โ”€ fct_transactions.sql  # Fact: Transactions (Incremental)
โ”‚   โ”œโ”€โ”€ macros/
โ”‚   โ”‚   โ””โ”€โ”€ categorize_amount.sql # Macro: Transaction amount categorization
โ”‚   โ””โ”€โ”€ snapshots/
โ”‚       โ””โ”€โ”€ snp_customer.sql      # SCD Type 2: Customer snapshot
โ”œโ”€โ”€ dashboards/
โ”‚   โ”œโ”€โ”€ Banking_App.pbix          # Power BI dashboard
โ”‚   โ””โ”€โ”€ Banking_App.qvf           # Qlik Sense dashboard
โ””โ”€โ”€ images/

๐Ÿ”„ Data Flow

1. Ingestion โ€” Airbyte

Raw banking data is ingested from the source system into Snowflake's RAW_DATA schema using Airbyte connectors.

Airbyte Connection Airbyte Sync History

2. Transformation โ€” dbt

The dbt project follows a two-layer transformation approach:

Staging Layer (stg_*)
Cleans and standardizes column names from raw source tables:

  • stg_account โ€” Account frequency and creation date
  • stg_customer โ€” Customer demographics (name, gender, birth date, salary, location)
  • stg_transaction โ€” Transaction type, amount, balance, and date
  • stg_card โ€” Card information
  • stg_dispositions โ€” Account-customer relationship

Marts Layer (dim_* / fct_*)
Business-ready dimensional models following a star schema:

ModelTypeDescription
dim_customerDimensionCustomer details
dim_accountDimensionAccount details
dim_cardDimensionCard details
dim_dateDimensionDate dimension
dim_dispositionDimensionAccount-customer mapping
fct_transactionsFactIncremental transaction fact table

3. Key dbt Features Used

Incremental Model
fct_transactions is materialized as an incremental model. On each run, only new transactions (based on transaction_date) are loaded, improving performance on large datasets.

{{ config(materialized='incremental', unique_key='transaction_id') }}

Custom Macro
categorize_amount macro categorizes transaction amounts into business-friendly buckets:

CategoryRange
Low Value< 1,000
Medium Value1,000 โ€“ 10,000
High Value> 10,000

Snapshot (SCD Type 2)
snp_customer tracks historical changes in customer city, salary, and job_title using dbt's built-in snapshot strategy.


๐Ÿ“Š Dashboards

Power BI

Power BI Dashboard

Qlik Sense

Qlik Dashboard 1 Qlik Dashboard 2 Qlik Dashboard 3


๐Ÿ› ๏ธ Setup & Usage

Prerequisites

  • Snowflake account
  • Airbyte (Cloud or self-hosted)
  • dbt Core or dbt Cloud
  • Power BI Desktop / Qlik Sense

Running dbt Models

# Install dependencies
pip install dbt-snowflake

# Configure your Snowflake profile in ~/.dbt/profiles.yml

# Run all models
dbt run

# Run staging models only
dbt run --select stg_*

# Run mart models only
dbt run --select marts.*

# Run snapshots
dbt snapshot

# Run tests
dbt test

๐Ÿ—„๏ธ Snowflake Configuration

ParameterValue
DatabaseAMERICANRETAILBANK
Raw SchemaRAW_DATA
Target Schemadbt_aalkan

๐Ÿงฐ Tech Stack

Airbyte Snowflake dbt Qlik Sense Power BI