You need to enable JavaScript to run this app.
导航
数仓建表规范
最近更新时间:2024.07.16 19:52:11首次发布时间:2023.01.05 23:32:32

数仓建表规范是从数仓管理的角度,对数仓场景下的建表流程进行约束,从而提升开发效率,快速追踪数据链路,并最终保障交付质量。
新建数据表时,支持对表名、业务元数据等内容进行自动校验,结合建表规范提前识别问题,减少后期数据管理的成本,提升数据建模质量。

1 使用场景

数仓规范化建表,统一规范维护 LAS、EMR、ByteHouse CE 等类型的元数据信息。

2 约束限制

创建规范后,仅规范所有者可执行全部操作,其他人仅可执行查看、复制操作。

3 前提条件

已开通湖仓一体分布式数据自治DataOps敏捷研发解决方案。详细操作说明请参见 DataLeap 服务信息

4 操作步骤

  1. 登录 DataLeap 控制台。
  2. 选择智能市场 > 数仓建表规范,单击进入控制台按钮,进入数仓建表规范页面。
    图片
  3. 可查看当前租户下的所有规范内容,并执行以下操作:
    • 新建建表规范

      1. 单击新建按钮,进入新建建表规范页面,设置建表规范信息。
      2. 可以模拟建表体验,进行建表规范预检查。
        1. 单击规范预检查按钮,在弹出的窗口中,选择要检查的对应引擎下的数据库。
        2. 单击确定按钮,在弹出的建表规范预检查侧拉窗口中,设置建表信息。
        3. 单击检查结果按钮,检测规范内容的正确性。

        说明

        本步骤仅检查建表内容是否符合规范,不会真正创建对应的数据表。

      3. 单击提交按钮,完成规范创建。
        新建建表规范相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

      参数

      说明

      基本信息

      *规范名称

      规范的简单定义,自行设定。
      规范名称由中文、字母、数字或下划线组成,长度不超过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 后续操作

建表规范设置生效范围后,在以下场景中建表时,若触发了建表规范,会进行相应的检查。检查通过后才可建表成功。

  • 数据开发 > 任务开发页面,使用 SQL 语句建表时,可通过解析或调试操作,检查是否符合规范。相关操作说明请参见 LAS SQLEMR HSQLByteHouse CE SQLEMR Serverless Spark SQL
  • 数据地图 > 库表管理 > Table管理页面,创建 LAS、EMR Hive、Bytehouse CE 或 LAS Formation 表时,可检查是否符合建表规范。相关操作说明请参见 Table管理