Shuzi · BI en libre-service

Démêlez vosdonnées.

Plusieurs sources, plusieurs définitions, plusieurs rapports : peignés en un seul. Des données versionnées, des indicateurs définis, des réponses sourcées, des droits aux limites claires.

Ce sont les sources qui sont en désordre.Pas les définitions.

  • 1 jeude définitions d'indicateurs, partagé par les rapports, l'IA et les API
  • 10bases de données connectables, plus le téléversement de fichiers et la collecte par API
  • 1 pointapplique les droits par ligne, et personne ne le contourne

Visite du produit

Écrivez dans un notebook.
Demandez dans le chat.
Partagez en application.

Trois portes d'entrée, une seule couche sémantique en dessous. Mêmes définitions, mêmes permissions, mêmes chiffres, quelle que soit la porte.

notebook · retail_q3Données d'exemple

SQL

-- CA du T3 par catégorie, commandes confirmées uniquement
SELECT category,
       SUM(amount) AS revenue
FROM orders
WHERE status = 'confirmed'
  AND quarter = 'Q3'
GROUP BY category
ORDER BY revenue DESC

5 lignes · terminé

Résultat

CatégorieCAvs T-1
Vêtements454k+3.9%
Maison448k+8.2%
Électronique304k-1%
Beauté270k+1.9%
Épicerie213k+6%

Graphique

CA par catégorie

  • 454Vêtements
  • 448Maison
  • 304Électronique
  • 270Beauté
  • 213Épicerie

S'exécute dans un bac à sable SQL restreint, sur les tables que vous avez le droit de lire.

agent · retail_modelDonnées d'exemple

Posez la question avec vos mots. L'Agent lit la couche sémantique, montre ses étapes, puis dessine la réponse.

Compare le CA par région et par trimestre, empilé par catégorie.

  1. cube_list_models1 modèle
  2. cube_get_metadataretail_model
  3. cube_queryrevenue × region × quarter

Uniquement les données auxquelles vous avez droit

Le CA progresse chaque trimestre dans les trois régions. Région la plus importante : Est. Catégorie en tête partout : Vêtements. Seule catégorie en recul : Électronique.

CA par région, trimestre et catégorie
0200400600800Q1Q2Q3EstQ1Q2Q3SudQ1Q2Q3Nord
  • Vêtements
  • Maison
  • Beauté
  • Électronique
  • Épicerie
app · retail_overviewPublié
Données d'exemple
CA
1689k
+4,0 % vs trimestre précédent
Catégorie n° 1
Vêtements
Plus forte croissance
Maison

CA par catégorie

  • Vêtements454k
  • Maison448k
  • Beauté270k
  • Électronique304k
  • Épicerie213k

Canaux · Vêtements

  • En ligne58%
  • Magasins30%
  • Gros12%

Les permissions au niveau des lignes s'appliquent à chaque lecteur.

Interface illustrative avec les données d'exemple d'un distributeur fictif. Aucune donnée réelle n'est connectée et aucune IA réelle n'est appelée.

Entendu dans les couloirs

  • Pourquoi ce chiffre ne correspond pas à celui de la finance ?
  • Peut-on relancer le rapport du mois dernier avec les données de l'époque ?
  • Qui lui a donné accès à cette table ?
  • Je veux juste un chiffre, et me voilà de nouveau en file d'attente chez les data.
  • Puis-je vraiment me fier au chiffre donné par l'IA ?
  • Le rapport en est à sa sixième version. Laquelle est la bonne ?

01 · Définitions

Un mot,
trois chiffres.

La finance compte le chiffre d'affaires reconnu, les ventes les commandes signées, les opérations les encaissements. Chacun a son rapport et son SQL, et la réunion hebdomadaire se transforme en rapprochement.

FinanceRevenu

1 203 400,00

SUM(recognized_amt)CA reconnu
VentesRevenu

1 318 950,25

SUM(order_amt)Commandes signées
OpérationsRevenu

1 176 280,40

