利用pydruid来对druid进行复杂查询

阿里云双11来了!从本博客参与阿里云,服务器最低只要86元/年!

  有些时候通过superset来操作查询druid不能完全达到想要的数据分析结果,需要通过pydruid来将数据聚合结果导出到pandas进行更细致的分析,这里简单记录一下pydruid的使用。
  示例1:

res = query.groupby(
    datasource="<表名>",
    granularity={
        "type": "period", 
        "period": "PT5M" #聚合的时间粒度 一小时: PT1H
    },
    intervals="2019-10-15T21:00:00+00:00/2019-10-15T21:56:35+00:00", #时间范围 
    dimensions=[
        "A", 
        "B",
        "C"
    ],  #待聚合的维度字段
    filter=Filter(
        type= 'and',
        fields= [
            Bound("<数值字段>",lower=0,upper=4), # 大于0, 小于4 
            Filter(
                type= 'or',
                fields= [
                    Dimension("A") == "xxxx",
                    Dimension("B") == "yyyy"
                ]
            ) # 需要过滤的字符字段
        ]
    ),
    #post_aggregations={'percent': (Field('count') / Field('rows')) * Const(100))},
    aggregations={  # druid中定义好的聚合操作
        "count": count("count")
    }
)
df = ts.export_pandas() # 可以输出为pandas的DataFrame来进行后续的分析

https://www.jianshu.com/p/bfcb14ecc21a

Python量化投资网携手4326手游为资深游戏玩家推荐:《遇见下载

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论