Leer esto de llevara más o menos... 14 minutos
by APFerrer
Share
Arquitectura de datos: un A, B, C que debes conocer
Una de las cosas que más me hace repetir, literalmente, «What the f**ck», es la manera en que las empresas almacenan los datos.
Hay de todo: empresas a las que les da todo igual (yo las llamo «Anarkoempresa»); empresas que creen que sí, pero no; las empresas que empiezan bien pero se desvían cuando la cosa se pone seria («Empresas con miedo al compromiso»); y, por último, las empresas que se reinventan una vez al año cuando sale una tendencia nueva.
Voy a traducirte esto a algo que entiendas: DINERO.
Además, no solo estás dejando de ganarlo, lo estás perdiendo. Inviertes en sistemas, inviertes en personas. Les das formación en Excel, luego en Sheets (por si acaso), luego en KNIME (¿por qué haces eso?), después MySQL, NoSQL, PowerBI… y así sucesivamente. La gente cree que hacer gráficos es «reportar», y los que no, los «puristas» del dato, no saben qué es lo que tú, humano, realmente quieres ver.
El trabajo de un arquitecto de datos es derribar tu sistema de creencias respecto a lo que quieres versus lo que crees que quieres; lo que necesitas versus lo que crees que necesitas.
Miramos tutoriales de YouTube, aplicamos lo que hacen otros sin entender muy bien si a nosotros nos sirve o no (da igual, nos da lo que queremos ver… ¿seguro?).
Quiero que aprendas conmigo; vamos a ir despacio. Esta es tu primera vez en arquitectura de datos, y esto… no va a ser fácil, no te va a gustar, y sí, va a tener importancia.
Lo primero es lo primero: ¿Qué es la arquitectura de datos?
Antes de meternos en harina, déjame explicarte de manera simple: la arquitectura de datos es el arte y ciencia de estructurar, almacenar y gestionar los datos para que fluyan de forma coherente, sean seguros, y, lo más importante, útiles. No se trata solo de dónde guardas la información, sino de cómo se conecta, cómo se transforma, y cómo se asegura que esté disponible en el momento adecuado y para la persona adecuada. Piensa en la arquitectura de datos como una red bien organizada que conecta cada pieza de información para que cuando alguien, o algún sistema, la necesite, esté accesible, precisa, y en el formato correcto.
Para que esto funcione, existe la figura del arquitecto de datos. Al igual que con un edificio, un arquitecto de datos se encarga de estudiar tu proyecto o tu empresa, traducir lo que tú quieres ver y obtener, y luego generar la estructura de la información que hará todo eso posible. En otras palabras, el arquitecto de datos es quien crea el modelo de datos que se usará para almacenar y organizar la información. Es una figura clave porque es la persona que conecta las necesidades del negocio con la realidad técnica, asegurándose de que lo que tú quieres saber se traduzca en datos que se puedan consultar y analizar de manera eficiente.
¿Qué es un modelo de datos?
El modelo de datos es una representación estructurada y organizada de cómo se almacenará y gestionará toda la información de tu empresa. Este modelo no es algo genérico ni estándar; es único porque debe adaptarse a las necesidades específicas y los objetivos finales de la información que maneja tu empresa. Por ejemplo, si tienes un negocio que maneja inventarios, servicios, ventas y clientes, el modelo de datos deberá reflejar cómo todos estos elementos se relacionan entre sí, y cómo se estructuran para que puedas ver, analizar, y usar esa información de manera efectiva.
¿No has entendido nada? Bueno, espera, a ver si aclaramos cosas…
Características de un buen modelo de datos:
¿Qué debe tener un modelo de datos para considerarle la Naomi Campbell de los modelos de datos?
¿Por qué es tan importante el modelo de datos?
Todo lo que podamos saber de nuestra información dependerá de cómo estructuramos y organizamos esos datos. Esto incluye todo: clientes, proveedores, productos, almacén, procesos, facturas, pagos, entradas, salidas, incidencias; absolutamente todo. El modelo debe interrelacionar estos elementos de forma que no solo podamos ver la información de forma individual, sino cómo se influyen mutuamente. Por ejemplo, si un cliente tiene un pedido pendiente, ¿cómo afecta esto al inventario?, ¿Y cómo afecta al estado de la factura y a las previsiones de ingresos?
Cada una de estas conexiones y flujos de información dependerá de cómo esté diseñado el modelo de datos. Si está bien hecho, todo fluye; si no, pueden surgir problemas, como información incompleta, datos duplicados, errores de cálculo, y, en última instancia, decisiones basadas en datos incorrectos o incompletos.
Créeme, todo va a depender de tu modelo, así que es mejor que esté bien hecho desde el principio.
La arquitectura de datos como pilar de tu negocio
Así pues, podríamos decir que la arquitectura de datos será la que condicione el comportamiento de tu empresa a largo plazo. Imagina que decides construir una casa sin planos o con materiales recogidos de aquí y de allá; eventualmente, todo será parche sobre parche, y cada problema que surja será más difícil y caro de solucionar. En la arquitectura de datos, es igual: si no eliges un buen modelo, te faltará información importante, habrá recursiones innecesarias (información que se duplica o se repite sin necesidad), y todo el sistema acabará siendo un desastre de parches que solo complicará la gestión.
Por eso, un buen diseño no solo facilita el presente, sino que garantiza que en el futuro, cuando necesites ampliar o cambiar algo, la estructura ya esté preparada para adaptarse sin problemas.
Pero vamos a ver esto de forma práctica.
Ahora sí, ¡Manos a la obra!
Vamos a meternos de lleno para que aprendas practicando.
Para esto, utilizaremos algo que todos tenemos a mano: una hoja de cálculo (puede ser Excel, Google Sheets o cualquier otra). Aunque las arquitecturas de datos profesionales suelen construirse con bases de datos y herramientas más avanzadas, empezar con una hoja de cálculo es una forma sencilla y efectiva de entender cómo estructurar, relacionar, y gestionar datos.
El objetivo es que puedas crear tu primera arquitectura de datos simple; una que te permita entender la lógica de la estructura y cómo diferentes conjuntos de datos se relacionan entre sí. Vamos a simular un sistema de datos para una pequeña tienda online que gestione productos, clientes y pedidos. No hagas trampas, que nos conocemos.
Paso 1: Crear las tablas base
En una arquitectura de datos, los datos se organizan en tablas que representan entidades importantes para el negocio. En nuestro caso, estas entidades serán Productos, Clientes, y Pedidos (¿Entiendes? Cada elemento es una entidad). En tu hoja de cálculo, crearás tres hojas (o pestañas), una para cada entidad:
Hojas y tablas
Cómo es obvio, deberías rellenar las hojas con valores ejemplo. Pero no todas, sólo la de productos y la de cliente (tranqui, que te dejo unos ejemplos que puedes copiar y pegar).
Pestaña productos
Pestaña clientes
Paso 2: Preparar y normalizar las tablas
Antes de relacionar las tablas, es importante asegurarse de que todos los datos estén normalizados, es decir, que cada columna tenga un formato coherente y que las entradas de datos sean consistentes. Este paso es fundamental en una hoja de cálculo, ya que no cuenta con la capacidad de validación estructurada que ofrecen las bases de datos relacionales. Aquí te explico cómo hacerlo para cada tabla:
Nota: Si estuviéramos utilizando un sistema de gestión de bases de datos relacionales como MySQL o PostgreSQL, este paso de normalización no sería necesario. Al momento de crear las tablas en estos sistemas, se especifican los tipos de datos (por ejemplo, VARCHAR para texto, INTEGER para números, DATE para fechas, etc.), y se pueden aplicar restricciones y validaciones que aseguren la consistencia de los datos desde el principio. Esto automatiza y simplifica la gestión de la estructura de los datos, haciendo innecesario este ajuste manual que sí es requerido en una hoja de cálculo.
Tabla de Productos:
Paso a Paso en la Hoja de Cálculo
- Asegúrate de que todos los valores en la columna ID Producto sigan el mismo formato (ej., P001, P002…). Esto facilita la identificación y relación con otras tablas.
- Los precios deben tener el mismo formato numérico (por ejemplo, con dos decimales: 12,99, 8,50). Esto se puede hacer seleccionando toda la columna y aplicando un formato numérico específico.
- El stock debe estar en números enteros para evitar errores futuros en cálculos.
Tabla de Clientes:
- Los IDs de Cliente deben seguir un formato único y consistente (C001, C002…).
- Los campos como Email y Teléfono deben estar normalizados: revisa que los correos estén bien escritos (sin espacios en blanco) y que los teléfonos tengan el mismo formato (por ejemplo, todos con 9 dígitos sin espacios o guiones).
- Asegúrate de que los nombres y direcciones estén escritos de manera clara y homogénea.
Tabla de Pedidos:
- Vamos a crear un ID dinámico para esta tabla para que cada vez que se agregue un pedido, el ID se genere automáticamente. Puedes hacerlo mediante una fórmula que combine la fecha y un número secuencial. Por ejemplo, si usas Google Sheets, una fórmula sencilla sería:
=ARRAYFORMULA(IF(ISBLANK($B$2:$B);"";"OR0" & TEXT(ROW($A$2:$A)-1; "000")))
- Los campos de Fecha del Pedido deben seguir el mismo formato (por ejemplo, dd/mm/aaaa).
- En la columna de Total, añade la siguiente función:
=ARRAYFORMULA(IF(ISBLANK($E$2:$E);"";$E$2:$E*VLOOKUP($D$2:$D;Productos!$A$2:$D;4;0)))
. Esto, nos ayudará a calcular después el total del precio por pedido
Paso 3: Relacionar las tablas
Con las tablas normalizadas, ahora podemos relacionarlas correctamente. Vamos a hacerlo de manera que los datos de las tablas Clientes y Productos se conecten con la de Pedidos:
- En la tabla Pedidos, la columna ID Cliente debe coincidir con un valor en la tabla Clientes. Esto permite saber quién realizó cada pedido.
- Similarmente, la columna ID Producto en la tabla Pedidos debe coincidir con un ID en la tabla Productos, así podemos ver qué producto se pidió.
- Para mantener estas relaciones dinámicas, puedes usar la función VLOOKUP en Excel o BUSCARV en Google Sheets. Por ejemplo, si deseas buscar el Nombre del Producto en función del ID Producto en la tabla de Pedidos: =VLOOKUP([ID Producto], Productos!A:E, 2, FALSE). Para nuestro caso concreto, vamos a relacionarlas a través de un formulario, que nos devuelva las relaciones.
Paso 4: Crear un formulario
Una vez que las tablas están configuradas y relacionadas, vamos a crear una nueva hoja que funcione como formulario para registrar nuevos pedidos de forma más sencilla. Este formulario extraerá información de las tablas iniciales para asegurarse de que todo esté sincronizado y dinámico.
Configuración del Formulario:
- Crea una nueva hoja en el archivo y nómbrala Formulario de Pedidos.
- En la hoja, coloca campos como Nombre de Cliente, Nombre de Producto, Cantidad y Fecha del Pedido.
- Para el campo Nombre del Cliente, utiliza una lista desplegable que se alimente de los nombres en la tabla de Clientes (esto se puede hacer con la función de validación de datos en Excel o Google Sheets, seleccionando el rango correspondiente de la columna de nombres de clientes).
- Para el campo Nombre del Producto, haz lo mismo creando una lista desplegable que se alimente de los nombres de la tabla de Productos.
Vincular los Nombres con los IDs:
- Una vez que el usuario selecciona un Nombre del Cliente en el formulario, crea una fórmula en otra celda que busque el ID correspondiente en la tabla de Clientes usando
INDEX
yMATCH
. La fórmula sería algo así: Ve a tu celda C1 de Formulario de pedidos y añade la siguiente función:=INDEX(Clientes!$A$2:$A; MATCH(B1; Clientes!$B$2:$B; 0))
- Haz lo mismo para el Nombre del Producto, utilizando una fórmula que busque el ID Producto en la tabla Productos: Ve a tu celda C2 de tu Formulario de productos y añade la siguiente función:
=INDEX(Productos!$A$2:$A; MATCH(B2; Productos!$B$2:$B; 0))
Automatizar la inserción de datos
- Una vez que las fórmulas de búsqueda estén configuradas, puedes usar estos IDs obtenidos para llenar automáticamente la tabla de Pedidos. Por ejemplo, cuando el usuario completa el formulario y presiona un botón para registrar el pedido, los IDs de Cliente y Producto, junto con la Fecha y Cantidad, se copiarán a la tabla de Pedidos.
- Este proceso se puede automatizar con macros o con Apps Script, para que la transferencia de datos sea fluida y precisa.
NOTAS
- Si eliges hacerlo con macros, deja la hoja tal y como la has trabajado hasta ahora.
- Si eliges la opción de hacerlo con Apps Script, borra el contenido de la hoja de Pedidos (excepto los encabezados y usa este código)
Inserta un dibujo en la página de tu formulario, asígnale la secuencia de comandos copiarPedido, y ¡Listo! ya tendrás tu primera arquitectura básica de datos funcional y operativa.
Conclusiones
Este es un modelo muy simplificado, y lo más importante es que funciona. La arquitectura de datos puede parecer compleja, pero como has visto, incluso con herramientas sencillas como una hoja de cálculo, es posible construir una estructura básica que te permita organizar y entender mejor la información.
La curiosidad y la inquietud por aprender más sobre la arquitectura de datos te ayudarán mucho a medida que profundices en este campo. Te animo a experimentar: añade más tablas, integra nuevos campos y variables, o incluso prueba con datos de otro tipo de negocio para ver cómo se comporta el sistema. Cada cambio que realices será una oportunidad para comprender mejor cómo estructurar, relacionar y optimizar los datos.
Recuerda siempre que el objetivo final es trabajar menos y mejor: automatizar procesos, reducir errores y disponer de información clara y precisa para tomar decisiones. La arquitectura de datos es la clave para lograrlo, y dominar sus principios, incluso en ejemplos simples, es el primer paso hacia una gestión eficiente y escalable de la información.
Ahora es tu turno: sigue experimentando y construyendo, porque al final, el conocimiento que adquieres te permitirá transformar tus datos en valores reales para tu proyecto o empresa. ¡Manos a la obra!