¿Qué es un link en Data Vault?
Un link registra una relación entre business keys: este pedido pertenece a este cliente. Datavault Builder cubre el link clásico de Data Vault y añade un link de transacción anclado en un grain hub, que fija la granularidad de una transacción y permite relacionar transacciones entre sí.
¿Le suena familiar?
- Una línea de pedido aparece dos veces en el link después de que la fuente cambiara su cliente, y nadie sabe qué fila es la vigente.
- Una factura tiene que hacer referencia al pedido que factura, y el modelo no ofrece una forma limpia de conectar ambos.
- Un link con siete claves de hub que ya solo entiende quien lo creó.
Los hubs le dicen qué clientes, productos y pedidos existen. No dicen nada sobre cómo se relacionan entre sí. Esa es la función del link.
En términos de modelado clásico, una relación se convierte en un link. Dicho de forma sencilla,
una clave foránea en un modelo en tercera forma normal es la base de un link. Si la tabla
Order contiene un customer_id, el Data Vault tiene un link entre el hub de pedidos y el hub
de clientes.
El link clásico
Un link registra una relación entre business keys: este pedido pertenece a este cliente, este contrato cubre este producto. Al igual que un hub, no almacena datos descriptivos.
Una tabla de link contiene:
- Link hash key. La clave primaria, un hash calculado sobre las business keys de todos los hubs que conecta.
- Hash keys de los hubs. Una columna por cada hub participante.
- Load Date. El momento en que se vio la relación por primera vez.
- Record Source. El sistema que la entregó.
Los links, como los hubs, solo admiten inserciones. Una relación que se ha visto una vez permanece en el link; saber si sigue siendo válida hoy corresponde a un effectivity satellite, al que se dedicará un artículo posterior de esta serie.
Tal como lo describen los manuales, Data Vault modela todos los links como n:m, para que nunca haya que reconstruirlos cuando una relación 1:n pasa a ser n:m tras una fusión o la llegada de un nuevo sistema. Pero que la estructura sea n:m no significa que los datos lo sean. Si un pedido se asigna a otro cliente, no pasa a pertenecer a dos clientes: el nuevo cliente sustituye al anterior. Para leer correctamente un link, hay que conocer su lado director.
En Datavault Builder, el link clásico es un link binario entre dos hubs y lleva su cardinalidad: 1:1, n:1, 1:n o n:m. La cardinalidad define qué lado dirige la relación, de modo que un cambio en el lado director se interpreta como una sustitución y no como una relación adicional.
Si conoce el modelado de datos clásico, ya conoce el link
| Modelo clásico | En Data Vault |
|---|---|
| Una clave foránea entre dos entidades | Link binario entre dos hubs, con su cardinalidad |
| Una tabla asociativa sin atributos | Link n:m |
| Una tabla asociativa con atributos propios | Hub con un satélite, más un link de transacción |
| Una transacción con clave propia, como una línea de pedido | Grain hub, más un link de transacción |
El link de transacción
Para las transacciones, Datavault Builder añade un segundo tipo de link. Una transacción, como una línea de pedido, un pago o una línea de entrega, se relaciona con varios hubs a la vez, y el Data Vault convencional suele guardarla directamente en un link, a veces uno no historizado con dependent child keys. La granularidad queda entonces implícita: es la combinación de claves que, por casualidad, hace única una fila. Si la fuente asigna más tarde una línea de pedido a otro cliente, ese link contiene dos filas para la misma línea, y nada en el modelo indica cuál de ellas describe la transacción.
El link de transacción hace explícita la granularidad. La granularidad más fina de la
transacción recibe su propio hub, el grain hub (Hub_Sales_Order_Line,
Hub_Payment_Transaction), y el link se ancla en él. Eso da al link de transacción cuatro
propiedades, cada una con su razón de ser:
-
Una granularidad fija. Hay una entrada de link por cada línea de pedido, y la granularidad no puede variar.
-
Un lado director definido. El grain hub dirige la relación. Si una línea de pedido recibe un producto nuevo, este sustituye al anterior; la línea no termina apuntando a dos productos a la vez.
-
Relaciones identificadoras y no identificadoras. El grain hub es la identidad de la transacción. El cliente, el producto y la tienda participan como referencias, la misma distinción que hace el modelado entidad-relación clásico.
«La clave, toda la clave y nada más que la clave, así me ayude Codd». El resumen clásico de la tercera forma normal de Codd también vale aquí: el grain hub es la clave de la transacción, y todo lo demás la describe o remite a otro concepto.
-
Atributos en un hub. La cantidad, el precio y el estado van en un satélite normal del grain hub. Pueden cargarse de forma incremental como cualquier otro satélite, y más adelante pueden añadirse más atributos sin remodelar nada. Data Vault también permite link satellites para esto; según nuestra experiencia, el mejor lugar es un hub, y lo mismo vale para una tabla asociativa con atributos, como un rol o un porcentaje en la asignación de un cliente a un contrato.
Cómo se resuelve el problema del link a link
La primera regla de Data Vault es que los links conectan hubs. Un link no puede hacer referencia a otro link.
Sin embargo, las transacciones reales se relacionan constantemente con otras transacciones: una línea de factura corresponde a una línea de entrega, un pago liquida una factura, una devolución hace referencia a una línea de pedido. La solución convencional es aplanarlo todo en un único link compuesto con seis o más claves de hub, que resulta difícil de leer y convierte cada carga en una unidad de trabajo enorme.
Con los links de transacción, el problema desaparece. Cada transacción ya tiene un grain hub, de modo que una relación entre dos transacciones es un link normal entre dos hubs:
Hub_Delivery_Line ↔ Link_Delivery_To_Invoice ↔ Hub_Invoice_Line
Sin referencias de link a link, sin soluciones provisionales con dependent child keys, y con cada link lo bastante pequeño como para poder leerlo.
El patrón se remonta a 2017, cuando lo describí por primera vez en «Sobre Links», incluida su comparación con el estándar Data Vault 2.0.
Qué cambia con Datavault Builder
- Los dos tipos de link, en un mismo modelo. Links binarios para las relaciones entre datos maestros, links de transacción allí donde la relación es una transacción.
- La cardinalidad y la granularidad son decisiones del modelo. Usted indica la cardinalidad de un link binario, o qué es una transacción, y la herramienta construye a partir de ello el link y sus cargas.
- El código se genera. Las hash keys, la unidad de trabajo y la carga de solo inserción siguen el mismo patrón en todos los links, en Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle o PostgreSQL.
Qué debe decidir
Tome sus tres transacciones más importantes y anote, para cada una, qué constituye una ocurrencia. Si la respuesta es una combinación de cliente, producto y fecha en lugar de un número de línea o de documento, la granularidad es implícita, y es ahí donde un link de transacción dará estabilidad al modelo.
Véalo funcionando con una de sus fuentes de datos
Reserve una demo gratuita y traiga el conector que más le cuesta, en dinero o en tiempo.
Tres pasos para crear un link
-
Partir de la relación
Cada clave foránea y cada tabla asociativa de su modelo de origen es un posible link entre dos hubs.
-
Definir la cardinalidad
1:1, n:1, 1:n o n:m. La cardinalidad determina qué lado dirige la relación.
-
Usar un link de transacción para las transacciones
Las líneas de pedido, los pagos y las entregas reciben un grain hub y un link de transacción. Datavault Builder genera las cargas.
Cómo Datavault Builder elimina las fricciones en la ingesta
-
La ingesta viene integrada
Cargas batch, delta y CDC desde bases de datos, archivos, APIs REST, fuentes NoSQL y Python, recibiendo flujos como Kafka en micro-batches. La misma plataforma que genera el warehouse, sin una segunda factura.
-
Su propio esquema, no el del proveedor
Las tablas de origen se mapean a un modelo Data Vault 2.0 diseñado por usted. Una nueva columna o una tabla renombrada modifica un mapeo, no una cadena de scripts post-carga.
-
Solo se mueven los deltas
Los hubs, links y satélites cargan lo que ha cambiado. Las recargas completas permanecen en staging en lugar de reprocesarse aguas abajo cada noche.
-
El historial se conserva por diseño
Cada cambio se retiene según llega, por lo que el reporting histórico funciona incluso cuando el origen sobrescribe sus propios registros.
-
Código que nunca tendrá que escribir a mano
La carga, historización y linaje se generan desde el modelo en tiempo real y se ejecutan de forma nativa en Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle o PostgreSQL.
-
Una plataforma, hasta nueve herramientas menos
Modelado, ETL, CI/CD, documentación y linaje en un solo lugar. Eso es lo que hace posible pasar del requerimiento a producción en 14,7 minutos.
Hable con nuestro experto
Veinte minutos con nuestro Sales Director y una respuesta honesta sobre si esto encaja con su arquitectura.
Matt Collett
Sales Director
Perfecto, elija un horario que le venga bien:
Otros problemas que cubre esta serie
-
Claves técnicas frente a claves de negocio en Data Vault
Los sistemas de origen guardan la business key en el registro maestro, pero todas las relaciones se basan en claves técnicas. Cuatro formas de abordarlo, lo que cuesta cada una y el patrón que utilizamos: un PSA hub para las claves técnicas, mapeado al hub de la business key.
-
¿Qué es una business key en Data Vault?
Una business key es el identificador que sus empleados y clientes utilizan realmente: el número de cliente, el número de factura, el ID del contrato. Es estable, se comparte entre sistemas y es la base sobre la que se construye cada hub de un Data Vault.
-
¿Qué es un satélite en Data Vault?
Un satélite contiene todo lo que describe a un hub: nombres, estados, importes y cada uno de sus cambios, que se añaden y nunca se actualizan. Es una Slowly Changing Dimension de tipo 2 sin UPDATE, con un registro de auditoría completo incorporado.
-
¿Qué es un hub en Data Vault?
Un hub representa un concepto de negocio central, como cliente, producto o cuenta, en forma de lista de sus claves: todas las que el data warehouse ha recibido alguna vez, cada una exactamente una vez. Almacena la identidad, no el estado, y esa sobriedad lo convierte en el punto donde desaparecen los silos de los sistemas de origen.
Preguntas y respuestas
- Dan Linstedt. Desarrolló el método en los años noventa y lo publicó hacia el año 2000. Data Vault 2.0, que añade al modelo hash keys, una metodología y una arquitectura, llegó en 2013.
- La obra de referencia es Building a Scalable Data Warehouse with Data Vault 2.0, de Dan Linstedt y Michael Olschimke (Morgan Kaufmann, 2015).
- No. Bill Inmon considera Data Vault una evolución de su visión del enterprise data warehouse en tercera forma normal, no un enfoque rival.
- No. A menudo, una salida dimensional forma parte de una implementación de Data Vault: el vault conserva el historial integrado, y sobre él se construyen los esquemas en estrella para el reporting. El mismo vault puede entregar también tablas planas o un Unified Star Schema.
- Con automatización, una vista en tercera forma normal sobre un Data Vault puede generarse de forma totalmente determinista. El vault contiene los datos una sola vez, y la capa 3FN se deriva del modelo. Cómo funciona.
- Intentarlo sin automatización. Data Vault se basa en un conjunto reducido de patrones estrictos y repetitivos, y eso es precisamente lo que lo hace tedioso y propenso a errores cuando se escribe a mano, y sencillo de generar. Por eso conviene utilizar Datavault Builder.
- Sí. Separar claves, relaciones e historial en hubs, links y satélites da lugar a más tablas que un modelo normalizado o dimensional. Por eso la capa física debería abstraerse mediante un enfoque basado en modelos como Datavault Builder, en el que usted trabaja sobre el modelo de negocio y las tablas se generan.
- Solicite una demo y vea un Data Vault construido sobre sus propias fuentes, o pida un entorno de formación y pruébelo usted mismo.
- Aquí. Datavault Builder es una solución de automatización de Data Vault: consulte los precios o solicite una demo.
- Datavault Builder se licencia anualmente para su uso. Las licencias perpetuas están disponibles bajo petición. Las ediciones y lo que incluyen figuran en la página de precios.