SUM(cash_received)Encaissements
revenue = SUM(amount) WHERE status = 'confirmed'Plus grand écart entre les trois 142 669,85

Données d'exemple. Une fois la définition partagée, rapports, assistant IA et API lisent la même.

02 · Cinq gestes

De la source à la réponse,
cinq gestes.

Chaque étape a une version, une définition et une trace. Cela tient à la structure, pas à la convention.

01 / 05 · Ingérer

Peut-on relancer le rapport du mois dernier avec les données de l'époque ?

Quelle que soit la source,
elle atterrit de la même façon.

Bases de données, API et fichiers téléversés sont collectés, transformés et fusionnés par des workflows, puis déposés en instantanés immuables et versionnés. Chaque actualisation crée une nouvelle version, et une mauvaise peut être annulée.

  • Collecte par workflowsOrchestrez visuellement collectes et transformations. Les données de sources différentes sont d'abord synchronisées en instantanés gérés, puis analysées ensemble.
  • Versions immuablesUn instantané publié n'est jamais modifié. Il se retrace, s'annule, et une version référencée n'est jamais supprimée par erreur.
  • Lecture et écriture séparéesSeul l'ordonnanceur écrit ; les requêtes lisent une réplique en lecture seule. L'API ne modifie jamais les données dans votre dos.
En savoir plus
workflow · revenue_dailyDonnées d'exemple

Sources

  • PostgreSQL
  • SQL Server
  • REST API
  • CSV · XLSX

Workflow

  1. 01Extraire
  2. 02Transformer
  3. 03Fusionner par clé

Instantanés

  • v13parquet immuable
  • v12parquet
  • v11parquet

snapshot v13 · parquet · immutable

02 / 05 · Modéliser

Pourquoi ce chiffre ne correspond pas à celui de la finance ?

Définir une seule fois.

Sur un canevas, assemblez tables, jointures, dimensions et mesures en un modèle sémantique, validez-le puis publiez-le. Rapports, assistant IA et API ouvertes lisent la même définition : plus personne ne calcule dans son coin.

  • Modélisation visuelleTables, jointures, dimensions et mesures se construisent sur un canevas, avec la définition native à portée de main.
  • Du brouillon à la publicationOn valide d'abord, puis on publie l'ensemble comme une nouvelle révision. Les définitions passées ne sont jamais réécrites.
  • Calculs cohérentsLes rapports, l’assistant IA et les API publiques utilisent les mêmes modèles sémantiques pour des résultats vérifiables.
En savoir plus
semantic_model · valuationDonnées d'exemple
valuationsrevenue · count
funds
regions
calendar
products
measures:
  - name: revenue
    type: sum
    sql: amount
    filters:
      - sql: "{CUBE}.status = 'confirmed'"       

ref(revenue)

  • Rapports
  • Assistant IA
  • API
  • Port PG
  • MCP

revenue = SUM(amount) WHERE status = 'confirmed'

03 / 05 · Explorer

Je veux juste un chiffre, et me voilà de nouveau en file d'attente chez les data.

Les métiers cliquent.
Les analystes n'attendent plus.

Sur un modèle publié, choisissez des dimensions, glissez des mesures, changez de graphique et ajoutez des filtres. La raison d'un chiffre n'est qu'à un clic.

  • Explorer par glisser-déposerChangez librement de dimensions, de mesures et de type de graphique ; le résultat se met à jour instantanément.
  • Détail et filtresPassez du total au détail, avec les filtres enregistrés en même temps que le graphique.
  • Du SQL pour les analystesLes analystes peuvent écrire du SQL pour préparer les données, mais le résultat doit atterrir dans une table gérée avant d'être utilisable par les rapports.
En savoir plus
explore · revenue_modelDonnées d'exemple

Dimensions

Mesures

Revenu

view → members → query → chart

04 / 05 · Interroger

Puis-je vraiment me fier au chiffre donné par l'IA ?

Interrogez vos données.
Les réponses ont une origine.

