Catalogue des notebooks¶
AKKO est livré avec 14 notebooks de démonstration organisés en 6 catégories. Ensemble, ils démontrent chaque couche de la plateforme : ingestion de données, transformation, analytique, visualisation, IA et reporting.
Pour commencer
Exécutez 01 - Banking Demo en premier. Il crée les tables Iceberg (customers, accounts, transactions, advisors) et la table PostGIS branches dont dépendent la plupart des autres notebooks.
Données de base / Core¶
Ces notebooks créent les données fondamentales et démontrent l'architecture lakehouse de base.
| # | Notebook | Composants | Noyau | Prérequis |
|---|---|---|---|---|
| 01 | akko-banking-demo | Spark Connect, Polaris, MinIO, Trino, PostgreSQL | Python | AKKO démarré |
| 03 | spark-iceberg-demo | Spark Connect, Iceberg, MinIO | Python | AKKO démarré |
01 - Banking Demo : Crée 4 tables Iceberg (advisors, customers, accounts, transactions) via Spark Connect avec des données synthétiques réalistes pour une banque de détail avec 5 agences et 200 clients. Démontre le voyage dans le temps Iceberg, la fédération Trino (Iceberg + PostgreSQL), et fournit des requêtes SQL prêtes à l'emploi pour les tableaux de bord Superset.
03 - Spark Iceberg Demo : Un tutoriel pratique de l'architecture lakehouse Spark + Iceberg + MinIO. Couvre les opérations CRUD sur les tables (CREATE, INSERT, UPDATE, DELETE, MERGE INTO), l'évolution de schéma (ALTER TABLE ADD COLUMN), le voyage dans le temps via les snapshots, l'inspection des tables de métadonnées, et l'interopérabilité Pandas/Plotly.
Ingénierie¶
Notebooks axés sur la transformation des données, la validation de qualité et l'administration du catalogue.
| # | Notebook | Composants | Noyau | Prérequis |
|---|---|---|---|---|
| 05 | dbt-transforms | dbt-trino, Trino, Iceberg | Python | 01 Banking Demo |
| 06 | data-quality | Great Expectations, Trino, Plotly | Python | 01 Banking Demo |
| 10 | polaris-catalog-admin | API REST Polaris, OAuth2 | Python | AKKO démarré |
05 - dbt Transforms : Construit un projet dbt complet de manière programmatique, en définissant des modèles de staging (stg_customers, stg_transactions) et des modèles de marts (dim_customer_360, fct_monthly_revenue). Exécute le cycle de vie complet de dbt : dbt seed, dbt run, dbt test et dbt docs generate.
06 - Data Quality : Valide le jeu de données bancaires avec Great Expectations. Définit et exécute des attentes sur les tables customers, accounts et transactions (non-null, unicité, valeurs acceptées, plages). Inclut une démonstration d'échec intentionnel avec des données erronées injectées.
10 - Polaris Catalog Admin : Explore l'API REST de Polaris directement depuis Python. Couvre l'authentification OAuth2 (flux client_credentials), le listage des catalogues et namespaces, l'inspection des métadonnées de tables (schéma, partitions, emplacements de stockage), l'exploration du RBAC (principals, rôles de principal, rôles de catalogue), et les endpoints de santé et métriques.
Analytique¶
Analyses en processus utilisant des moteurs et langages alternatifs au-delà de Spark et Trino.
| # | Notebook | Composants | Noyau | Prérequis |
|---|---|---|---|---|
| 04 | duckdb-analytics | DuckDB, Trino, Arrow, Polars, PostgreSQL | Python | 01 Banking Demo |
| 07 | r-analytics | tidyverse, ggplot2, sf, PostGIS, RPostgres | R | AKKO démarré |
| 08 | julia-dataframes | DataFrames.jl, CSV.jl, Statistics | Julia | Aucun (autonome) |
| 11 | polars-analytics | Polars, Trino, DuckDB, Arrow | Python | 01 Banking Demo |
04 - DuckDB Analytics : Démontre DuckDB comme moteur d'analytique léger en processus d'AKKO. Charge les données Iceberg via Trino dans des tables Arrow, puis interroge avec DuckDB SQL. Couvre les jointures inter-sources, l'interopérabilité DuckDB/Polars Arrow sans copie, et les benchmarks de performance contre Pandas.
07 - R Analytics : Prouve que R est un citoyen de premier plan dans AKKO. Se connecte à PostgreSQL via DBI + RPostgres, manipule les données avec tidyverse/dplyr, crée des graphiques ggplot2, et effectue des analyses géospatiales PostGIS avec le package sf.
08 - Julia DataFrames : Une introduction autonome à l'écosystème DataFrames.jl de Julia. Couvre le split-apply-combine avec groupby + combine, les jointures, les compréhensions, le broadcasting et le scoring de risque. Aucune dépendance vers un service externe.
11 - Polars Analytics : Met en avant le moteur DataFrame Polars propulsé par Rust. Démontre l'optimisation du plan de requêtes LazyFrame, les fonctions de fenêtrage avec over(), les benchmarks de performance contre Pandas, et l'interopérabilité Arrow sans copie avec DuckDB.
Visualisation¶
Notebooks spécialisés pour l'analyse géospatiale et les graphiques déclaratifs.
| # | Notebook | Composants | Noyau | Prérequis |
|---|---|---|---|---|
| 09 | geospatial-analysis | PostGIS, GeoPandas, Folium, scikit-learn, Trino | Python | 01 Banking Demo |
| 12 | altair-visualization | Altair, Vega-Lite, Trino | Python | 01 Banking Demo |
09 - Geospatial Analysis : Analytique spatiale combinant les requêtes PostGIS (ST_Distance, ST_Buffer, ST_DWithin), GeoPandas, les cartes interactives Folium avec superposition de revenus, la fédération Trino, le clustering géographique KMeans, et l'export GeoJSON.
12 - Altair Visualization : Explore l'approche de graphiques déclaratifs d'Altair basée sur Vega-Lite. Couvre les diagrammes en barres, les tendances linéaires, les nuages de points, les sélections interactives liées, les small multiples facettés, et les tableaux de bord multi-graphiques composés.
IA¶
Inférence LLM locale et génération augmentée par récupération avec souveraineté totale des données.
| # | Notebook | Composants | Noyau | Prérequis |
|---|---|---|---|---|
| 02 | rag-pipeline-demo | Ollama, pgvector, LangChain, PostgreSQL | Python | AKKO démarré |
| 13 | jupyter-ai-demo | jupyter-ai, Ollama, LangChain, Trino | Python | AKKO démarré + 01 Banking Demo |
02 - RAG Pipeline Demo : Implémente un pipeline complet de génération augmentée par récupération (RAG) utilisant une infrastructure 100 % souveraine. Génère des embeddings avec Ollama nomic-embed-text, les stocke dans PostgreSQL pgvector avec un index HNSW, et répond aux questions en utilisant LangChain.
13 - Jupyter AI Demo : Démontre l'analyse de données assistée par IA avec jupyter-ai et Ollama. Couvre la génération de code à partir de langage naturel, l'analyse pilotée par les données, la génération SQL à partir de descriptions de schéma. Toute l'inférence s'exécute localement.
Reporting¶
Rapports Quarto et requêtes SQL prêtes à l'emploi pour Superset SQL Lab.
| # | Notebook | Composants | Noyau | Prérequis |
|---|---|---|---|---|
| -- | 04-akko-banking-report.qmd | Quarto, Trino, Plotly | Python | 01 Banking Demo |
| -- | akko-banking-queries.sql | Trino SQL | SQL | 01 Banking Demo |
04-akko-banking-report.qmd : Un document Quarto qui se rend en rapport HTML autonome. Interroge le jeu de données bancaires via Trino et produit un résumé exécutif avec KPIs, graphiques et analyse par segment. Le résultat rendu est servi à l'adresse https://docs.akko.local/reports/akko-banking-report.html.
akko-banking-queries.sql : Requêtes SQL prêtes à l'emploi pour Superset SQL Lab. Inclut le filtrage des clients premium, l'agrégation des soldes par type de compte, les volumes de transactions mensuels, et les requêtes fédérées de revenus par agence.
Graphe de dépendances¶
01 Banking Demo (seed)
|
+--- 04 DuckDB Analytics
+--- 05 dbt Transforms
+--- 06 Data Quality
+--- 09 Geospatial Analysis
+--- 11 Polars Analytics
+--- 12 Altair Visualization
+--- 13 Jupyter AI Demo
+--- 04-akko-banking-report.qmd
+--- akko-banking-queries.sql
03 Spark Iceberg Demo .......... autonome
07 R Analytics ................. autonome (utilise PostGIS uniquement)
08 Julia DataFrames ............ autonome (entièrement indépendant)
10 Polaris Catalog Admin ....... autonome (utilise l'API Polaris uniquement)
02 RAG Pipeline Demo ........... autonome (utilise Ollama + pgvector)
Noyaux disponibles
Tous les notebooks s'exécutent dans des conteneurs akko-notebook lancés par JupyterHub. Trois noyaux sont disponibles : Python (par défaut), R (IRkernel) et Julia (IJulia). code-server (VS Code dans le navigateur) est également disponible pour l'édition de fichiers et l'accès au terminal.