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 balanceDECLINED— decision declinedREFERRED— decision referred for manual reviewPENDING— 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
│ ├── _generic_cdp_models.yml
│ └── customer_risk_profile.sql
├── dbt/
│ └── macros/
│ └── cdp_quality_checks.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.29 \
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gcp_pipeline_ref_cdp-1.0.29.tar.gz.
File metadata
- Download URL: gcp_pipeline_ref_cdp-1.0.29.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f65ad63fe45efd3e356624420afdc0acf3079f02c0fcf92bc305f68cd86cce87
|
|
| MD5 |
3be1b987589b75045ffa84974abb395e
|
|
| BLAKE2b-256 |
1fc1338a4084e93c0b6e489a993d6e1254b7f785d73903eeea82ae83377c7552
|
File details
Details for the file gcp_pipeline_ref_cdp-1.0.29-py3-none-any.whl.
File metadata
- Download URL: gcp_pipeline_ref_cdp-1.0.29-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3264e7a182df142f55dd17ff1cff06a08ee6588e7df20d7da3613dce7a3af02d
|
|
| MD5 |
ebcc660e27af6d81f6f8ee4d30e96e73
|
|
| BLAKE2b-256 |
3ecbd063507852bdb89980623b1e50577c545ad3778efca56a67347dade4bdff
|