Posez vos questions en langage naturel. L'assistant n'accède aux données que par la couche sémantique : lister les modèles, lire les métadonnées, exécuter une requête. Chaque étape est visible et s'exécute avec les droits de la personne qui interroge.

  • Étapes visiblesQuel outil a été utilisé, quels membres ont été interrogés : tout est à la vue de tous et peut être vérifié.
  • Une seule limite de droitsLes modèles et lignes que vous ne voyez pas sont aussi invisibles pour l'assistant.
  • Votre service de modèleLes administrateurs configurent un fournisseur compatible OpenAI, un modèle et une clé, stockée chiffrée.
En savoir plus
ask · revenue_modelDonnées d'exemple

Quelle région rapporte le plus ?

  1. cube_list_models1 modèle
  2. cube_get_metadatarevenue_model
  3. cube_queryrevenue × region

Uniquement les données auxquelles vous avez droit

Réponse d'exemple : la région Nord rapporte le plus. Choisissez une région et un trimestre pour voir le résultat d'exemple correspondant.

Nord
1 003 000,00
Sud
666 000,00

cube_list_models → cube_get_metadata → cube_query

05 / 05 · Publier

Le rapport en est à sa sixième version. Laquelle est la bonne ?

Chaque changement laisse une trace.
Chaque version peut revenir.

Les graphiques forment des tableaux de bord, les brouillons s'enregistrent automatiquement et la publication fige une version immuable. En cas de problème, restaurez n'importe quelle version antérieure. Pour passer d'un environnement à l'autre, exportez en YAML.

  • Brouillons enregistrés automatiquementLes modifications sont enregistrées sur le serveur au fil de l'eau : vous pouvez continuer depuis une autre machine.
  • Publier et restaurerPublier fige une version dans l'historique. Restaurer archive d'abord le brouillon actuel, puis revient à la version choisie.
  • Les rapports comme du codeGraphiques et tableaux de bord s'exportent en YAML. Un lot est validé et importé en entier : au moindre échec, tout est annulé.
En savoir plus
valuation.dashboard.ymlDonnées d'exemple
valuationPublié · v7Enregistré auto
Revenu total1 669 000,00

Versions

  • v7actuelle
  • v6·
  • v5·

↺ Restaurer v6

⇣ Exporter en YAML

dashboard.yml · version 1 · dry-run → apply

03 · Architecture

Cinq couches.
Une seule source de vérité.

Des sources brutes à la réponse à l'écran, chaque couche a un rôle et une frontière. Choisissez une couche pour voir ce qu'elle contient.

  • Tout ce que les gens utilisent lit la couche du dessous, jamais à côté. Notebooks, Agent, tableaux de bord, applications de données, API JSON, MCP et port PG passent par la même porte.

    • Notebook et SQL
    • Chat Agent
    • Tableaux de bord et apps
    • API · MCP · port PG
  • Les permissions au niveau des lignes sont appliquées à un seul endroit. Si aucune décision ne peut être prise, la requête est refusée au lieu d'être laissée passer.

    • Un seul point d'application
    • Refus en cas de doute
    • Mêmes lignes partout
  • Le CA est défini une seule fois, avec son filtre, et chaque graphique, réponse et appel d'API le réutilise. Un modèle publié fige les instantanés qu'il lit : une requête ne mélange jamais anciennes et nouvelles données en cours de route.

    • Dimensions
    • Mesures
    • Jointures
    • Instantanés figés
  • Chaque actualisation écrit une nouvelle version immuable, et rien n'est modifié sur place. Seul l'ordonnanceur écrit ; tout le reste lit.

    • Immuable
    • Parquet
    • Clés primaires obligatoires
  • Connectez dix types de bases de données, importez des fichiers ou récupérez des données par API. Les workflows extraient, transforment et fusionnent selon un calendrier.

    • 10 bases de données
    • CSV · Excel
    • Appels d'API
    • Workflows planifiés

Schéma. Les noms de couches sont simplifiés par rapport à l'architecture du produit.

04 · Créé par l'IA

Décrivez-le.
Obtenez une application.

