使用过有数BI的同学想必都了解或使用过它的自助取数功能,用户通过可视化拖拽式操作即可快速取数,也可通过 SQL 自定义取数。
可视化取数的用户目标群体为业务人员,帮助他们快速完成相对简易的取数内容实现业务自助;SQL取数的目标群体为更专业的技术人员,以便他们更灵活的查询与取数。
1.可视化取数现状与痛点
业务人员借助可视化取数,无需自己配置数据模型,即可使用有相应查询权限的模型进行自助查询,通过双击/拖拽取数字段来一键筛选获取想要的数据。释放了数据分析师日常取数的人力的同时也降低了业务人员获得取数结果的成本。
但拥有这些较为基础的取数功能与固定的数据模型逐渐无法支撑日益发展、快速变化的业务需求。业务人员仍然面临着以下的痛点:
很多情况下要用于筛选的数据在放置在不同模型的表中,市面上大多数可视化取数功能的数据筛选仅支持在同一模型内操作。在另一个模型中筛选后手动复制内容去另一个模型过于繁碎且支持的数据量有限。这些情况需要寻求技术人员帮忙;
模型内表关联在取数中非常常用,但业务人员表示模型关联在业务上看似好理解但真正写起SQL来很容易出错或写出的代码效率很低,还是需要寻求技术人员的帮助;
每次取数都需要从基础模型中重新开始,无法在基于一定筛选条件的查询结果之上分步做二次查询。
2.解决方案
我们的目标是帮助业务人员在可视化取数内完成更多的取数需求,做出更优的业务决策,将一些SQL取数中相对重要、使用率很高、能够在可视化取数中使用拖拉拽的方式完成的语句做成可视化样式呈现出来。达成不需要懂代码也能实现业务自助,提高可视化取数易用性的使命。
针对以上问题,我们在近几个月的迭代中,新增了以下三个功能:
(1)查询结果支持保存为取数模型
任意取数查询结果可保存为取数模型,支持关联其他模型、跨模型筛选字段、新建计算字段、保存、导出、分享等所有可视化取数功能。当数据团队为业务准备好基础取数模型后,业务人员可以基于这些模型实现分步骤查询,即基于查询结果再做二次查询,能最大程度满足灵活取数需求。
(2)当前模型筛选支持跨模型关联字段
可以直接使用另一个模型内字段对当前模型字段做跨模型筛选,在先前手动复制维值基础之上支持大数据量与动态筛选。业务人员只需在当前模型中选择需要用哪个模型中的哪个字段来筛选就可以完成目标取数,实现了通过业务层面的逻辑含义操纵数据层面的取数。
(3)支持两模型关联(内关联、左关联、右关联、完全外部关联)
任意查询结果可关联其他模型(内关联、左关联、右关联、完全外部关联),支持一个或多个条件。数据团队不再需要针对每个具体取数需求定制模型,只需要提供基础模型即可,业务人员可以从中挑选需要的模型灵活组合取用,从而降低模型制作成本和需求反复沟通成本,提升业务人员取数效率。
3.应用案例
3.1 案例场景&目标
假设现在有两张模拟表,分别为客户贷款表、客户存款表。
需要查询贷款300万以上的客户中存款为800万元以下的客户名单,再保留一份此客户名单对应的贷款数与存款数放在同一张表内以便后续业务工作。
3.2 取数前准备
前期技术人员完成数据模型的建立,为后续业务人员的取数分析做准备。
在数据源中建立连接:上传客户贷款表与客户存款表
新建数据准备:完成清洗、聚合、等字段级处理,输出,发布
数据落库并建立数据模型:客户贷款与客户存款
3.3 具体操作步骤
(1)筛选客户贷款模型
在用于当前取数的数据模型内选择客户贷款模型,拖入与贷款用户相关的字段(贷款日期、客户姓名、城市、贷款金额)放入列中,通过数据筛选贷款金额字段获取贷款数大于300万元的客户,点击查询后,将这份查询结果保存为取数模型。
(2)筛选客户存款模型
与第一步相同的方式,在用于当前取数的数据模型内选择客户存款模型,拖入与贷款用户相关的字段(存款日期、客户姓名、城市、存款次数、存款金额)放入列中,通过数据筛选存款金额字段获取贷款数小于800万元的客户,点击查询后,得到对应查询结果。
(3)跨模型筛选字段
将客户姓名字段放入数据筛选中,选择用户筛选的模型-先前保存的“贷款0824”取数模型,选择客户姓名为跨模型筛选匹配字段,选择使用全部内容,配置完成后就将这份客户名单作为条件来筛选当前存款客户名单。
(4)得到最终查询结果——符合需求的客户名单
点击上方查询,会出现如下我们需要的最终查询结果:贷款300万以上的客户中存款为800万元以下的客户名单(模拟表)。
如果仅需这批客户的名单,复制[客户姓名]单列即可,是以英文逗号隔开的一组值,复制后保存在粘贴板内,可以直接使用。
如果想要Excel名单,可直接将此查询结果导出Excel,保留想要的字段即可。
如果想在可视化取数内保留此名单未来继续使用,同之前的操作在更多处保存为新的取数模型,仅拉出其中的客户姓名。
(5)关联模型
如果我们还想保留一份此客名单户对应的贷款数与存款数放在同一张表内以便后续业务工作,在刚才的查询结果页面,点击更多图标,选择“创建关联模型”。
左侧当前取数结果为查询1-贷款300万以上的客户中存款为800万元以下的客户名单,关联模型选择之前保存的取数模型“贷款0824”,选择左关联,条件为两表之间客户姓名相等后即成功新建了一个关联取数模型。
在数据模型下选中取数模型 - 客户贷存0824,可以看到模型信息已经是关联后的表与字段了:
可以根据想要查看的内容拖入字段放进中,下方是客户姓名、存款日期、存款金额(万元)、贷款日期、贷款金额(万元)在一张表内呈现,达成了最初的需求场景目标: