首页 > 解决方案 > 如何使用 Druid 编写窗口函数?

问题描述

例如,我想编写 Window 函数,例如sum over (window)

由于 Druid 不支持 over 子句,我如何使用 Druid Native 查询 API 或 SQL API 来实现相同的功能?

标签: sqlwindow-functionsdruid

解决方案


您应该使用 GroupBy 查询。由于 Druid 是一个时间序列数据库,因此您必须指定要从中查询数据的时间间隔(窗口)。您可以对这些数据使用聚合方法,例如 SUM() 聚合。

如果需要,您还可以在聚合中进行额外的过滤,例如“仅对 city=paris 的记录求和”)。您还可以将 SUM 聚合仅应用于所选时间间隔内某个时间窗口中存在的记录。

如果您是 PHP 用户,那么这个包可能对您很方便:https ://github.com/level23/druid-client#sum 我们尝试实现一种简单的方法来查询此类数据。


推荐阅读