You need to enable JavaScript to run this app.
文档中心
大数据研发治理套件(私有化)

大数据研发治理套件(私有化)

复制全文
模型管理
维度建模配置
复制全文
维度建模配置

在实际业务中,会有无法预先加工宽表来满足业务灵活多维分析诉求的场景。针对这类场景,指标平台提供了基于用户查询动态关联数据表查询的能力。
基于维度建模理论,通过单一事实来源与多维度表构建自动关联关系,在用户选择指标、维度时将会自动判断需要关联的数据表并动态生成关联SQL查询数据。
Image

基本概念

概念

说明

维度建模

维度模型是数仓设计的一种方法,旨在以业务视角构建组织数据,更易于面向数据分析场景。

事实表

存储业务过程中的事件或事实,例如支付金额、数量等,通常事实表内会保留一些退化维(各种id),作为关联维表的外键。

维表

描述事实表中度量数据的背景信息,如时间、地点、产品、客户等,通常维表会对应描述一个维度实体,这类维度实体会在事实表中保留一个退化维度(id)作为与维表的关联键。

主键

标识数据模型的唯一不重复行,在维表关联时,通常使用维表主键(一个或多个)与事实表中存储的外键进行关联。

外键

标识引用另外一张数据表的字段,在维度建模中通常为引用维表的主键字段。

星型模型

最简单的维度建模结构,由一个中心事实表和多个维表组成,维表之间相互独立没有层级关系,由于维表位于中心事实表周围类似星星的形状因此得名。
Image

雪花模型

星型模型的扩展,维表可以进一步扩展多层级,用于更复杂的业务关系分析,如订单事实表中有包含商品的信息,同时商品维表中还有包含商品分类的描述信息等。
Image

功能介绍

基础模型配置

  1. 登录 DataLeap 控制台,进入指标平台

  2. 在页面右上角的业务线下拉列表中,选择要管理的业务线。

  3. 选择指标管理 > 模型管理,进入模型管理页面。

  4. 单击新建模型按钮,在弹出的窗口中,设置参数信息,完成模型创建。详细配置说明可参见创建模型

    注意

    当前仅部分模型支持动态关联,具体规则如下:

    • 事实表与维表需要自动关联时必须同源同集群。
    • 当前仅ByteHouseABI-ByteHouseClickHouse支持动态关联。
    • 关联使用物理引擎Join,性能受限于引擎能力和集群资源,如果数据量过大可能导致查询失败。

    当选择的模型类型支持维度建模自动关联时,将会展示相应配置信息。
    Image

    配置项

    说明

    模型类型

    遵循维度建模理论,需要定义模型为事实表、维表。
    Image

    自动关联

    开启自动关联后,该模型才会按维度建模方式寻找可关联模型构建关联关系。

事实表配置

在定义关联维度时,可在详细配置弹窗中将维度设置为外键,相关参数说明可参见配置并发布模型。在模型发布后,系统将会自动寻找可关联的维表进行关联,自动关联逻辑请参见附录:自动关联逻辑说明
Image

维表配置

维表同样可以设置外键,用以构建雪花模型。

注意

只有维表发布成功以后才会构建关联模型。

全量维表配置

通常情况数仓设计维表都是全量快照维表,需要根据业务的查询需求来区分具体如何配置:

  • 场景一:使用最新维度快照数据分析事实

    每次关联维表时,总以最新分区数据关联分析,此时需要设置维表的过滤条件。
    例如:假设维表按日全量快照,时间(分区)字段为p_date,关联事实时要查询最新快照时,配置模型过滤条件为p_date='${last_date}'
    注:也可以根据诉求自定义使用时间变量选择查询分区,详细参考模型配置中有关时间变量的说明
    Image
    系统将在查询时将替换时间变量,伪代码示意如下:

    --快照维表查询SQL
    select f.p_date as `业务时间`,
           d.city as `维度A`,
           sum(f.amount) as `指标A`
    from
        (
            select p_date,
                   user_id,
                   amount
            from 事实表
            where p_date>='2024-01-01' and p_date<='2024-01-30' --分区条件下推
        ) f 
    left join
        (
            select p_date,
                   user_id,
                   city
            from 维度表
            where p_date='2024-01-30' --假设最新分区为2024-01-30
        ) d
    on 
    f.user_id=d.user_id
    where ...
    group by p_date,d.city
    
  • 场景二:使用历史维度快照数据分析事实

    每次关联维表时,总以与事实业务时间对应的分区数据关联分析,此时需要将业务时间设置为维表主键,在关联时将会使用时间作为关联键关联。

    注意

    使用历史维度快照关联对引擎负载较大,查询性能较差,这类场景诉求建议直接加工汇总宽表分析

拉链表配置

数仓针对缓慢变化维通常会设计拉链表存储以节省存储空间,此时在进行维度关联时有特殊的关联查询语法。拉链维表通常有两个时间字段,分别对应开链时间和封链时间,需要在业务时间配置处设置,详细说明可参见字段配置
Image
系统将在查询时针对拉链表做特殊适配,伪代码示意如下:

--拉链维表查询SQL
select f.p_date as `业务时间`,
       d.city as `维度A`,
       sum(f.amount) as `指标A`
from
    (
        select p_date,
               user_id,
               amount
        from 事实表
        where p_date>='2024-01-01' and p_date<='2024-01-30' --分区条件下推
    ) f 
left join
    (
        select user_id,
               city,
               start_date, --开链时间
               end_date    --封链时间
        from 维度表
        where end_date>'2024-01-01' --分区条件下推
    ) d
on 
f.user_id=d.user_id and f.p_date>=d.start_date and f.p_date<d.end_date
where ...
group by f.p_date,d.city

场景三:使用最新维度快照数据分析事实

由于拉链表的特殊性,如果使用最新维度快照数据分析时,可以直接视为全量快照表(不需要用到特殊的开链、封链关联语句),只需要在维表模型过滤条件中指定最新分区即可。
例如:设拉链表开链字段为start_date、封链字段为end_date,关联事实时要查询最新快照时,配置模型过滤条件为end_date='9999-12-31'(仅示意,实际以etl中写死的封链时间为准)。

指标专题配置

在进行维度模型构建时,会受限于专题指定路由的数据表,在不同专题配置的模型范围下有可能构建不同的维度模型,可以在指标字典 >指标专题 > 某个指标专题详情页 > 关联模型页签下,查看该专题下自动关联的维度模型以及模型上的详细字段信息。
Image

附录:自动关联逻辑说明

关于维表和事实表自动关联有一定规则和限制约束,具体规则如下:

  1. 一个星型、雪花模型仅包含一个事实表。
  2. 会基于专题配置限制模型构建范围,仅在专题能配置的事实表、维表会参与自动关联。
  3. 当事实表上配置的外键的维度可与绑定相同维度并覆盖全部主键的维表进行关联。
  4. 构建维表关联关系不可成环,采用宽度优先构建法以事实表为基准一层一层寻找可关联的维表进行构建,当向下层构建时发现有相同维表则不进行关联。

Image

最近更新时间:2025.02.27 17:51:12
这个页面对您有帮助吗?
有用
有用
无用
无用