Aller au contenu

dbt — Couche sémantique et transformations

Présentation

AKKO utilise dbt Core (Apache 2.0) avec l'adaptateur dbt-trino comme couche sémantique et moteur de transformations SQL.

dbt définit les métriques métier et les transformations dans des fichiers SQL versionnés. Il remplace Cube.dev (qui utilise ELv2, une licence non-OSI) pour garder tous les composants d'AKKO sur des licences OSI (Apache 2.0 / MIT / BSD).

Architecture

PostgreSQL (tables bancaires)
    ↓ JDBC
Trino (moteur de fédération)
    ↓ adaptateur dbt-trino
dbt Core (transformations SQL)
    ↓ écrit dans
Iceberg/object storage (marts analytiques)
    ↓ consommé par
Superset / Notebooks / APIs

Modèles

Staging (nettoyage des sources)

Modèle Source Description
stg_customers postgresql.banking.customers Données clients nettoyées
stg_accounts postgresql.banking.accounts Données comptes nettoyées
stg_transactions postgresql.banking.transactions Données transactions nettoyées

Marts (logique métier)

Modèle Description
mart_customer_360 Vue client 360 avec agrégats comptes + transactions
mart_daily_transactions Volume quotidien des transactions par catégorie
mart_fraud_summary Indicateurs de risque de fraude par client

Configuration

dbt se connecte à Trino via des variables d'environnement (zéro valeur codée en dur) :

Variable Défaut Description
TRINO_HOST akko-trino Nom d'hôte du coordinateur Trino
TRINO_PORT 8080 Port Trino
TRINO_USER dbt-akko Utilisateur Trino pour dbt

Utilisation

# Exécuter tous les modèles
kubectl run dbt-run --rm -i --restart=Never -n akko \
  --image=akko-dbt:2026.03 \
  -- dbt run --profiles-dir /dbt --project-dir /dbt/project

# Exécuter les tests
kubectl run dbt-test --rm -i --restart=Never -n akko \
  --image=akko-dbt:2026.03 \
  -- dbt test --profiles-dir /dbt --project-dir /dbt/project

Ajouter des modèles

  1. Créer un fichier SQL dans docker/dbt/project/models/
  2. Ajouter les tests de schéma dans schema.yml
  3. Reconstruire l'image : docker build -t akko-dbt:2026.03 docker/dbt/
  4. Exécuter : dbt run

Licence

dbt Core : Apache 2.0. dbt-trino : Apache 2.0.