Skip to content

Noria — SQL-first data pipeline framework

Noria est un framework Python léger pour construire des pipelines de données SQL. Il cible les data analysts et data engineers qui veulent écrire du SQL propre, versionnable et multi-bases, sans ORM.

Pourquoi Noria ?

Besoin Solution Noria
SQL portable (DuckDB → PostgreSQL → BigQuery) Macros cross-DB Jinja2
Éviter les écrasements accidentels output_write: safe_replace
Traiter par boucle sur liste ou requête SQL loop: / loop_from_query:
Exécution parallèle loop_parallel: true, DAG parallèle
SCD Type 2 output_write: scd2
Data quality type: assert
Freshness checks freshness_check:
Chargement de fichiers type: seed

Installation

pip install noria
# ou avec PostgreSQL :
pip install "noria[postgres]"
# ou BigQuery :
pip install "noria[bigquery]"

Premier pipeline

# noria.yml
name: mon_pipeline
database:
  dialect: duckdb
  database: data/warehouse.db

params:
  schema: main

nodes:
  clients:
    sql: sql/clients.sql
    target: "{{ params.schema }}.clients"
    output_write: replace

  stats:
    sql: sql/stats.sql
    target: "{{ params.schema }}.monthly_stats"
    output_write: replace
    needs: [clients]
    tags: [reporting, daily]
noria run                          # exécution complète
noria run --only-tags daily        # seulement les tâches tagguées daily
noria run --dry-run                # prévisualiser le SQL sans exécuter
noria dag                          # ouvrir le DAG dans le navigateur
noria docs                         # documentation HTML du pipeline