如何在 Apache 超集中可视化粘性DAU / MAU

问题描述

我是 Apache 超集的新手,我想实现图表,它应该代表粘性意味着每日活跃用户/每月活跃用户的比率。 使用 Druid 作为数据源。 列存在于我的数据库“userId”、“event”、“timestamp”中。

解决方法

对于 DAU,您只需将 timestamp 截断为每日粒度:

SELECT COUNT(DISTINCT userId) AS dau,FLOOR(timestamp TO DAY) AS day
FROM your_datasource
GROUP BY FLOOR(timestamp TO DAY)

您可以在 SQL Lab 中编写上面的查询,然后单击“可视化”以构建图表。或者,在探索视图中,您可以选择“天”作为时间粒度,然后将指标定义为 COUNT(DISTINCT userId)

对于 WAU/MAU,它有点复杂。传统上,您会使用自联接进行查询,如下所示(在伪 SQL 中):

SELECT ...
FROM your_datasource AS today
JOIN your_datasource AS last_month
ON last_month.timestamp BETWEEN today.timestamp AND (today.timestamp - 30 days)

但是Druid only supports equijoins