了解Fivetran如何提供规范化模式,使分析师的工作更轻松。
数据库模式是表示数据集的表和关系的蓝图。良好的数据库模式设计对于使数据易于处理至关重要,这样您就可以理解数据并构建所需的仪表盘、报表和数据模型。
来自SaaS应用程序api的原始数据很少被组织成便于分析人员使用的方式。通常,来自api的数据被组织起来以适应提供商预测的一般分析用例。这通常涉及预连接表和预计算字段,即去正规化。
在Fivetran,我们用不同的用例为众多客户提供服务,并努力构建一个能够容纳尽可能多的客户的解决方案。我们的理念是,任何特定于您的用例的额外定制都应该由您在仓库级别执行。此外,我们优化了每次同步的吞吐量,以保持带宽和缩短同步时间。了解更多关于Fivetran模式:
设计数据库模式的Fivetran方法克服了这些挑战:
清楚地了解应用程序的底层数据模型
规范化以创建单一的真实源并维护数据完整性
构建实体关系图(ERD),明确表示以下类型的关系:
一对一的
一对多/多对一
多对多
标准化,允许在模式之上构建模板化分析产品
这些原则是对时间、精力和专业知识的重大投资。
利用应用程序中的数据的第一个也是最重要的步骤是理解底层数据模型。不幸的是,许多API的设计和文档都很糟糕,一些API端点可能既复杂又不一致。有时,表示相同数据的列在表之间的命名不一致。在任何情况下,来自API端点的数据往往以非表格格式(如JSON)到达。
有几种方法可以帮助您了解应用程序的行为。在Fivetran的模式开发过程中,我们的开发人员:
阅读文档
使用应用程序本身
与应用程序的用户交谈
与应用程序(和/或API)的开发人员交流
每个SaaS应用程序都隐式地包含世界的表示,因为世界由组织、人员、事务和其他常见的业务概念组成。了解哪些数据列对应于哪些真实世界的等价物对于理解数据至关重要。
更广泛地讨论范式这超出了本文的范围,但是,简而言之,规范化努力消除重复、冗余和派生的数据值。
在Fivetran,我们经常将数据集成工作流定义为ELT(提取、加载、转换),但实际上它更像E-t-LT。Fivetran对我们所有的应用程序连接器这需要在将数据加载到数据仓库之前进行适度的清理、处理和重组。
只有在投入大量前期工作来理解应用程序的底层数据模型之后,才有可能实现标准化。从API文档、应用程序使用经验以及与应用程序开发人员的咨询中精心收集的知识有助于我们理解应用程序执行的业务逻辑以及它如何代表现实世界的概念。然后,我们识别冗余、重复或派生自其他值的数据列,分解或消除它们,并构建实体关系模型。
实体关系图(ERD)是模式或实体关系模型的可视化表示。它们表示表之间的相互关系。下面的ERD是Fivetran为Asana连接器构建的。
每个表都有一个主键,它表示该表表示的基本实体,并唯一标识该表中的每一行。外键是另一个表中的主键。它们将主键表示的实体与另一个表中表示的另一个实体连接起来。使用主键和外键,我们可以表示以下内容关系类型:
一对一。两个实体只能相互映射,不能映射其他元素。一个真实世界的例子是社会安全号码,它只映射到一个人。在Fivetran ERDs中,如果遇到与主表具有一对一关系的嵌套对象,则只需将其数据扁平化为列。
一对多。一个表中的一个实体可以与另一个表中的多条记录相对应,但反之则不然。一对多的示例可能是喜欢的颜色和喜欢它们的客户的列表。每一种颜色都可以有许多忠实的客户,但每个客户只有一个最喜欢的。如果我们遇到一个与主表有一对多关系的嵌套对象,它将被转换成一个单独的表。
多对多。这些关系在联接表中表示。联接表中的复合主键由两个相关实体的主键组成。例如,一个人的购物习惯可能会将它们带到许多商店,每个商店都会有许多客户。
规范化模式的ERD允许以清晰简洁的方式表示应用程序的底层数据模型。所有Fivetran ERD都可以在我们的文档.
来自规范化模式的数据对于开箱即用的分析目的并不一定有用,因为数据是基于真实世界的逻辑关系而不是通常用于报告、分析和训练算法的计算和派生值进行安排的。
幸运的是,虽然有很多方法可以设计一个非规范化的图式,就像有很多观点一样,但只有少数几个合理的正常形式。对规范化模式进行标准化是一种创建最小公分母的方法,以后可以转换这些公分母以支持几乎所有用例。
由于许多商业智能仪表盘(如销售和营销漏斗、收入报告、客户归属等)的KPI在客户中广为人知且相似,因此可以将数据转换为此类用例的非规范化形式。这就是我们在Fivetran所做的”分析模板这是一套工具,帮助我们的分析用户使用SQL和印度生物技术部(数据构建工具),以满足他们特定的分析需求。
好的模式设计需要大量的时间和人才投入。利用标准化的解决方案,您可以利用那些熟悉您所需数据的人员的专业知识,这样您就不必这样做了。