数仓建表规范是从数仓管理的角度,对数仓场景下的建表流程进行约束,从而提升开发效率,快速追踪数据链路,并最终保障交付质量。
新建数据表时,支持对表名、业务元数据等内容进行自动校验,结合建表规范提前识别问题,减少后期数据管理的成本,提升数据建模质量。
1 使用场景
数仓规范化建表,统一规范维护 LAS、EMR、ByteHouse CE 等类型的元数据信息。
2 约束限制
创建规范后,仅规范所有者可执行全部操作,其他人仅可执行查看、复制操作。
3 前提条件
已开通湖仓一体、分布式数据自治或 DataOps敏捷研发解决方案。详细操作说明请参见 DataLeap 服务信息。
4 操作步骤
- 登录 DataLeap 控制台。
- 选择智能市场 > 数仓建表规范,单击进入控制台按钮,进入数仓建表规范页面。
- 可查看当前租户下的所有规范内容,并执行以下操作:
新建建表规范
- 单击新建按钮,进入新建建表规范页面,设置建表规范信息。
- 可以模拟建表体验,进行建表规范预检查。
- 单击规范预检查按钮,在弹出的窗口中,选择要检查的对应引擎下的数据库。
- 单击确定按钮,在弹出的建表规范预检查侧拉窗口中,设置建表信息。
- 单击检查结果按钮,检测规范内容的正确性。
说明
本步骤仅检查建表内容是否符合规范,不会真正创建对应的数据表。
- 单击提交按钮,完成规范创建。
新建建表规范相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
参数 | 说明 |
---|
基本信息 |
*规范名称 | 规范的简单定义,自行设定。
规范名称由中文、字母、数字或下划线组成,长度不超过50个字符。 |
描述 | 规范的描述信息,长度不超过200个字符。 |
规范文档链接 | 规范的详细定义文档的链接,用户可通过这个规范文档了解当前规范的实际内容和配置。 |
*所有者 | 规范的所有者,默认为规范的创建者,不可编辑。 |
*类型 | 规范的类型,仅支持公开,默认选中,不可编辑。 |
规则设置 |
规则填写 | 设置建表规范的规则,支持采用 JSON 语法格式,对库或项目下相关表名、物理元数据、标签元数据等进行检查。
支持的检查项和对应参数名如下,并提供相应的规则检查示例供参考。 表名:tableName,通过设置一些列规则来进行表名的规则校验,支持正则。 "tableNameChecks": [
{
"checkKey": "tableName",
"operator": "Match",
"compareKey": "(ods
}
]
物理元数据检查:表的物理元数据检查,支持以下内容,可根据实际的业务侧需求选一项或者多项内容配置。 - 表描述:tableComment,支持非空、空值或不等于表中文名等,按实际业务需求,样例中举例为非空检查。
- 表存储格式:storageFormat,支持枚举值、非空或空值检查等,样例中为枚举值检查。
- 表主键:tablePrimaryKey,支持枚举值、非空或空值检查等,样例中为非空检查。
"tablePhysicalMetaChecks": [
{
"checkKey": "tableComment",
"operator": "NotNull"
},
{
"checkKey": "storageFormat",
"operator": "IN",
"compareValues": [
"parquet"
]
},
{
"checkKey": "tablePrimaryKey",
"operator": "NotNull"
}
]
标签元数据检查:标签类元数据检查,支持以下内容,可根据实际的业务侧需求选一项或者多项内容配置。 - 表中文名:tableCnName,支持枚举值、非空或空值检查等,样例中为非空检查。
- 表产品线:productLine,支持枚举值、非空或空值检查等,样例中为空值检查。
- 表业务域:businessDomain,支持枚举值、非空或空值检查等,样例中为枚举值检查。
- 表主题:theme,支持枚举值、非空或空值检查等,样例中为枚举值检查。
- 表层级:layer,支持枚举值、非空或空值检查等,样例中为枚举值检查。
- 表状态:status,支持枚举值、非空或空值检查等,样例中为空值检查。
- 表标签:tag,支持枚举值、非空或空值检查等,样例中为空值检查。
- 专题:album,支持枚举值、非空或空值检查。
"tableBusinessMetaChecks": [
{
"checkKey": "tableCnName",
"operator": "NotNull"
},
{
"checkKey": "productLine",
"operator": "Null"
},
{
"checkKey": "businessDomain",
"operator": "IN",
"compareValues": [
"我是个测试的业务域1",
"我是个测试的业务域2"
]
},
{
"checkKey": "theme",
"operator": "IN",
"compareValues": [
"我是个测试的主题1",
"我是个测试的主题1"
]
},
{
"checkKey": "layer",
"operator": "IN",
"compareValues": [
"ODS"
]
},
{
"checkKey": "status",
"operator": "Null"
},
{
"checkKey": "tag",
"operator": "Null"
}
]
|
规范预检查信息 |
*引擎类型 | 进行建表规范预检查的数据库的引擎类型,支持 EMR、LAS 和 Bytehouse CE 三个选项,下拉可选。
仅显示当前项目已开通的引擎类型。 |
*引擎实例 | 数据库引擎实例。 - 当引擎类型选择 LAS 时,会自动选择默认实例 default。
- 当引擎类型选择 EMR 时,可下拉选择运行中的所需实例。
- 当引擎类型选择 Bytehouse CE 时,可下拉选择运行中的所需实例。
说明 未正常运行的实例将灰显展示在下拉列表中,不可选择。
|
数据库 | 进行建表规范预检查的数据库。
选择引擎实例后,下拉可选已创建的绑定该引擎的数据库。 |
建表规范预检查信息 | 创建数据表时填写的信息,仅用于检查建表规范,相关参数说明请参见Table管理。 |
设置生效范围
单击列表中某条建表规范操作列的生效范围按钮,在弹出的生效范围侧拉窗口中,可以新增数据库或搜索、移除已添加的数据库,来更新规范生效的数据库范围。设置生效范围后,在规范已生效的数据库下建表时,则需符合相应的规范要求。
新增数据库相关参数说明如下表所示。
参数 | 说明 |
---|
*引擎类型 | 生效数据库的引擎类型,支持 EMR、LAS、Bytehouse CE 和 EMR Serverless Spark 四个选项,下拉可选。 |
*引擎实例 | 数据库引擎实例。 - 当引擎类型选择 LAS 时,会自动选择默认实例 default。
- 当引擎类型选择 EMR 时,可下拉选择运行中的所需实例。
- 当引擎类型选择 Bytehouse CE 时,可下拉选择运行中的所需实例。
- 当引擎类型选择 EMR Serverless Spark 时,会自动选择默认实例 serverless_spark_default。
|
*数据库 | 规范生效的数据库。
选择引擎实例后,下拉可选已创建的绑定该引擎的数据库,支持选择多个。 |
搜索建表规范
在规范搜索框中,输入规范名称关键词后按回车键,可以查看符合条件的规范信息列表。
查看规范详情
单击列表中某条建表规范的规范名称,可以查看该规范的详情。
编辑建表规范
单击列表中某条建表规范操作列的编辑按钮,在编辑建表规范页面,可以修改该规范信息。
复制建表规范
单击列表中某条建表规范操作列的复制按钮,复制该规范的规则信息并进入相应编辑页面,可以快速创建新的规范信息。
删除建表规范
单击列表中某条建表规范操作列的 ... > 删除按钮,在弹出的确认删除对话框中,单击删除按钮,删除该建表规范。删除后,引用该规范的数据库将全部失效。
更改所有者
单击列表中某条建表规范操作列的 ... > 更改所有者按钮,在弹出的变更所有者窗口中,可以将该规范的所有者变更为租户下的其他账号。
开启/关闭生效状态
单击列表中某条建表规范的生效状态按钮,在弹出的确认对话框中,单击相应的启用或停用按钮后,可以开启/关闭该规范的生效状态。关闭后,引用当前规范的数据库,将全部失效。
5 后续操作
建表规范设置生效范围后,在以下场景中建表时,若触发了建表规范,会进行相应的检查。检查通过后才可建表成功。