反馈已提交

网络繁忙

您正在浏览的是 FineBI6.0 帮助文档,点击跳转至: FineBI5.1帮助文档

主题模型的合并原理

  • 文档创建者:Lily.Wang
  • 历史版本:8
  • 最近更新:Lily.Wang 于 2023-08-16
  • 1. 概述

    学习完本篇,你将了解主题模型最重要的合并逻辑。也是主题模型区别于左右合并,给我们带来效率提升的最重要的原理。

    在本篇中也引入了左右合并的合并逻辑,与主题模型进行对比,帮助大家更好的理解。

    2. 左右合并的合并逻辑

    左右合并是行级别的合并,通过共享特定列的值来连接表格。我们来看一下左右合并是怎样合并数据的。

    1) 1 对 1 的合并很简单,我们只需要将两张表按「区域」字段将左右两张表拼接起来。如下图所示:

    2) 那 N 对 1 是如何合并的呢?左侧表由于有了「分店」字段的加入,北京和广州分别有了两条数据。

    右表为了能和左表按「区域」进行拼接,则需要将北京和广州的数据也复制成两条数据。合并结果中我们可以看到大区经理字段膨胀了,标黄单元格就是被复制出来的数据。

    维度字段,比如说上面的「大区经理」被复制后,并不会影响我们的分析。

    但若是指标字段被复制,就会影响我们之后的计算。比如下图,「销售目标」字段为了能够进行匹配,也进行了复制。

    这时候如果我们再对结果表的「销售目标」列进行合计,会发现求和结果已经是错误值了。

    总结一下:维度信息复制不会对结果造成影响,但指标数据被复制,就会造成数据膨胀计算出现问题。

    3) 这种指标字段的复制,在 N 对 N 的时候就带来了彻底的混乱。

    按「区域」字段进行左右合并,北京字段被膨胀为 4 行,「销售额、员工人数」字段也随之被复制,合计值得到都是错误值。

    如此我们总结到:左右合并(类似于 SQL 语句 join)这种行级别的合并,会造成数据复制和膨胀。

    3. 主题模型的合并逻辑

    那么主题模型是怎样一个合并逻辑呢,它为什么不会产生数据的复制和膨胀?

    我们将主题模型的合并逻辑总结为以下两点:

    • 只让参与到分析的字段和关联字段参与主题模型的合并

    • 执行先聚合再合并

    若是拆分成步骤的话,则会有三个步骤:

    ① 系统判断用户在组件中拖入了哪些字段,只有拖入的字段和关联字段参与主题模型合并;

    ② 将数据表先后按「关联字段」和「组件中拖入的维度」对表进行聚合

    ③ 将聚合后得到的表进行合并


    例如下面这个案例:

    想要看各区域的销售额是否达成目标,我们在组件中需要使用的字段就是「区域、销售额、销售目标」:

    ① 系统只取「区域、销售额、销售目标」这三个字段参与主题模型;

    ② 将建立模型的两张表按组件中拖入的维度按「区域」进行聚合;

    ③ 将聚合得到的两张表按「区域」进行合并,得到结果表;

    再来看一个 N对N 的案例:

    想要知道各大区经理团队的人均销售额,我们在组件中需要使用的字段就是「大区经理、销售额、员工人数」

    ① 系统只取「大区经理、销售额、员工人数」以及关联字段「区域」参与主题模型;

    ② 将建立模型的两张表按组件中拖入的维度「大区经理」进行聚合;

    ③ 将聚合得到的两张表按关联字段「区域」进行合并,得到结果表;

    得到结果后,我们在组件中使用 sum_agg(销售额)/sum_agg(人数) 就可以求得人均销售额。

    4. 多表模型如何处理

    如果一个模型中超过了两张表,那么先两两获取模型结果,再对模型结果求模型结果。

    例如我们想使用「事实表1」和「事实表2」里面的字段进行分析,这两张表如何进行合并呢?

    系统会按照主题模型的合并逻辑先让「事实表1、维度表」「事实表2、维度表」两两获得模型结果,使用得到的模型结果合并成最终我们想要使用的表,方便我们进行分析。

    5. 下一篇:主题模型如何保证数据完整

    我们都知道左右合并是通过选择「左合并、右合并、并集合并、交集合并」来确认我们需要保留哪部分数据的。

    主题模型却没有要我们进行选择,那它是如何保证数据的完整的呢?

    主题模型如何保证数据完整 将给大家进行揭秘。

    附件列表


    主题: 添加并编辑数据
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持