不止是只有维度建模,数据仓库还有Data Vault建模

news/2024/7/6 23:01:10

引言

在数据仓库设计中,传统的星型和雪花型模型有着各自的优势和劣势。随着数据量的增大和数据源的多样化,Data Vault(数据仓库)建模方法逐渐受到关注和应用。Data Vault建模是一种灵活、可扩展、适应性强的建模方法,特别适用于复杂和动态的数据环境。本文将介绍Data Vault建模的基本概念、组成部分以及如何在实际项目中应用,并附带详细示例。

目录

    • 引言
    • Data Vault建模概述
      • Hub(中心表)
      • Link(链接表)
      • Satellite(卫星表)
    • 实践中的Data Vault建模
      • 步骤一:定义Hub表
      • 步骤二:定义Link表
      • 步骤三:定义Satellite表
    • 总结

Data Vault建模概述

Data Vault由丹·林斯塔德(Dan Linstedt)在1990年代后期提出,是一种适应大规模数据整合的建模方法。它的主要特点包括:
image.png

  • 高扩展性:适应快速增长的数据量和多变的数据源。
  • 高灵活性:易于应对业务规则和数据源的变化。
  • 历史数据保留:完整记录数据变化历史。

Data Vault模型由三类主要实体组成:

  1. Hub(中心表):存储业务主键及其唯一标识符。
  2. Link(链接表):存储不同Hub之间的关系。
  3. Satellite(卫星表):存储Hub或Link的属性和时间戳信息。

Hub(中心表)

Hub是Data Vault模型的核心,用于存储业务实体的唯一标识符。每个Hub表对应一个业务实体,表中的每一行代表一个业务主键。Hub表的结构相对简单,通常包含以下字段:

  • 业务主键(Business Key)
  • 哈希键(Hash Key):用来唯一标识业务主键
  • 加载时间戳(Load Timestamp)
  • 记录源(Record Source):记录数据来源
    image.png

示例:

CREATE TABLE Hub_Customer (Customer_HashKey CHAR(32) PRIMARY KEY,Customer_BusinessKey VARCHAR(255),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);

Link(链接表)

Link用于定义Hub之间的关系。每个Link表对应一种业务关系,表中的每一行代表一个关系实例。Link表的字段通常包括:

  • 哈希键(Hash Key):唯一标识Link
  • 外键(Foreign Key):指向相关的Hub
  • 加载时间戳(Load Timestamp)
  • 记录源(Record Source)
    image.png

示例:

CREATE TABLE Link_CustomerOrder (CustomerOrder_HashKey CHAR(32) PRIMARY KEY,Customer_HashKey CHAR(32),Order_HashKey CHAR(32),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);

Satellite(卫星表)

Satellite用于存储Hub或Link的属性及其变化历史。每个Satellite表与一个Hub或Link相关联,表中的每一行代表一个属性快照。Satellite表的字段通常包括:

  • 哈希键(Hash Key):对应的Hub或Link的哈希键
  • 属性字段(Attribute Fields)
  • 加载时间戳(Load Timestamp)
  • 记录源(Record Source)

image.png

示例:

CREATE TABLE Sat_CustomerDetails (Customer_HashKey CHAR(32),Customer_Name VARCHAR(255),Customer_Address VARCHAR(255),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);

实践中的Data Vault建模

下面我们通过一个实际例子来展示如何在项目中应用Data Vault建模。假设我们有一个电商系统,需要整合客户、订单和产品等信息。

image.png

步骤一:定义Hub表

首先,我们为客户、订单和产品定义Hub表。

-- 客户中心表
CREATE TABLE Hub_Customer (Customer_HashKey CHAR(32) PRIMARY KEY,Customer_BusinessKey VARCHAR(255),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);-- 订单中心表
CREATE TABLE Hub_Order (Order_HashKey CHAR(32) PRIMARY KEY,Order_BusinessKey VARCHAR(255),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);-- 产品中心表
CREATE TABLE Hub_Product (Product_HashKey CHAR(32) PRIMARY KEY,Product_BusinessKey VARCHAR(255),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);

