Karma是一种全新的数据洞察方式,用一句话表述就是可执行的脑图,多年前我曾向Sean Ellis(增长黑客之父)介绍了Karma的设计,他认为,Karma的模型是最好的企业数据分析方法。Karma有助于确定要进行实验的领域,也有助于从实验中得到结论。
Karma将大大释放数据工程师和产品的工作,我们曾因为一些数据看板类的工作而投入大量前后端研发资源。而业务演进本身则迭代缓慢。数据固然重要,但投入大量资源则显得本末倒置,我们迫切需要一个这样的工具释放生产力。
Karma填补了现有分析能力缺失的一环,和一些传统人群分析系统不同的是,传统分析聚焦某个确定的人群,基于这个人群运用各种分析手段得出结论。但这些分析没有建立数据之间联系,也缺乏面向业务的语义,比如业务想知道A活动真的带来了留资的提升吗,发出去的短信/push带来了多少曝光,这些用户后续n天的行为如何?参与某活动之前X天和之后X天用户的成交UV和GMV、核销、客单价如何变化等等。
Karma将对数据的控制权和解释权交还给业务,最后采用何种方式得到何种结论,业务说了算。这是我认为Karma最为重要的特点,让业务探索问题并决策。
点击左上角,进入数据源配置窗口,点击右上角新增图标
这里定义在数据源中配置的内容是一段SQL,这个SQL原则上是单表查询即
Select col1,col2,col3... from your_table where ...
这种简单结构。比如:
select
task_id,
exe_id,
brand,
user_code uid
from
ods_tmall_prod.task_sale_1h_a
where
datetime = 'latest'
and brand = '${brand}'
and task_id = ${taskid}
越简单越好。Karma底层是基于Trino实现的,所以这里的SQL也是Trino的语法。
我们还需要在SQL选择一个字段,让它的别名为 uid(unique id),这个字段实际上是类似于外键的作用,比如上面的例子中我们选择user_code为uid,Karma将基于这个uid和其他数据源配置的SQL组装起来。用户id、车辆id、message id等都可以作为uid。
上面的例子中,我们配置了一个数据源,这个数据源暴露出2个变量brand和taskid,它们将在后面发挥重要作用。以此类推,我们配置好其他可能用到的数据源,确定对应的uid字段。
Karma并非树状结构,可以执行多个独立的节点,就像我们习惯用脑图表达自己的想法,总是想到哪就画到哪。