Skip to main content

GCP Pipeline Reference: Generic CDP Transformation — dbt models for FDP to CDP (JOIN pattern across all 3 FDP tables)

Project description

fdp-to-consumable-product

Deployment type: BigQuery (dbt) Layer: CDP — Consumable Data Product Pattern: JOIN across 3 FDP tables → 1 CDP table

Overview

This deployment builds the CDP (Consumable Data Product) layer by joining all three FDP tables from fdp_generic into a single denormalised view per customer:

fdp_generic.event_transaction_excess    ─┐
fdp_generic.portfolio_account_excess    ─┼──► cdp_generic.customer_risk_profile
fdp_generic.portfolio_account_facility  ─┘

The customer_risk_profile CDP table is the primary source for the mainframe-segment-transform pipeline, which reads each row and writes an outbound fixed-width segment file back to GCS for downstream mainframe consumption.

Data Flow

ODP (odp_generic) ──► FDP (fdp_generic) ──► CDP (cdp_generic) ──► GCS segment files
       ↑                    ↑                      ↑                      ↑
  Dataflow/Beam          dbt JOIN/MAP           dbt JOIN          Dataflow/Beam
  (ingestion)          (bigquery-to-         (this deployment)   (mainframe-segment-
                       mapped-product)                            transform)

CDP Table: cdp_generic.customer_risk_profile

One row per customer per extract date. Combines:

Source FDP Table Fields
event_transaction_excess customer identity, account exposure, current balance
portfolio_account_excess risk decision, score, decision outcome
portfolio_account_facility loan amount, interest rate, term, facility status

Derived field cdp_segment:

  • ACTIVE_APPROVED — decision approved + positive balance
  • DECLINED — decision declined
  • REFERRED — decision referred for manual review
  • PENDING — no decision yet

Structure

deployments/fdp-to-consumable-product/
├── pyproject.toml
├── Dockerfile                   # generic-cdp-transformation image
├── cloudbuild.yaml
├── dbt/
│   ├── dbt_project.yml
│   ├── packages.yml
│   └── models/
│       ├── staging/fdp/         # Thin wrappers over fdp_generic source tables
│       │   ├── _fdp_sources.yml
│       │   ├── stg_fdp_event_transaction_excess.sql
│       │   ├── stg_fdp_portfolio_account_excess.sql
│       │   └── stg_fdp_portfolio_account_facility.sql
│       └── cdp/                 # CDP output table
│           ├── _cdp_models.yml
│           └── customer_risk_profile.sql
└── tests/

Running Locally

# Setup venv
./scripts/setup_deployment_venv.sh fdp-to-consumable-product

# Activate and install dbt deps
source deployments/fdp-to-consumable-product/venv/bin/activate
cd deployments/fdp-to-consumable-product/dbt
dbt deps

# Run CDP models
export GCP_PROJECT_ID=joseph-antony-aruja
dbt run --target dev

# Run tests
dbt test

Docker Build

cd /path/to/gcp-pipeline-reference
gcloud builds submit \
  --config deployments/fdp-to-consumable-product/cloudbuild.yaml \
  --substitutions _LIBRARY_VERSION=1.0.7 \
  .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcp_pipeline_ref_cdp-1.0.10.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gcp_pipeline_ref_cdp-1.0.10-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file gcp_pipeline_ref_cdp-1.0.10.tar.gz.

File metadata

  • Download URL: gcp_pipeline_ref_cdp-1.0.10.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gcp_pipeline_ref_cdp-1.0.10.tar.gz
Algorithm Hash digest
SHA256 9faaa5e30f1066054007e0f587f9152f45089a67e4bd3a2f1d03204030e1d544
MD5 11acdc39c1818501df0e8af4e0cd6b79
BLAKE2b-256 e95364b3b049dddfef744f1e5313e592b80b8f208787cc4f8b6cd8224d77a880

See more details on using hashes here.

File details

Details for the file gcp_pipeline_ref_cdp-1.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for gcp_pipeline_ref_cdp-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 937226a5b3cea11b8314d75e55b198a22618f03fcd0d715fde0ee09fc591cbf1
MD5 8f6e3e1fe7d178cd6cc3b150f211bfa9
BLAKE2b-256 9e05d8a47a2a48d1ec89e21a6325be8dd00c3cef444d7d3fe51c5ef2d62944c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page