1. 概述
在了解主题模型的原理后,有没有 get 到主题模型的优点了。
本文我们来对主题模型的优势进行一个总结。
2. 数据准备更简单
无需要等更新
抽取数据在使用进行左右合并后需要点击「保存并更新」后才可使用,若表格数据量很大,我们等待它更新完成也需要很长时间。
但主题模型直接建立模型关系后,就可以使用,节省了时间。
操作更简单,避免选择困难症
我们在使用左右合并的时候,经常要选择左合并还是右合并。若我们在不了解表的情况下选错了,可能会导致最后的结果错误。
但主题模型无需考虑合并方式,只需建立连线和选择匹配字段即可,系统用更智能的方式保证数据的完整性。
3. 多表分析更高效
解决数据膨胀问题
在使用左右合容易引入冗余数据,导致结果表格中存在重复的数据行,分析时获得的合计值错误。
而使用主题模型时,系统自动先聚合再合并,不会产生数据膨胀的问题。
模型支撑更多的分析场景,无需进行多次数据处理,强化组件之间的关系和联动
举个例子,我们给「产品表、客户表、订单表、销售员表」建立好模型关系:
想要分析每个销售人员的销售绩效。通过模型,直接从「销售员表」获取销售人员的信息,从「订单表」获取每个销售人员的销售订单数据
想要分析客户在不同产品的购买情况。通过模型,从「客户表」获取客户信息,从「产品表」和「订单表」获取订单和产品数据。
以上分析如果使用左右合并,那就需要进行多次左右合并操作。
并且还需要担心是否有数据膨胀问题,若有数据膨胀,直接合并成一张大宽表进行分析可能会给我们带来麻烦。使用先分组汇总再左右合并的方式可以解决,但合并成多个中间表分别服务不同的分析组件,这会带来很多问题:
进行多次分组汇总、左右合并,操作麻烦
破坏表结构,分组汇总会让数据粒度变粗,无法做多层次分析。例如按「月份」汇总后,就会丢失「天」粒度的数据,不方便之后对「天」进行分析。
割裂组件,用了不同中间表作为数据源的组件之间无法自动建立联动。而使用同一个主题模型的多个组件之间,系统可以自动给它们建立关联。
更好的支持 N:N 计算场景
在左右合并时,N:N 场景会产生笛卡尔积,不利于工程的稳定;且数据产生多倍膨胀,容易获取到错误的计算结果。
但主题模型就能很好的处理 N:N 的计算,不过要注意选择正确的模型结构,详情请参见:主题模型官方使用推荐
4. 计算逻辑更智能,性能更优
抽取数据:提高更新性能
主题模型是逻辑连接,通过「代码」定义的方式将多个表的数据关联起来。减少了中间表的产生,节省了存储空间和更新时间。
直连数据:提高计算性能
在保证分析方便性的前提下,主题模型让更少的数据参与合并,提高计算性能;
1)只对需要合并的表执行合并
若一个主题模型里有十张表,系统不会将这十张表都执行合并。相反它会依据用户拖入组件的维度和指标动态的进行判断,只合并使用到的表。建立模型后,用户可以自由使用这十张表里面的字段进行分析同时,又可以拥有高效的查询性能,避免了不必要的数据合并。
2)先聚合再合并
若原始数据表有 1 亿行数据,聚合后只有 100 万行。那么主题模型这种先聚合再合并的方式能大大减少合并的数据量,显著提高性能。
5. 主题模型的衍生功能
支持1端和N端双向联动过滤
市面上大多数的国产 BI 产品仅支持 1 端表对 N 端表的联动过滤,而主题模型可以实现 1 端表和 N 端表的之间双向联动。
例如下图,我们分别用 N 端表制作了「合同类型销售额」、1 端表制作了「客户信息表」。
这个时候,如果我们想查看「购买合同」是哪些客户购买的,就需要用到 N 端表对 1 端表联动过滤。点击「购买合同」柱子,过滤出相应的客户。如下图所示:
支持计算指标可以复用
FineBI 5.0 中的组件无法复用其他组件的计算字段,每个组件都需单独创建;
而 6.0 主题模型的引入实现了计算字段和参数的复用。即在同一分析主题内的所有组件中,可以直接使用待分析区域定义的计算字段和参数,无需重复创建,提高效率。
计算字段可以使用参数
FineBI 5.0 中,计算字段中不可以使用参数。
FineBI 6.0 的主题模型也对这个问题进行了解决,可以在计算字段中运用参数。
6. 主题模型的局限性
以下是主题模型的一些常见缺陷和情况,建议用户在以下情况下避免使用主题模型:
1)无法发布到公共数据,若需要发布数据,请选择左右合并处理多表;
2)虽然建立模型的操作很简单,但有比较深的理解成本。为避免不当使用,若不够理解主题模型,建议先使用左右合并。
3)在某些场景下,主题模型的过滤有一定的局限性。建立一个模型:多张事实表「销售表、采购表」共享一张维度表「产品表」。
示例数据下载:
如果我们添加过滤组件对「销量表」进行过滤。过滤组件绑定「销量表」的「日期」字段。
当我们过滤出 2022/5/1 的数据时,发现当时只销售了牛奶。然后我们也发现采购数据表也只剩下了牛奶这个产品,这是为什么呢?
原来我们在对「销量表」进行过滤后,会以匹配字段「产品」产生过滤传递。
过滤组件过滤后,销量表只剩「牛奶」,如此传递到「产品表、采购表」,导致我们在查看采购数据的时候,只能看到牛奶数据。
针对这些不足之处,我们会持续努力改进和优化主题模型,以提高其适用性和性能。我们将倾听用户的反馈和需求,并致力于进一步研究和开发更先进的技术,以提供更好的多表分析解决方案。同时,我们鼓励用户在实际应用中灵活选择适合自身需求和数据特点的分析方法和工具。