Dites à l'Agent ce que vous voulez voir. Il lit la couche sémantique, écrit une application de données dans un seul fichier et l'affiche aussitôt. Vérifiez-la, puis enregistrez-la comme application de données.

Crée un tableau de bord des ventes par région et par catégorie.

app · sales_overviewCréé par l'Agent

Vue d'ensemble des ventes

1689kCA · Q3 · Données d'exemple

045090013501800Q1Q2Q3Toutes les régions
  • Vêtements
  • Maison
  • Beauté
  • Électronique
  • Épicerie
Bac à sable · vos permissions

Laisse-moi tester un changement de prix et voir l'effet sur le CA et la marge.

app · price_whatifCréé par l'Agent

Simulation de prix

CA
474k
+22k
Marge brute
62.8%
+1,8

Prévision de CA

Aujourd'hui
Bac à sable · vos permissions

Montre la rétention des clients par cohorte d'inscription.

app · retentionCréé par l'Agent

Rétention

Rétention par cohorte et par mois

Bac à sable · vos permissions

Place chaque compte selon son CA et sa croissance, et signale les valeurs atypiques.

app · account_mapCréé par l'Agent

Carte des comptes

CA →↑ CroissanceValeur atypique
Bac à sable · vos permissions

Applications illustratives avec les données d'exemple d'un distributeur fictif. Les applications générées s'exécutent dans un bac à sable sans accès réseau et lisent les données via l'hôte, avec vos permissions.

05 · Gouvernance

Même table, personnes différentes,
lignes différentes.

Authentification, autorisations par espace, droits par ligne et audit se resserrent par couches. Les droits par ligne sont appliqués une seule fois, dans la couche sémantique, et traitent de la même façon rapports, assistant IA, API et port PG. Si aucune décision n'est obtenue, la requête est refusée, pas autorisée.

Essayez : changez d'identité

Connecté en tant que
Société du portefeuilleRégionValorisation
Xinghe UnEst1 284 500,00
Yunshan ActifsEst963 200,50
Lanwan ÉnergieSud752 100,00
Beichen ParcNord1 438 700,25
Haitang FondsSud612 000,00
Songxi SolaireEst884 000,00
Yuanxiu LogistiqueNord523 300,00
Langrun TechSud709 800,00
Qinghe AgriNord381 600,75

Lignes visibles 9 / 9

Filtre — (no filter)

Total 7 549 201,50

Quatre points d'entrée, un seul résultat

  • Rapports7 549 201,50
  • Assistant IA7 549 201,50
  • API7 549 201,50
  • Port PG7 549 201,50
  1. 01

    Identité

    Comptes et connexion OIDC. Avant de toucher aux données, on vérifie qui vous êtes.

  2. 02

    Autorisation par espace et ressource

    Les actifs appartiennent à des espaces personnels ou d'équipe, et les dossiers et ressources sont accordés aux membres.

  3. 03

    Droits par ligne

    Une table de droits décide des lignes que chacun voit, appliquée une seule fois dans la couche sémantique.

  4. 04

    Audit

    Les actions clés laissent une trace : qui a fait quoi, et quand, peut être retrouvé.

  • SQL dans un bac à sable

    La console SQL s'exécute dans un bac à sable DuckDB restreint, avec l'accès aux fichiers externes désactivé.

  • Politique de sortie

    Les requêtes sortantes des workflows et des connexions suivent toutes une politique globale d'accès sortant.

  • L'IA a vos droits

    L'assistant interroge au nom de la personne qui pose la question et n'hérite d'aucun droit plus large.

06 · Ouverture

Facile d'y entrer.
Facile d'en sortir.

Une API JSON native, MCP, un port au protocole PG, et des graphiques et tableaux de bord en YAML. Vos données et vos définitions ne sont pas enfermées dans une interface.

Sources

  • PostgreSQL
  • MySQL
  • Oracle
  • SQL Server
  • ClickHouse
  • Doris · StarRocks
  • Fichiers · API

