美文网首页
利用python来对druid进行复杂查询

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

作者: DATA_KENGOU | 来源:发表于2019-10-31 17:57 被阅读0次

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

    from pydruid.client import *
    from pydruid.utils.aggregators import longsum,doublesum,count
    from pydruid.utils.filters import Dimension, Filter
    from pydruid.utils.postaggregator import Field,Const
    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来进行后续的分析
    

    相关文章

      网友评论

          本文标题:利用python来对druid进行复杂查询

          本文链接:https://www.haomeiwen.com/subject/bywtbctx.html