数据工程是设计和定义从不同来源收集原始数据并使数据兼容以进行分析并获得业务价值的管道的过程。
要理解数据工程,需要掌握某些数据概念,我想在这个由10部分组成的系列中详细解释这些概念。我们将讨论的第一个概念是数据建模。
什么是数据建模
数据建模是概念化和可视化组织如何捕获、存储和使用数据的过程。数据建模的最终目标是为整个组织建立清晰的数据标准。
数据模型有3种主要类型:
A。概念数据模型:这些模型的设计目的是为了与利益相关者进行沟通,显示不同实体之间的关系并根据业务需求定义其基本属性。它是由ER或UML图表示的抽象版本,用于确认数据项目的目标和范围。
b.逻辑数据模型:这些模型是概念数据模型的精炼版本,并包含业务规则提出的基数、数据类型、约束和验证的详细信息。它还可以使用ER或UML图来定义。
C。物理数据模型:
这些模型是逻辑数据模型的最终版本,其中包括决定的存储选项的所有技术功能和限制,并针对数据的性能、可扩展性、安全性和可用性进行了专门优化。
数据建模技术
我们可以使用多种数据建模技术将数据存储在数据库中:
维度数据建模:
这种类型的数据建模用于数据仓库中的数据分析,并将数据组织为事实(业务事件的数字度量-销售、利润)和维度(提供有关事实顺序、客户的上下文的描述性属性)。
数据仓库数据建模:
数据仓库是一种数据模型,可以将新数据源快速集成到现有模型中。它是仅插入架构,允许历史记录跟踪。它由3个组件组成-中心(核心业务实体和定义它的唯一键)、链接(两个或多个中心的业务键之间的关系)和卫星(包含有关实体的所有上下文数据)。
图数据建模:
图数据模型是为图数据库创建的模型,它表示社交媒体交互等网络形式的数据。它由节点(实体)、属性(属性)和作为边的关系组成。我们可以利用图算法和图查询来对此类模型进行分析。
重要的数据建模挑战
规范化/非规范化
规范化是数据库以减少冗余并提高数据完整性和一致性的过程。需要将分区应用于数据库,以使每个表更简单,具有唯一的键和明确定义的依赖关系,以避免任何插入、更新或删除错误。这将有助于通过减少冗余来节省存储空间,并允许数据具有灵活性、可扩展性、准确性,以便在不影响其他表的情况下进行更改。
但这可能会导致通过复杂连接检索查询时的性能不佳,尤其是对于分布式或大型数据库。因此,我们可以使用非规范化来提供更快的检索。尽管这会增加不一致的风险,但我们需要在两者之间取得平衡。
缓慢变化的维度
缓慢变化的维度是在数据仓库中的历史时间段内存储和管理当前版本和先前版本的维度。SCD有不同类型:
有时您需要存储历史数据以提供全面的数据分析,那就需要使用SCD。
变更数据捕获
变更数据捕获是指跟踪数据库中的变更,然后将其捕获到目标系统中的过程。它使所有系统保持同步,并提供可靠的数据复制和零停机数据迁移。这些是不同类型的CDC:
在ETL中,可以使用CDC从日志、时间或触发器中获取更改,并仅加载和刷新更改的数据。由于它支持实时移动数据,因此它还支持实时分析和数据科学。