Skip to content

Alteryx → Noria

Philosophie

Un workflow Alteryx devient un pipeline Noria. Chaque outil Alteryx devient une clause SQL ou une tâche. Les macros Alteryx deviennent des macros Jinja2 dans sql/macros/.

Correspondances

Outils de données

Outil Alteryx Noria
Input Data FROM {{ params.schema }}.table
Output Data target: + output_write:
In-DB Input idem (Noria travaille toujours en base)
Text Input type: seed avec un CSV

Transformation

Outil Alteryx Noria (SQL)
Select Colonnes dans SELECT, alias, cast
Filter WHERE condition
Formula Colonnes calculées : CASE WHEN, {{ cast() }}, etc.
Multi-Row Formula LAG(), LEAD(), SUM() OVER (...)
Running Total SUM(col) OVER (ORDER BY ...)
Multi-Field Formula Colonnes calculées répétées (macro Jinja2 si motif)
Sort ORDER BY
Sample LIMIT N
Unique SELECT DISTINCT ou ROW_NUMBER() OVER (...) = 1

Jointures & combinaisons

Outil Alteryx Noria (SQL)
Join INNER JOIN (L+R), LEFT JOIN (L only), RIGHT JOIN
Find Replace LEFT JOIN avec correspondance
Union UNION ALL
Append Fields CROSS JOIN (produit cartésien)

Agrégation & pivot

Outil Alteryx Noria (SQL)
Summarize GROUP BY + SUM(), COUNT(), AVG(), etc.
Cross Tab PIVOT (DuckDB) ou CASE WHEN col = 'x' THEN val
Transpose UNPIVOT (DuckDB)
Frequency Table SELECT col, COUNT(*) FROM t GROUP BY col

Macros

Macro Alteryx Noria
Standard Macro Macro Jinja2 dans sql/macros/
Batch Macro loop: (liste) ou loop_from_query: (SQL)
Iterative Macro loop_from_query: avec condition d'arrêt
App parameter {{ params.nom }}

Qualité

Outil Alteryx Noria
Data Cleansing Colonnes avec TRIM(), COALESCE(), NULLIF()
Test Tool type: assert
Field Info DESCRIBE (DuckDB)

Exemple complet

Workflow Alteryx (description)

Input : table RAW.VENTES
Filter : ANNEE = 2024
Formula : CA_TTC = CA_HT * 1.20, MOIS = DATEPART(month, DATE_VENTE)
Summarize : SUM(CA_TTC) par REGION et MOIS
Output : table DWH.PERF_REGION en remplacement total

Réécriture Noria

nodes:
  perf_region_2024:
    sql: sql/perf_region.sql
    target: "{{ params.schema }}.perf_region"
    output_write: replace
    description: "Performance CA par région et mois — année {{ params.annee }}"
    tags: [reporting, monthly]
    params:
      annee: 2024
-- sql/perf_region.sql
SELECT
    region,
    EXTRACT(MONTH FROM date_vente)          AS mois,
    COUNT(*)                                AS nb_ventes,
    ROUND(SUM(ca_ht), 2)                   AS ca_ht,
    ROUND(SUM(ca_ht * 1.20), 2)           AS ca_ttc
FROM {{ params.schema_raw }}.ventes
WHERE EXTRACT(YEAR FROM date_vente) = {{ params.annee }}
GROUP BY
    region,
    EXTRACT(MONTH FROM date_vente)
ORDER BY region, mois