数据仓库中的七种建模方法及示例
试象一下,你是一家忙碌餐厅的剖析工程师。每天,顾客都会预订、下订单并成功付款。一切这些数据都会流入餐厅的买卖数据库,记载每次互动的详细消息。
但是,事务型数据库只管十分适宜日常运营,但并不适宜剖析数据以发现有助于业务增长的趋向和见地。这就是数据仓库的作用所在。数据仓库是一个独自的数据库,经过优化,可用于存储少量历史数据以及极速查问和剖析。
应战在于如何构建仓库中的数据,以便启动高效剖析,同时坚持足够的灵敏性以应答始终变动的业务需求。数据仓库中的数据建模有几种经常出现和不太经常出现的方法。在本文中,咱们将引见七种关键的建模技术,权衡它们的优缺陷,并协助您为数据仓库选用正确的方法。
一、事务数据库示例
在深化钻研数据仓库建模之前,让咱们便捷看一下餐厅的典型事务数据库或者蕴含哪些内容:
买卖数据库经常使用针对处置买卖启动优化的规范化结构。但这种结构使剖析和报告愈加艰巨。数据仓库建模方法对数据启动非规范化和重组,以优化整合层中的剖析,同时仍便于极速写入加工层。
二、数据仓库建模方法
1.第三范式(3NF)
第三范式 (3NF) 是一种经典的相关数据库建模方法,可最大限制地缩小数据冗余。在 3NF 中,每个非键列仅依赖于表的主键。
将 3NF 运行于咱们的餐厅数据仓库,咱们将进一步分别表格,这样各个表格结构中就不会有档次结构,而是作为表格链接的档次结构。订单和付款等买卖表将援用元数据表的主键,而元数据表又将援用更初级别的元数据表。
实质上,咱们要做的扭转是确定客户表蕴含地址详细消息,这是人造档次结构。而后,咱们会将它们拆分为组件表。通常,您不会将此方法用于整合层,但它或者实用于加工层。假设您正在提取或者以不同粒度级别本机构建的多个源,则尤其如此。
好处:
缺陷:
2.Kimball 星型形式
Kimball 星型形式是数据仓库中的一个关键概念,由数据仓库和商业智能畛域的卓越人物 Ralph Kimball 提出。它旨在简化数据存储并提高查问性能,使复杂的数据结构更易于治理并更易于启动业务剖析。
关键部件
结构和设计
星型形式因其规划相似星星而得名。理想表位于中心,周围是维度表,每个维度表都经过外键衔接到理想表。这种设计十分直观,准许用户无理想表和维度表之间口头间接衔接。
好处:
缺陷:
3.雪花形式
雪花形式是数据仓库中星型形式的一种变体,旨在处置复杂且高度规范化的数据结构。该形式因其复杂的雪花状状态而得名,它将数据组织到多个相关表中,从而增强了数据完整性并缩小了冗余。但是,这会参与查问编写的复杂性并或者影响性能。它简直可以看作是星型形式和 3NF 的混合体。
关键部件
结构和设计
雪花形式由于其多级结构而相似于雪花。维度表被规范化为多个相关表,扩散成复杂的网状结构。这种设计旨在经过消弭冗余来节俭存储空间并提高数据完整性。
好处:
缺陷:
4.宽表 (OBT)
One-Big-Table (OBT) 设计,也称为平面表或宽表,是一种数据仓库方法,其中一切数据都兼并到单个非规范化表中。这种方法与星型和雪花型等规范化形式构成显明对比,它提供了更便捷的结构,但代价是冗余度参与,并且在处置十分大的数据集时或者会出现性能疑问。
关键部件
结构和设计
OBT 设计的结构十分便捷,只蕴含一个表,其中每行蕴含一切必要的数据点。这种扁平结构无需衔接,用户无需了解复杂的表相关即可轻松查问和检索数据。
关于咱们的餐厅,咱们将为三个关键事情(预订、订单和付款)区分设置一个大表。我看到过一些关于 OBT 还是星型形式是更好的方法的相当强烈的争执。答案是“视状况而定”。假设您将数据拉入 Power BI,它将须要星型形式样式的数据集。但是,假设您将数据拉入 Tableau,您或者更青睐 OBT 方法。但应该留意的是,假设您确实选用 OBT,则应将任何可重复经常使用的逻辑保管在可以重复援用的支持表中。
好处:
缺陷:
5.数据仓库 2.0
Data Vault 2.0 是一种现代数据仓库方法,旨在提供可裁减、灵敏且可审计的数据模型。它由 Dan Linstedt 开发,以原始>关键部件
结构和设计
Data Vault 2.0 驳回模块化架构设计,将数据存储分为这三种类型的表,从而提高可裁减性和灵敏性。集线器、链路和卫星被设计为增量和并行加载,从而可以高效处置少量数据和随期间变动的数据。
好处:
缺陷:
6.优惠形式
优惠形式是 Ahmed Elsamadisi 设计的一种数据仓库方法,用于以结构化和高效的方式捕捉业务优惠或事情的详细记载。此形式并重于记载企业外部口头的操作或买卖,因此关于事情驱动数据和详细买卖日志记载特意有用。它已用于须要跟踪少量细粒度事情的系统,例如电子商务网站、金融系统或物联网运行程序。
关键部件
在咱们的餐厅示例中,咱们或者有一个带有相关客户维度的客户优惠表。优惠表将跟踪客户的优惠,例如他们的预订、订单和付款。这些优惠的详细消息保管在列中feature_json,并有一个可选列用于存储相关的支出影响。
好处:
缺陷:
7.以实体为中心的建模
以实体为中心的建模是一种灵敏的方法,由 Maxime Beauchemin 提出,专一于围绕客户和产品等实体启动建模。每个实体都有自己的表,经常使用 JSON 来跟踪包括聚合在内的各种目的。这种方法不须要额外的维度表,由于实体表位于实体的最低粒度,并且可以间接在表中蕴含其属性。
在餐厅环境中,咱们会有一个客户表,其中蕴含客户属性列,加上一个 json 列来保管期间绑定目的,例如visit.7d,,visit.14d。sale.30d
好处:
缺陷:
三、选用正确的建模方法
思考到这七种经常出现的数据仓库建模方法,如何为您的数据仓库选用正确的方法?请思考以下起因:
最后,“正确”的数据仓库建模方法取决于您共同的业务需求和优先事项。经过了解每种建模技术的好处和劣势,您可以设计一个数据仓库,提供极速、灵敏且富裕洞察力的剖析,以推进公司开展。