模型
概述
数据建模是一种分析与设计方法,用于定义分析数据需求,设计满足需求的数据结构,是反应数据需求和设计的数据说明与相关模型图的集合。大数据的数仓建模正是通过建模的方法,更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。
数据建模的好处:
- 企业业务庞大,数据结构复杂,事前规划可以使数据管理更加规范、有序,便于后期进行问题定位;
- 强化事前治理,为数据标准落地提供抓手,保证平台的建表和数据的产出,符合数据标准和数据质量的要求。
功能介绍
数据建模支持数仓规划设计,通过数据引入层、明细数据层、汇总数据层、数据应用层,构建出业务的数据模型,通过数据标准和指标对模型结构进行统一的描述和约束。根据不同的存储引擎与模型定义生成DDL,对建模进行物化生成实际的物理表,利用模型之间的关系以及指标定义自动生成DML用于数据生产,并且根据数据标准生成数据质量作业对物理表的数据进行质量监控。
除此之外,还将建模数据同步给数据资产和数据血缘用于生成相关的统计信息。
数据建模各部分模块功能介绍如表1所示。
表1 数据建模模块功能介绍
| 名称 | 描述 |
|---|---|
| 数仓规划 | 数仓规划支持根据业务场景或业务数据设计数据的分层,使得数据的整个生命周期层次清晰,依赖直观。综合考虑当前应用广泛的数仓分层策略,百度胜算默认将数仓划分为以下四层: |
| 模型审核 | 模型审核支持通过审核流程,提升数据模型、数据指标创建、变更、废弃的严肃性。数据模型的发布状态分为以下三种:草稿、已发布、已废弃。 |
核心概念
表2 核心概念说明
| 名称 | 概念说明 |
|---|---|
| 数据模型 | 数据模型是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。数据模型是指现实世界数据特征的抽象,用于描述一组数据的概念和定义。数据模型管理是指在信息系统设计时,参考逻辑模型,使用标准化用语、单词等数据要素设计数据模型,并在信息系统建设和运行维护过程中,严格按照数据模型管理制度,审核和管理新建和存量的数据模型。数据模型所描述的内容有三部分,分别是数据操作、数据约束和数据结构。 |
| 数据操作 | 数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。 |
| 数据约束 | 数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。 |
| 数据结构 | 数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。 |
| 数仓分层 | 数仓分层是根据业务数据的场景,结合现有应用广泛的数仓理论,将数据按照层次进行划分,使得数据之间的依赖关系更加清晰,数据的生产与加工有迹可循。 |
数仓规划
随着数据的增长,数据治理的难度不断增大。大多数情况下,数据体系是依赖复杂、层级混乱的。如何使得数据能够有秩序地流转,数据的整个生命周期能够清晰明确被感知到。数仓规划是其中重要的一环,通过数仓进行合理科学分层,能够较为有效地梳理数据之间的依赖关系,使得数据清晰明了。百度胜算中数仓分层详细信息如表3所示。
表3 数仓分层详细信息
| 分层类型 | 中文名称 | 英文名称 | 分层描述 | 模型类型 | 命名前缀 |
|---|---|---|---|---|---|
| ODS | 数据引入层 | ODS | 存放未经处理的原始数据,表结构与源系统保持一致。 | 贴源表 | ods_ |
| DWD | 明细数据层 | DWD | 对ods层的数据进行清洗,采用维度退化的方式对数据重新建模。 | 维度表 | dim_ |
| DWS | 汇总数据层 | DWS | 按照业务划分和指标需求,对dwd层的数据进行汇总。 | 汇总表 | dws_ |
| ADS | 数据应用层 | ADS | 存放个性化的统计指标,用于报表输出。 | 应用表 | ads_ |
- ODS:保存最原始的数据,起到数据备份的作用,可以采用parquet等压缩格式;
- DWD:代表的是业务的最小粒度层,对业务数据采用维度模型的方式重新建模(维度退化),为后续的层做准备;
- DWS:关于各个主题的加工和使用,是事实表的聚合值,例如统计各个主题对象7天、30天、90天的行为,例如把主题对象单日的行为聚合起来组成一张多列宽表,关联维度信息后,从不同角度进行统计分析;
- ADS:为各种统计报表提供数据。
模型管理
数据概览
- 单击数据架构>模型,默认进入数据概览页面,可查看各数据分层包含的数据表数量、字段数量以及落标率。
- 单击各数据层的卡片,可查看该分层的详细数据信息。
- 单击贴源表详情、纬度表详情、事实表详情、汇总表详情或应用表详情按钮,可跳转至对应表详情页面。
- 支持单击编辑按钮,修改目标分层的中文名称、英文名称、描述以及表命名前缀。
创建贴源表
- 单击贴源表页签,选择目标主题域或子主题域。
- 单击右上角创建按钮创建贴源表,在创建贴源表页面填写对应参数,单击提交,完成贴源表的创建。
表4 贴源表基本信息参数说明
| 参数 | 描述 |
|---|---|
| 表英文名称 | 贴源表英文名称,支持英文、数字、下划线,长度不能超过128个字符。 |
| 表中文名称 | 贴源表中文名称,支持中文、英文、数字、特殊字符等,长度不能超过128个字符。 |
| 模型责任人 | 模型责任人名称。 |
| 描述 | 贴源表的描述,长度不能超过500个字符。 |
表5 贴源表元数据定义参数说明
| 参数 | 描述 |
|---|---|
| 字段名称 | 字段的名称,以英文开头,支持英文、数字、下划线,以字母开头,长度不能超过128个字符。 |
| 字段中文名称 | 字段的中文名称,支持中文、英文、数字、常见的特殊字符等,不超过128个字符。 |
| 数据类型 | 字段的数据类型,支持STRING、CHAR、VARCHAR、TINYINT、SMALLINT、INT、BIGINT、DECIMAL、DOUBLE、FLOAT、BOOLEAN、BYTES、DATE、TIMESTAMP、ARRAY、MAP、STRUCT。 |
| 类型参数 | 当数据类型为DECIMAL时,需要填写类型设置,用于精度确认。 |
| 关联标准 | 字段支持关联数据标准,用于规范字段。 |
| 主键 | 选择当前字段是否为主键。 |
| 非空 | 是否允许为空。 |
创建维度表
- 单击纬度表页签,选择目标主题域或子主题域。
- 单击右上角创建按钮创建纬度表,在创建纬度表页面填写对应参数,单击提交,完成纬度表的创建。
表6 维度表基本信息参数说明
| 参数 | 描述 |
|---|---|
| 表英文名称 | 维度表英文名称,支持英文、数字、下划线,长度不能超过128个字符。 |
| 表中文名称 | 维度表中文名称,支持中文、英文、数字、特殊字符等,长度不能超过128个字符。 |
| 模型责任人 | 模型责任人名称。 |
| 维度类型 | 维度类型,支持选择普通维度或枚举维度。 |
| 描述 | 维度表的描述,长度不能超过500个字符。 |
| 描述 | 字段描述,长度不能超过64个字符。 |
表7 维度表元数据定义参数说明
| 参数 | 描述 |
|---|---|
| 字段名称 | 字段的名称,以英文开头,支持英文、数字、下划线,以字母开头,长度不能超过128个字符。 |
| 字段中文名称 | 字段的中文名称,支持中文、英文、数字、常见的特殊字符等,不超过128个字符。 |
| 数据类型 | 字段的数据类型,支持STRING、CHAR、VARCHAR、TINYINT、SMALLINT、INT、BIGINT、DECIMAL、DOUBLE、FLOAT、BOOLEAN、BYTES、DATE、TIMESTAMP、ARRAY、MAP、STRUCT。 |
| 类型参数 | 当数据类型为DECIMAL时,需要填写类型设置,用于精度确认。 |
| 关联标准 | 字段支持关联数据标准,用于规范字段。 |
| 主键 | 选择当前字段是否为主键。 |
| 代理键 | 表示维度的唯一键,作用是连接维度表和事实表,为避免数据库结构发生变化带来影响。 |
| 非空 | 是否允许为空。 |
| 描述 | 字段描述,长度不能超过64个字符。 |
创建事实表
- 单击事实表页签,选择目标主题域或子主题域。
- 单击右上角创建按钮创建事实表,在创建事实表页面填写对应参数,单击提交,完成事实表的创建。
表8 事实表基本信息参数说明
| 参数 | 描述 |
|---|---|
| 表英文名称 | 事实表英文名称,支持英文、数字、下划线,长度不能超过128个字符。 |
| 表中文名称 | 事实表中文名称,支持中文、英文、数字、特殊字符等,长度不能超过128个字符。 |
| 模型责任人 | 模型责任人名称。 |
| 描述 | 表的描述,长度不能超过500个字符。 |
表9 事实表元数据定义参数说明
| 参数 | 描述 |
|---|---|
| 字段类型 | 字段的类型,支持维度、度量。 |
| 字段名称 | 字段的英文名称,以英文开头,支持英文、数字、下划线,长度不能超过128个字符。 |
| 字段中文名称 | 字段的中文名称,支持中文、英文、数字、常见的特殊字符等,不超过128个字符。 |
| 数据类型 | 字段的数据类型,支持STRING、CHAR、VARCHAR、TINYINT、SMALLINT、INT、BIGINT、DECIMAL、DOUBLE、FLOAT、BOOLEAN、BYTES、DATE、TIMESTAMP、ARRAY、MAP、STRUCT。 |
| 类型参数 | 当数据类型为DECIMAL时,需要填写类型设置,用于精度确认。 |
| 关联标准 | 字段支持关联数据标准,用于规范字段。 |
| 关联维度 | 字段支持关联维度,维度表的代理键字段与当前字段进行关联。 |
| 主键 | 选择当前字段是否为主键。 |
| 非空 | 是否允许为空。 |
| 描述 | 字段描述,长度不能超过64个字符。 |
创建汇总表
- 单击汇总表页签,选择目标主题域或子主题域。
- 单击右上角创建按钮创建汇总表,在创建汇总表页面填写对应参数,单击提交,完成汇总表的创建。
表10 汇总表基本信息参数说明
| 参数 | 描述 |
|---|---|
| 表英文名称 | 表英文名称,支持英文、数字、下划线,长度不能超过128个字符。 |
| 表中文名称 | 表中文名称,支持中文、英文、数字、特殊字符等,长度不能超过128个字符。 |
| 模型责任人 | 模型责任人名称。 |
| 描述 | 表的描述,长度不能超过500个字符。 |
表11 汇总表元数据定义参数说明
| 参数 | 描述 |
|---|---|
| 字段名称 | 字段的英文名称,以英文开头,支持英文、数字、下划线,长度不能超过128个字符。 |
| 字段中文名称 | 字段的中文名称,支持中文、英文、数字、常见的特殊字符等,不超过128个字符。 |
| 数据类型 | 字段的数据类型,支持STRING、CHAR、VARCHAR、TINYINT、SMALLINT、INT、BIGINT、DECIMAL、DOUBLE、FLOAT、BOOLEAN、BYTES、DATE、TIMESTAMP、ARRAY、MAP、STRUCT。 |
| 类型参数 | 当数据类型为DECIMAL时,需要填写类型设置,用于精度确认。 |
| 关联标准 | 字段支持关联数据标准,用于规范字段。 |
| 关联维度/指标 | 字段若是维度,则关联维度;字段若是度量指标,则关联指标。 |
| 主键 | 选择当前字段是否为主键。 |
| 非空 | 是否允许为空。 |
| 描述 | 字段描述,长度不能超过64个字符。 |
关联维度/指标
选择了统计维度才可配置。
- 关联类型:统计维度、衍生指标、复合指标;
- 关联对象:如果是统计维度,先选维度,后选字段;如果是指标,直接选择指标即可。
创建应用表
- 单击应用表页签,选择目标主题域或子主题域。
- 单击右上角创建按钮创建应用表,在创建应用表页面填写对应参数,单击提交,完成应用表的创建。
表12 应用表基本信息参数说明
| 参数 | 描述 |
|---|---|
| 表英文名称 | 表英文名称,支持英文、数字、下划线,长度不能超过128个字符。 |
| 表中文名称 | 表中文名称,支持中文、英文、数字、特殊字符等,长度不能超过128个字符。 |
| 模型责任人 | 模型责任人名称。 |
| 描述 | 表的描述,长度不能超过500个字符。 |
表13 应用表元数据定义参数说明
| 参数 | 描述 |
|---|---|
| 字段名称 | 字段的英文名称,以英文开头,支持英文、数字、下划线,长度不能超过128个字符。 |
| 字段中文名称 | 字段的中文名称,支持中文、英文、数字、常见的特殊字符等,不超过128个字符。 |
| 数据类型 | 字段的数据类型,支持STRING、CHAR、VARCHAR、TINYINT、SMALLINT、INT、BIGINT、DECIMAL、DOUBLE、FLOAT、BOOLEAN、BYTES、DATE、TIMESTAMP、ARRAY、MAP、STRUCT。 |
| 类型参数 | 当数据类型为DECIMAL时,需要填写类型设置,用于精度确认。 |
| 关联标准 | 字段支持关联数据标准,用于规范字段。 |
| 关联维度/指标 | 字段若是维度,则关联维度;字段若是度量指标,则关联指标。 |
| 主键 | 选择当前字段是否为主键。 |
| 非空 | 是否允许为空。 |
| 描述 | 字段描述,长度不能超过64个字符。 |
通用操作
查看模型详情
- 单击模型右侧的详情按钮,默认进入该模型的基本信息页面,可查看当前模型的基本信息、元数据信息、逆向配置信息(逆向建模后)和物化表信息(物化后)。
- 单击历史版本页签,可查看当前模型的发布时间、发布人、描述。
- 在历史版本页面单击操作列的查看按钮,可查看版本快照,了解那些信息是新增内容、修改内容和删除内容。
发布与管理表
数据模型生命周期分为三个状态,分别是草稿、已发布、已废弃。
- 草稿:表示数据模型处于草稿状态,未发布的数据模型无法被使用,用户可以对模型进行编辑、发布、删除操作。
- 已发布:表示数据模型处于已发布状态,已发布的数据模型可以被使用,用户可以对模型进行编辑、物化、废弃操作。
- 已废弃:表示数据模型处于已废弃状态,已废弃的数据模型无法被使用,用户可以对模型进行删除操作。
发布
新建的数据模型处于草稿状态,需要发布之后才可以被正式使用。在右侧的操作栏单击“发布”按钮,即可进行发布操作。发布后,数据模型变更为已发布状态。
废弃
对于已发布的数据模型,如果不再使用,则可以进行废弃。单击右侧操作栏中的“废弃”按钮,可以对指标进行废弃操作。
当模型被其他模型或指标引用时,不支持废弃操作。
编辑
- 当数据模型处于草稿状态时,单击编辑按钮,可以对数据模型的信息进行编辑修改,单击提交之后,保存用户修改之后的模型。
- 当数据模型处于已发布状态时,单击编辑按钮,可以对数据模型的信息进行编辑修改,单击提交之后,会创建当前模型的子版本。子版本存储用户修改之后的模型,并处于草稿状态。当子版本发布之后,会覆盖父版本的模型,并处于已发布状态。
删除
当模型处于草稿或已废弃状态时,单击删除按钮,可以对模型进行删除。
模型物化
当模型处于已发布状态时,支持对模型进行物化操作,为数据模型创建同名物理表。
批量物化
- 选中已发布状态的一个或多个模型,单击批量物化按钮展开下拉选项,选择“批量物化”,并配置物化参数,可对模型进行批量物化。
如果初次物化,所选库中已有同名的数据表,则物化失败。
表14 物化配置信息介绍
| 参数 | 描述 |
|---|---|
| 数据源类型 | 数据源的类型,支持Doris和Iceberg |
| 数据目录 | 选择数据所属的目录。 |
| 数据库 | 与百度胜算的Catalog.Schema对齐映射。 |
| 数据表类型 | 数据源类型选择Doris时,仅支持选择明细表;数据源类型选择Iceberg时,支持选择内部表和外部表。 |
| BOS存储位置 | 数据表类型选择外部表时,需要输入BOS 存储位置。 |
| BOS Access Key | 数据表类型选择外部表时,需输入BOS Access Key。 |
| BOS Secret Key | 数据表类型选择外部表时,需输入BOS Secret Key。 |
| 物化类型 | 增量发布:将新建或本次变更的内容物化至对应物理表。删除重建:将已物化的表删除,重新物化本次发布的表。 |
外部表需指定外部存储路径,数据保留在用户自定义位置,删除表不会删除数据。
- 完成物化配置之后,单击下一步,可展示物化结果。
- 当物化状态为成功时,表示物化成功。当物化状态为失败时,可单击重试按钮;支持右下角单击全部重试按钮对失败模型批量重试。右下角单击确定按钮结束物化操作。
- 物化成功后,单击查看按钮,跳转至元数据管理页面查看详情(数据源类型为Doris,不显示“查看元数据”)。
- 在物化完成后,在目标表页面,也可单击详情按钮,跳转至元数据管理页面查看详情。
上次物化结果
选中已发布状态的一个或多个模型,单击批量物化按钮展开下拉选项,选择上次物化结果,可查看上次物化结果。
逆向建模
逆向数据库
- 选中任意表,然后选择目标目录,单击逆向建模>逆向数据库。
- 在逆向建模弹窗,首先选择数据表:选择所属主题域和数据源类型。
- 单击下一步,配置数据表前缀,选择已解析前缀,然后单击开始逆向建模。
- 进入逆向建模结果流程,待任务完成后,可在表单中查看建模结果。
- 若建模成功,单击查看按钮,可跳转至逻辑实体详情页。若建模失败,可单击重试按钮;支持单击右下角全部重试按钮。右下角单击确定按钮结束逆向建模操作。
上次逆向结果
选中已发布状态的一个或多个模型,单击逆向建模按钮展开下拉选项,选择上次逆向结果,可查看上次逆向结果。
逆向详情页
- 首次逆向成功:详情页面显示逆向配置信息,不显示物化表信息。
- 模型发布之后:详情页面显示物化表信息、逆向表信息。
评价此篇文章
