基于点的数据分析

本文探讨了基于数据点的数据分析方法,尤其是如何验证客户标签和指标准确性。通过简化SQL编写,提高查询性能,以及设计专用的数据浏览器工具,可以显著提升点分析的效率。数据浏览器提供了交互设计和特定分析功能,如快速搜索、最新数据展示和关联数据跳转,以优化数据分析师的工作流程。技术设计方面,提出了利用ClickHouse等高效查询引擎以及元数据管理和安全性控制的解决方案。
摘要由CSDN通过智能技术生成

基于数据点的数据分析

在进行数据分析时,常常会有基于数据点的分析需求。

比如,当做好一个客户画像应用的时候,我们可以得到某个客户的所有标签。如何验证这些标签的准确性呢?一个常用的方法是找到这个客户所有的相关数据,然后基于这些数据去验证标签的准确性。这就是基于数据点的分析,这里的数据点是前面提到的“某个”客户。

同样,当开发完指标之后,也可以尝试找出当前指标粒度(比如经销店粒度)下的所有事实及维度数据,从而进行验证。这里的数据点是“某个”经销店。

(下文为了简单,我们将基于数据点的数据分析简称为“点分析”。)

编写SQL实现点分析

想要完成这样的点分析,一般的做法是编写SQL查询相关数据,然后人为分析数据得到结论。

我们来看一下上面客户画像正确性验证的例子。要验证某一客户的画像,其实是要验证画像中的各种标签。一个典型的标签是客户的价值分级标签,从这个标签可以看出该客户是高价值的,还是低价值的。

从这个标签的计算口径中可以了解到,这个标签会统计客户在整个生命周期内的所有消费。这里的消费包括购买及后续的维修服务、保养服务等。

基于前面文章中建立的数据仓库模型,要实现这一分析,我们需要查询当前最新的业务数据,找出相关事实数据。

以“购买”事实为例,可以编写类似以下代码:

select id from (
    select *,
        -- 先根据订单id进行分组,然后根据时间排序,得到序号
        row_number() over(partition by id order by update_time desc) n
    from order
) order_with_sequence
where n = 1  -- 取序号为1的订单,即最新订单
    -- 筛选客户相关的数据。这里的筛选不能放在内部查询order_with_sequence中完成,其语义不同,可能筛选出非预期的数据。
    and customer_id = '{QUERY_CUSTOMER_ID}';

找到所有这些数据之后,需要进一步判断哪些数据是最终产生了有意义的订单的。这一步通常没有看起来那么简单,因为我们可能需要面对的是查询出来的数百个字段,需要从中找出关键的字段,并弄清楚其业务意义。

指标的计算口径在此时只能作为参考,因为这里的标签验证一定程度上就是为了确认计算口径的正确性。

最准确的答案应当来自当时直接接待该客户的业务人员,但想要联系当时的业务人员来确认也并非易事,通常要耗费较多的沟通时间。

总之,如何确认这些数据需要花费大量的时间查看及对比各个维度的数据。

提高点分析的效率

分析上述基于SQL的点分析过程,除了不可避免的需要人为去查看对比数据进行分析,还有一些可以从技术上提供方法进行优化的。比如:

  • 简化SQL编写的复杂度
  • 提高SQL查询性能
  • 提供工具让分析师更容易的查看数据

下面主要从上述三点来进行分析。

简化SQL编写复杂度

比如上述查询最新订单的查询语句,需要分析人员正确理解如何提取最新数据。这里面涉及了一个不容易让人理解的开窗操作,并使得SQL更复杂了。

一个直接的解决方案是,对每张表的数据都建立一个最新数据的视图,查询最新数据的时候就无需关心这样的开窗操作。

对于订单,我们可以创建如下视图:

create view order_l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值