¿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í.

¿Qué es un link en Data Vault?

La plataforma de automatización de data warehouse en la que confían equipos de datos de todos los sectores

¿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.

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.

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

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.

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

  1. 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.

  2. Definir la cardinalidad

    1:1, n:1, 1:n o n:m. La cardinalidad determina qué lado dirige la relación.

  3. 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.

Reconocido por BARC en The Data Fabric Survey 26

Hable con nuestro experto

Veinte minutos con nuestro Sales Director y una respuesta honesta sobre si esto encaja con su arquitectura.

Matt Collett

Matt Collett

Sales Director

¿Qué está buscando?

Al enviar acepta nuestra Política de Privacidad.

Otros problemas que cubre esta serie

  • Claves técnicas frente a claves de negocio

    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.

  • 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.

  • Satélite

    ¿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.

  • Hub

    ¿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