想了解更多关于Fivetran的信息吗?加入我们每周的现场演示。〇保留座位我们EMEA

跳过主要内容

什么是数据库模式?

“模式”这个词在不同的学科中有很多种用法。在数据库上下文中,模式是将数据组织成具有列、键和相互关系的表的蓝图。

每个应用程序都包含一个称为数据模型的现实表示,该模型指定应用程序运行所需的数据,包括用户如何与之交互。一个逻辑数据库模式将数据模型转换为适合存储在关系数据库中的内容。

模式对于数据集成和分析也很重要。由于数据仓库是关系数据库的一种类型,数据仓库中存储的数据也必须组织成模式。当数据管道提取数据并将其加载到数据仓库时,它将执行预处理(如清理和规范化),以使数据保持一致和清晰,然后填充模式。这确保了您的数据可以很容易地被分析人员理解并转化为仪表板和报告。

在这里,我们将在数据集成和分析的背景下讨论模式的重要性。

数据库模式设计的重要性

无论是在应用程序中还是在数据仓库中,设计良好的数据库模式都将数据清晰地组织为具有适当属性的不同实体,显示实体之间的相互关系,并施加数据类型等约束。

数据仓库中设计良好的模式在以下方面使分析人员的工作更容易:

  1. 它在很大程度上消除了分析师工作流程中的清洗和其他预处理。

  2. 它使分析人员不必对应用程序的底层数据模型进行反向工程。

  3. 它为分析项目提供了一个清晰、容易理解的起点。

这些好处使分析师可以将精力集中在建模和转换数据上,从而生成报告和仪表板。

来自应用程序或操作系统的原始数据很少能够用于分析。设计和构建API feed的工程师很少以分析师的方式处理问题。相反,大多数数据源以SaaS提供者认为最合适的结构交付数据。在最好的情况下,提供商可能会对用户想要的具体指标做出强有力的假设,并相应地组织他们的数据模型。这通常会造成冗余和缺乏清晰度。

用于数据集成的数据库规范化

为了克服这种冗余和缺乏清晰度,您必须对数据源的底层数据模型进行反向工程并对其进行规范化。

更广泛的讨论正常的形式超出本文的范围,但是,在简单的时刻,归一化致力于消除重复,冗余和派生数据值。具体而言,为了归一化数据集,您必须识别冗余,重复或导出的数据列,这些数据列,分解或消除它们,并构建清楚地组织数据模型中实体的属性和关系的实体关系模型。

建模数据的方法和观点一样多,但规范化数据集的方法相对较少。通过规范化数据集,可以将其分解为简洁而全面的表达式。模式可以通过实体关系图(erd)进行可视化的交流。规范化模式如下图所示:

erd说明表、字段、相互关系和表之间的键

来自规范化模式的数据对于开箱即用的分析目的并不一定有用,因为分析用例通常依赖于计算和导出的值。因此,规范化不可避免地与extract-load-transform(英语教学)的过程。在ELT中,在将数据加载到目标之后,必须执行转换,将数据转换为可用于分析的模型。

设计数据集成模式

要在数据仓库中构建和填充一个好的模式,您需要:

  1. 完全理解数据源的底层数据模型。

  2. 绘制并不断迭代实体关系图(ERD),以可视化地交流数据模型中的各种相互关系(一对一、一对多和多对多)。您还必须对表和字段应用一致的命名约定。

  3. 在目标中设计一个规范化的模式。起草并填充ERD中的表。当您可以导入并识别所有字段时,您就成功了。

  4. 将实际的软件产品化,以提取数据,将其预处理到规范化模式中,并将其加载到目标中。

  5. 发布你的最终ERD作为你的分析师的参考。

流程中最费力的阶段是获得对数据源的必要理解。最明显的步骤是研究数据源的文档,但并非所有文档都是全面的或最新的。您可能被迫实际使用应用程序来补充从文档中收集到的信息。

只要数据源更改,上述流程就会应用。如果表或列被删除或重新组织,这可能会变得很棘手,因为您可以很容易地销毁在审计或历史分析中可能有用的数据。数据集成应该是net-additive或者是无损的。

模式的自动数据集成

好的模式设计需要大量的时间和人才投入。利用标准化的解决方案可以让您利用那些对您想要的数据非常熟悉的人的专业知识,这样您就不必这样做了。

要亲身体验Fivetran如何自动化数据集成,请注册一个免费试用