¿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.
¿Le suena familiar?
- El mismo cliente existe tres veces en el data warehouse, una por sistema de origen, y nadie sabe decir qué registro es el correcto.
- Cada nueva fuente obliga a volver a negociar las claves y a reescribir los joins en todo el modelo.
- Un sistema de origen renumeró sus registros, y la mitad del historial ya no coincide.
Todo data warehouse tiene que responder a una pregunta antes que a cualquier otra: ¿de qué conceptos habla esta empresa y cómo los distingue entre sí? En Data Vault, la respuesta es un hub.
Qué es un hub
Un hub representa un concepto de negocio central: cliente, producto, cuenta, contrato. No es una copia de una tabla del sistema de origen. El hub de clientes contiene todas las claves de cliente que el data warehouse ha recibido alguna vez, de cualquier fuente, cada una exactamente una vez.
Un hub almacena la identidad, no el estado. No dice nada sobre el cliente: el nombre, la dirección y sus atributos descriptivos se guardan en satélites, y los pedidos y contratos del cliente se conectan mediante links. El hub solo registra que esa clave existe, cuándo la vio por primera vez el data warehouse y de dónde procede.
Si conoce el modelado de datos clásico, ya conoce el hub
Data Vault no sustituye lo que usted aprendió sobre modelado de datos. Lo reutiliza. Parta del modelo conceptual que dibujaría de todos modos: los conceptos de negocio y cómo se relacionan. Cada concepto, cada entidad de su diagrama entidad-relación, se convierte en un hub.
Tomemos una tabla Customer clásica en tercera forma normal:
| Modelo clásico | Qué es | En Data Vault |
|---|---|---|
Entidad Customer |
El concepto | Hub |
customer_number (clave primaria natural) |
La identidad | Business key en el hub |
name, address, segment |
Atributos descriptivos | Satélite |
store_id (clave foránea) |
Una relación con otro concepto | Link |
No se pierde nada ni se inventa nada nuevo. La entidad se divide según criterios que usted ya conoce: lo que la identifica, lo que la describe y aquello con lo que se relaciona. El hub es el primero de estos tres elementos, y por eso encontrar los hubs es el mismo trabajo que exige cualquier buen modelo conceptual: ponerse de acuerdo sobre los conceptos de negocio y sobre cómo se identifica cada uno.
La anatomía de un hub
Un hub tiene cuatro columnas, ni una más:
- Hash key. La clave primaria: una clave sustituta determinista, calculada como hash (MD5 o SHA-256) de la business key, más un código de colisión opcional para los casos en que dos fuentes podrían usar la misma clave para cosas distintas. En Datavault Builder ese código de colisión se llama Business Key Prefix. Cada tabla que hace referencia al hub calcula el mismo valor sin necesidad de un lookup.
- Business key. La clave que identifica la entidad en el mundo del negocio: un número de cliente, un número de bastidor (VIN), un IBAN. Una columna, o varias en el caso de una clave compuesta, como el código de sociedad más el número de cliente.
- Load Date. El momento en que la business key se registró por primera vez en el Data Vault.
- Record Source. El sistema operacional que entregó la clave en primer lugar.
El Business Key Prefix: mismo número, pedido distinto
Las filiales suiza y alemana operan cada una su propio sistema ERP, y en ambos existe un pedido 1018.
Son dos pedidos distintos, realizados por clientes distintos. Si el hash se calculara solo
sobre el número de pedido, los dos acabarían en la misma fila del hub, y todo lo que ambos
sistemas saben de ellos se mezclaría.
El Business Key Prefix los mantiene separados. Cada fuente antepone su prefijo a la clave
antes de calcular el hash, CH|1018 y DE|1018, de modo que el hub de pedidos contiene dos
filas, como debe ser. Utilícelo solo donde la misma clave pueda significar realmente cosas
distintas. Cuando dos sistemas comparten una clave con el mismo significado, como un número de
cliente válido para todo el grupo, esas claves deben mapearse a la misma fila del hub sin prefijo.
Por qué no quitamos espacios ni pasamos a mayúsculas la business key
Una recomendación habitual es eliminar los espacios iniciales y finales de la business key y pasarla a mayúsculas
antes de calcular el hash. Nosotros no lo recomendamos. Con ello, c-10442 y C-10442 pasan a
ser el mismo cliente, y un espacio al final también desaparece, aunque la diferencia sea un
error tipográfico en la fuente. El vault fusiona entonces dos entradas y sus relaciones en una
sola sin que nadie lo note. El hub debe conservar lo que entregó la fuente; decidir que dos
claves significan lo mismo es una regla de negocio, y su lugar es un sitio visible, como un
same-as link.
Se escribe una vez y nunca se actualiza
Los hubs solo admiten inserciones. Cada carga compara las claves entrantes con las que ya están en el hub e inserta las nuevas. Una vez que una business key ha entrado, permanece para siempre: sin actualizaciones ni borrados.
Esta regla tiene dos consecuencias. La carga de un hub no depende de nada más del modelo, por lo que todos los hubs pueden cargarse en paralelo. Y una carga fallida puede simplemente repetirse, porque no es posible insertar dos veces las mismas claves nuevas.
Donde desaparecen los silos de los sistemas de origen
El hub es el punto de integración del modelo. Si el CRM y el ERP identifican a un cliente con la misma business key del mundo real, ambos se mapean a la misma fila del hub, y ahí se reúne todo lo que los dos sistemas saben de ese cliente.
Por eso la business key es la verdadera decisión de diseño. La mejor opción es una clave que el negocio utilice en todos los sistemas. No siempre está disponible en una forma útil: una fuente puede contener solo su propio ID técnico, o una clave que se reutiliza, tiene distintos formatos o falta en los registros más antiguos. Cómo tratar esos casos es el tema de otro artículo de esta serie: claves técnicas frente a claves de negocio. Cuando dos sistemas usan claves distintas para el mismo cliente, un same-as link registra que ambas se corresponden.
Lo que nunca debe estar en un hub
- Contexto descriptivo. Nombres, direcciones, estados e importes van en satélites. Un hub que acumula atributos es un satélite disfrazado, y deja de ser estable.
- Claves foráneas. Un
Store_IDdentro del hub de clientes es una relación, y las relaciones van en links. - Atributos que se hacen pasar por conceptos. Un estado, una categoría o un código de moneda describen algo; no son un concepto de negocio propio. Las transacciones son otro caso: en Datavault Builder, una línea de pedido o un pago tiene su propio grain hub, como explica el artículo sobre los links.
- Un hub por fuente. Tres hubs de clientes, uno para el CRM, otro para el ERP y otro para la tienda online, reconstruyen los silos que el data warehouse debía eliminar.
- Claves sustitutas de un sistema de origen, cuando pueda evitarlas. Un valor
IDENTITYoAUTO_INCREMENTde una base de datos no significa nada en otro sistema, así que prescinda de él si existe una business key. Aun así, a veces es la mejor clave disponible, por ejemplo para las versiones de una tabla que el sistema de origen ya historiza, o para la granularidad más fina de una transacción a la que nada más hace referencia. En esos casos puede ser la opción correcta. El artículo sobre claves técnicas frente a claves de negocio explica cuándo.
Qué cambia con Datavault Builder
En Datavault Builder, el concepto se define una sola vez y cada fuente se asigna a él definiendo su business key. La tabla, la gestión de claves y el código de carga se generan a partir de ahí y se ejecutan de forma nativa en su base de datos, ya sea Snowflake, Databricks, BigQuery, SQL Server, Fabric, Oracle o PostgreSQL.
- La clave es una decisión del modelo, no un patrón de código. Usted decide qué identifica a un cliente. Escribir el cálculo del hash y la lógica de inserción no forma parte de esa decisión.
- Las nuevas fuentes se mapean al mismo hub. Incorporar la tienda online significa mapear su número de cliente al hub de clientes existente, no construir uno nuevo.
- El patrón es siempre el mismo. Una carga de hub escrita a mano se copia, se adapta y se modifica ligeramente con cada nueva fuente; una carga generada no se aparta del patrón.
Qué debe decidir
Enumere entre cinco y diez conceptos de negocio de los que realmente hablan sus informes y, para cada uno, anote la clave con la que el negocio lo identifica. Allí donde dos departamentos le den respuestas distintas, o una fuente no tenga ninguna clave utilizable, habrá encontrado el trabajo de integración más valioso del proyecto.
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 hub
-
Definir el concepto
Identifique el concepto de negocio central, como cliente, producto o pedido, y modele un único hub para este concepto, sea cual sea el número de fuentes.
-
Obtener los datos
Conecte los sistemas de origen que conocen este concepto y cargue sus tablas en el staging.
-
Mapear la business key
Mapee la clave de cada fuente al hub, con un Business Key Prefix allí donde la misma clave signifique cosas distintas. Las cargas se generan.
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 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í.
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.