Cube Core

  1. ModélisationDimensions, mesures, jointures et vues, définies une fois
  2. Contrôle d'accèsUn seul point d'application des droits ; vues uniquement
  3. Instantanés fixésChaque requête lit une version immuable des données
  4. API ouvertesAPI JSON · MCP · port PG

couche sémantique

Usages

  • Tableaux de bord et appsDans l'espace de travail
  • Agents IAMCP
  • Systèmes externesAPI JSON
  • Outils BI et ExcelPort PG · Power Query
Illustration. Le port PG est ouvert par un administrateur au déploiement, en réseau interne uniquement ; Excel passe par Power Query appelant l'API JSON ou par un import CSV, car Cube Core n'a pas de connecteur Excel direct.
POST /api/v1/query
Authorization: Bearer <token>

{
  "model_id": "valuation",
  "view": "asset_view",
  "query": {
    "measures": ["asset_view.revenue"],
    "dimensions": ["asset_view.region"],
    "order": [["asset_view.revenue", "desc"]],
    "limit": 100
  }
}

// → { "data": [ … ], "release_id": "…", "snapshot_set_id": "…" }

Requêtes JSON natives ; chaque résultat porte les identifiants de la publication et de l'instantané.

Bases de données prises en charge

  • PostgreSQL
  • MySQL
  • Oracle
  • SQL Server
  • ClickHouse
  • TiDB
  • Doris
  • StarRocks
  • KingbaseES
  • DuckDB

Ainsi que le téléversement CSV / XLSX et la collecte par API.

Les connexions aux bases prennent en charge le rebond SSH et le TLS mutuel

07 · Qui l'utilise

Une plateforme,
trois rôles, chacun y trouve son compte.

Équipes métier

  • AvantAttendre que les data sortent les chiffres

    MaintenantExplorer soi-même un modèle publié

  • AvantImpossible de dire d'où vient un chiffre

    MaintenantDes réponses IA accompagnées des étapes et des définitions

  • AvantPlusieurs rapports, plusieurs chiffres

    MaintenantUne définition d'indicateur partagée

En savoir plus

Équipes data

  • AvantUn SQL par rapport

    MaintenantPréparer une fois, modéliser une fois, publier une fois

  • AvantActualisations manuelles, erreurs difficiles à tracer

    MaintenantActualisations par workflow, une nouvelle version à chaque fois

  • AvantPeur qu'un changement de définition casse tout

    MaintenantValider un brouillon, publier une nouvelle révision d'un bloc

En savoir plus

DSI et direction

  • AvantDes droits par convention et par messagerie

    MaintenantAutorisations par espace et droits par ligne, appliqués au même endroit

  • AvantExports et captures d'écran partout

    MaintenantLes requêtes passent par une API autorisée, et les actions sont auditées

  • AvantCrainte que l'IA dépasse ses droits

    MaintenantL'IA a les droits de la personne qui interroge, et ses étapes sont visibles

En savoir plus

Bonnes questions

Qu'est-ce que Shuzi ?

Shuzi relie ingestion, préparation, modélisation sémantique, analyse et publication en une seule chaîne, pour que les équipes travaillent avec des définitions d'indicateurs partagées.

Faut-il savoir écrire du SQL ?

Les utilisateurs métier peuvent se servir des rapports publiés, de l'explorateur ou de l'assistant IA. Les analystes peuvent utiliser SQL pendant la préparation des données.

L'IA peut-elle voir des données auxquelles je n'ai pas accès ?

Non. L'assistant interroge au nom de la personne qui pose la question, avec les mêmes autorisations et les mêmes droits par ligne.

Peut-on interroger depuis d'autres outils ?

Oui. Les modèles publiés sont accessibles par l'API JSON, MCP ou le port PG. L'accès réel exige authentification et autorisation.

Les données de ce site sont-elles réelles ?

Non. Ce site n'utilise que des données d'exemple locales et des réponses prédéfinies. Les données réelles s'utilisent après connexion, avec vos propres droits.

Faites passer vos donnéesdu désordre à la clarté.

Essayez d'abord avec des données d'exemple, puis apportez les vôtres.