Comprender el esquema de la base de datos de informes
Beta. La base de datos de informes está actualmente en beta; el esquema y las convenciones descritos aquí aún pueden cambiar.
Dónde se almacenan sus datos
Todos los datos de su espacio de trabajo se almacenan en un único esquema llamado company_<your-workspace-id>. Cada tabla dentro de él corresponde a un concepto que ya conoce de Azumuta.
Tablas principales
El conjunto exacto de tablas depende de lo que haya habilitado. Las más comunes son:
| Table | What it holds |
|---|---|
workinstruction, workinstruction_version |
Sus instrucciones de trabajo y sus versiones publicadas. |
instruction_step |
Los pasos individuales dentro de una versión de instrucción de trabajo. |
instruction_visit, instruction_total_visit |
Cada vez que un operario realiza un paso, además de totales por paso. |
recording, recording_status |
Sesiones de ejecución (un operario ejecutando una instrucción) y su historial de estados. |
issue |
Incidencias / tickets de mejora continua, con recuentos precomputados útiles. |
issue_task, issue_comment, issue_attachment, issue_signature, issue_checklist |
Los elementos adjuntos a una incidencia. |
issue_transition |
El historial del movimiento de una incidencia entre columnas del tablero. |
product_order, product_order_item, product_order_item_spot |
Órdenes de producción y sus partidas. |
users, user_group, user_group_member |
Personas y grupos en su espacio de trabajo. |
Convenciones utilizadas en todo el esquema
Una vez conozca estas reglas, todo el esquema se vuelve predecible:
- Claves primarias. Cada tabla tiene una clave primaria de texto (por ejemplo
recording_id,issue_id) que coincide con el id del registro en Azumuta. Puede usarla para unir tablas relacionadas. - Eliminaciones lógicas. Las filas nunca se eliminan de forma silenciosa. Cuando algo se elimina en Azumuta, su fila recibe un timestamp
deleted_at. Para trabajar solo con datos actuales, añadawhere deleted_at is nulla sus consultas. - Marcas de tiempo. Cada tabla incluye
created_atymodified_at(ydeleted_at). Todas las marcas de tiempo se almacenan en UTC. - Las duraciones están en milisegundos. Campos como
actual_durationorework_timese almacenan en milisegundos enteros. Divida entre 1000 para obtener segundos. - Campos flexibles usan JSON. Los datos que varían en estructura (como
parameterso unaanswerde instrucción) se almacenan comojsonb, que puede consultar con los operadores JSON de PostgreSQL. - Valores precomputados. Para evitar joins adicionales, algunas tablas incluyen recuentos y métricas ya preparados —por ejemplo
issue.comment_count,issue.open_task_countorecording.rework_time.
El diccionario de datos integrado
Cada tabla y cada columna tiene una descripción legible asociada. La mayoría de clientes SQL y herramientas BI las muestran automáticamente. Por ejemplo, en psql:
\d+ "company_<your-workspace-id>".issue
También puede leerlas con una consulta:
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;
Esto significa que rara vez tendrá que adivinar el significado de una columna — el esquema se documenta por sí mismo.
¿Listo para consultar? Vea Ejemplos de consultas analíticas.