Comprendre le schéma de la base de données de reporting
Fonctionnalité bêta. La base de données de reporting est actuellement en bêta et peut encore évoluer. Elle est disponible uniquement sur inscription. Pour rejoindre la bêta ou poser des questions, contactez support@azumuta.com.
Où sont stockées vos données
Toutes les données de votre espace de travail se trouvent dans un seul schéma nommé company_<your-workspace-id>. Chaque table à l'intérieur correspond à un concept que vous connaissez déjà dans Azumuta.
Les tables principales
L'ensemble exact des tables dépend de ce que vous avez activé. Les plus courantes sont :
| Table | Ce qu'elle contient |
|---|---|
workinstruction, workinstruction_version |
Vos instructions de travail et leurs versions publiées. |
instruction_step |
Les étapes individuelles au sein d'une version d'instruction. |
instruction_visit, instruction_total_visit |
Chaque fois qu'un opérateur parcourt une étape, plus les totaux par étape. |
recording, recording_status |
Sessions d'exécution (un opérateur exécutant une instruction) et l'historique de leur statut. |
issue |
Tickets d'amélioration continue, avec des comptes pré-calculés pratiques. |
issue_task, issue_comment, issue_attachment, issue_signature, issue_checklist |
Les éléments attachés à un ticket. |
issue_transition |
L'historique des déplacements d'un ticket entre les colonnes du tableau. |
product_order, product_order_item, product_order_item_spot |
Ordres de production et leurs articles. |
users, user_group, user_group_member |
Personnes et groupes de votre espace de travail. |
Conventions utilisées
Une fois que vous connaissez ces quelques règles, tout le schéma devient prévisible :
- Clés primaires. Chaque table possède une clé primaire de type texte (par exemple
recording_id,issue_id) qui correspond à l'id de l'enregistrement dans Azumuta. Vous pouvez l'utiliser pour joindre les tables entre elles. - Suppressions logiques. Les lignes ne sont jamais supprimées silencieusement. Lorsqu'un élément est supprimé dans Azumuta, sa ligne reçoit un horodatage
deleted_at. Pour ne travailler qu'avec les données actuelles, ajoutezwhere deleted_at is nullà vos requêtes. - Horodatages. Chaque table comporte
created_atetmodified_at(etdeleted_at). Tous les horodatages sont stockés en UTC. - Les durées sont en millisecondes. Des champs tels que
actual_durationourework_timesont stockés en millisecondes entières. Divisez par 1000 pour obtenir des secondes. - Champs flexibles en JSON. Les données de forme variable (comme
parametersou uneanswerd'instruction) sont stockées enjsonb, que vous pouvez interroger avec les opérateurs JSON de PostgreSQL. - Valeurs pré-calculées. Pour vous éviter des jointures supplémentaires, certaines tables incluent des totaux et métriques prêts à l'emploi — par exemple
issue.comment_count,issue.open_task_countourecording.rework_time.
Le dictionnaire de données intégré
Chaque table et chaque colonne possède une description lisible par l'humain qui lui est attachée. La plupart des clients SQL et outils BI l'affichent automatiquement. Par exemple, dans psql:
\d+ "company_<your-workspace-id>".issue
Vous pouvez aussi les lire avec une requête :
select column_name, col_description(
('company_<your-workspace-id>.issue')::regclass,
ordinal_position
) as description
from information_schema.columns
where table_schema = 'company_<your-workspace-id>'
and table_name = 'issue'
order by ordinal_position;
Cela signifie que vous n'aurez que rarement à deviner la signification d'une colonne — le schéma se documente lui-même.
Prêt à interroger ? Consultez Exemples de requêtes analytiques.