步骤二:定义Link表

接下来,我们定义Link表来表示客户和订单、订单和产品之间的关系。

-- 客户与订单关系表
CREATE TABLE Link_CustomerOrder (CustomerOrder_HashKey CHAR(32) PRIMARY KEY,Customer_HashKey CHAR(32),Order_HashKey CHAR(32),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);-- 订单与产品关系表
CREATE TABLE Link_OrderProduct (OrderProduct_HashKey CHAR(32) PRIMARY KEY,Order_HashKey CHAR(32),Product_HashKey CHAR(32),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);

步骤三:定义Satellite表

最后,我们为每个Hub和Link定义Satellite表,用于存储相关的属性信息。

-- 客户属性卫星表
CREATE TABLE Sat_CustomerDetails (Customer_HashKey CHAR(32),Customer_Name VARCHAR(255),Customer_Address VARCHAR(255),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);-- 订单属性卫星表
CREATE TABLE Sat_OrderDetails (Order_HashKey CHAR(32),Order_Date DATE,Order_Amount DECIMAL(10, 2),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);-- 产品属性卫星表
CREATE TABLE Sat_ProductDetails (Product_HashKey CHAR(32),Product_Name VARCHAR(255),Product_Price DECIMAL(10, 2),Load_Timestamp TIMESTAMP,Record_Source VARCHAR(50)
);

总结

image.png

Data Vault建模是一种灵活且扩展性强的数据仓库建模方法,特别适用于复杂和动态的数据环境。

它通过Hub、Link和Satellite表的组合,提供了一种结构化的方法来存储和管理大量的业务数据及其变化历史。

在实际应用中,Data Vault建模方法能够有效应对数据源和业务需求的变化,为企业提供稳定可靠的数据整合解决方案。

希望本文对您理解和应用Data Vault建模有所帮助。如果您在实际项目中遇到任何问题,欢迎留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/13720.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

公网环境使用Potplayer远程访问家中群晖NAS搭建的WebDAV听歌看电影

文章目录 前言1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透,映射至公网5 使用固定地址在potplayer访问webdav 前言 本文主要介绍如何在Windows设备使用potplayer播放器远程访问本地局域网的群晖NAS中的影视资源&#xff…

论坛万能粘贴手(可将任意文件转为文本)

该软件可将任意文件转为文本。 还原为原文件的方法:将得到的文本粘贴到记事本,另存为UUE格式,再用压缩软件如winrar解压即可得到原文件。建议用于小软件。 下载地址:https://download.csdn.net/download/wgxds/89505015 使用演示…

(单机架设教程)诛仙3_17职业第三版|附安装视频+GM工具

前言 今天给大家带来一款单机游戏的架设:2023最新诛仙3单机版17职业第三版 如今市面上的资源参差不齐,大部分的都不能运行,本人亲自测试,运行视频如下: 诛仙3_17职业第三版 搭建教程 此游戏架设需要安装虚拟机&am…

高效数据采集监控平台 一体化平台 数据可视化!

提高工作效率,一直是各种厂家在寻找的方法。任何一种有效且实用的方法都值得去尝试。数据采集监控平台是一种能高效处理数据的方式,其主要工作内容是从各个产生数据的仪器设备传感器中采集数据、对数据进行集中整理整合、分析、显示、绘制图表、存储、传…

每日Attention学习7——Frequency-Perception Module

模块出处 [link] [code] [ACM MM 23] Frequency Perception Network for Camouflaged Object Detection 模块名称 Frequency-Perception Module (FPM) 模块作用 获取频域信息,更好识别伪装对象 模块结构 模块代码 import torch import torch.nn as nn import to…

完美世界|单机版合集(共22个版本)

前言 我是研究单机的老罗,今天给大家带来的是完美世界的单机版合集,一共22个版本。本人亲自测试了一个版本,运行视频如下: 完美世界|单机版合集 先看所有的版本的文件,文件比较大,准备好空间,差…