我如何使用 Keen IO 显示每个用户的最新事件?

How can I show the most recent events per user with Keen IO?

假设您有一个名为 "survey-completed" 的 Keen IO 集合,其中包含与以下模式匹配的事件:

keen.id: <unique autogenerated id>
keen.timestamp: <autogenerated overridable timestamp>
userId: <hex string for user>
surveyScore: <integer from 1 to 10>
...

您将如何创建一份报告每个在给定时间内响应一项或多项调查的用户的最新满意度分数(例如作为一周)?

没有真正优雅的方法来实现它,但对于给定的 userId 你可以成功地 return 你的最新事件创建一个 count 查询 group_by on [surveyScore, keen.timestamp] and an order_by on the keen.timestamp property. You will want to set limit=1 到 select 只有最近的 surveyScore

如果您想使用 extraction,最直接的方法是 运行 将 property_names 设置为 ["userId","keen.timestamp","surveyScore"] 的提取。收到结果后,您可以进行一些客户端 post 处理。如果您想查看所有 userIds,这可能是最好的方法。

如果您对给定的 userId 感兴趣并想使用 extraction,您可以 运行 在 userId eq X 上使用过滤器进行提取,定义可选参数 latest 设置为 latest=1latest 属性 是一个整数,包含要提取的最近事件的数量。注意:使用 latest 将调用 keen.created_at 时间戳而不是 keen.timestamp (https://keen.io/docs/api/#the-keen-object)。