千家信息网

Java中怎么查询druidAPI

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Java中怎么查询druidAPI,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。maven依赖 in.zapr.druid dru
千家信息网最后更新 2026年11月03日Java中怎么查询druidAPI

Java中怎么查询druidAPI,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

maven依赖 in.zapr.druid druidry 2.1

1 组装json

//时间范围:Interval DateTime start = new DateTime(DateUtils.getToday()+"T00:00:00.000+08:00"); DateTime end = new DateTime(); Interval interval = new Interval(start,end); // 粒度 Granularity granularity = new SimpleGranularity(PredefinedGranularity.ALL); // 过滤 DruidFilter todayUvEventFilter = new SelectorFilter("event","3001"); DruidFilter todayUvPageIdFilter = new SelectorFilter("page_id","101"); // and过滤 DruidFilter todayUvFilters = new AndFilter(Arrays.asList(todayUvEventFilter,todayUvPageIdFilter)); // HyperUnique 聚合 DruidAggregator todayUvAggregator = new HyperUniqueAggregator("today_uv","user_id"); // Filteres聚合 DruidAggregator todayUvAggregators = new FilteredAggregator(todayUvFilters,todayUvAggregator);

DruidFilter articleUvEventFilter = new SelectorFilter("event","3001"); DruidFilter articleUvPageIdFilter = new SelectorFilter("page_id","102"); DruidFilter articleUvFilters = new AndFilter(Arrays.asList(articleUvEventFilter,articleUvPageIdFilter)); DruidAggregator articleUvAggregator = new HyperUniqueAggregator("article_uv","user_id"); DruidAggregator articleUvAggregators = new FilteredAggregator(articleUvFilters,articleUvAggregator);

DruidFilter ypsUvEventFilter = new SelectorFilter("event","3001"); DruidFilter ypsUvPageIdFilter = new SelectorFilter("page_id","201"); DruidFilter ypsUvFilters = new AndFilter(Arrays.asList(ypsUvEventFilter,ypsUvPageIdFilter)); DruidAggregator ypsUvAggregator = new HyperUniqueAggregator("yps_uv","user_id"); DruidAggregator ypsUvAggregators = new FilteredAggregator(ypsUvFilters,ypsUvAggregator);

DruidFilter messageUvButtonIdFilter = new SelectorFilter("button_id","10102"); DruidFilter messageUvFilters = new AndFilter(Arrays.asList(messageUvButtonIdFilter)); DruidAggregator messageUvAggregator = new HyperUniqueAggregator("message_uv","user_id"); DruidAggregator messageUvAggregators = new FilteredAggregator(messageUvFilters,messageUvAggregator);

// PostAggregator DruidPostAggregator articleUvArticleField = new HyperUniqueCardinalityPostAggregator("article_uv","article_uv"); DruidPostAggregator todayUvArticleField = new HyperUniqueCardinalityPostAggregator("today_uv","today_uv"); DruidPostAggregator articleRatePostAgg = ArithmeticPostAggregator.builder().name("article_rate").function(ArithmeticFunction.DIVIDE).fields(Arrays.asList(articleUvArticleField,todayUvArticleField)).build();

DruidPostAggregator ypsUvYpsField = new HyperUniqueCardinalityPostAggregator("yps_uv","yps_uv"); DruidPostAggregator todayUvYpsField = new HyperUniqueCardinalityPostAggregator("today_uv","today_uv"); DruidPostAggregator ypsRatePostAgg = ArithmeticPostAggregator.builder().name("yps_rate").function(ArithmeticFunction.DIVIDE).fields(Arrays.asList(ypsUvYpsField,todayUvYpsField)).build();

DruidPostAggregator messageUvMessageField = new HyperUniqueCardinalityPostAggregator("message_uv","message_uv"); DruidPostAggregator todayUvMessageField = new HyperUniqueCardinalityPostAggregator("today_uv","today_uv"); DruidPostAggregator messageRatePostAgg = ArithmeticPostAggregator.builder().name("message_rate").function(ArithmeticFunction.DIVIDE).fields(Arrays.asList(messageUvMessageField,todayUvMessageField)).build();

//组装DruidQuery DruidTimeSeriesQuery query = DruidTimeSeriesQuery.builder() .dataSource(druidProperties.getDataSourceOpenPlatform()) .granularity(granularity) .intervals(Collections.singletonList(interval)) .aggregators(Arrays.asList(todayUvAggregators,articleUvAggregators,ypsUvAggregators,messageUvAggregators)) .postAggregators(Arrays.asList(articleRatePostAgg,ypsRatePostAgg,messageRatePostAgg)) .build(); 2 查询 public List queryResult( DruidQuery query) throws ConnectionException, JsonProcessingException, QueryException { ObjectMapper mapper = new ObjectMapper(); String requiredJson = mapper.writeValueAsString(query); log.info(requiredJson); DruidClient client = dataSourceDruidConfig.druidClient(); client.connect(); List responses = client.query(query, HashMap.class); client.close(); return responses; } 3 分析并组装结果 try { List res = queryResult(query); if(res!=null){ DecimalFormat df = new DecimalFormat("0.00%"); for (HashMap hashMap : res){ Map event = (Map)hashMap.get("result");         //小数-》百分比 String yps_rate = String.valueOf(event.get("yps_rate")); entiretUvRateParam.setYps_rate(df.format(Double.parseDouble(yps_rate))); } } } catch (ConnectionException e) { e.printStackTrace(); return null; } catch (QueryException e) { e.printStackTrace(); return null; } catch (JsonProcessingException e) { e.printStackTrace(); return null; } catch (Exception e) { e.printStackTrace(); return null; }

关于Java中怎么查询druidAPI问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

查询 问题 更多 分析 帮助 解答 易行 简单易行 内容 小伙 小伙伴 小数 方法 时间 百分 百分比 知识 篇文章 粒度 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 互联网络科技 新华互联网科技学校 科技企业和互联网企业 互联网科技开发公司 华宇互联网科技 美国互联网黑科技 中国互联网金融科技基金 成都仁贤领冠互联网科技有限公司 深圳市运趣互联网科技有限公司 北京三清互联网科技 隆华科技工业互联网 栖莱科技互联网股份有限公司 移动互联网年度科技创新 哈尔滨屹滨互联网科技有限公司 阿里互联网科技企业 江苏苏星互联网科技有限公司 科技互联网专业务虚会材料 重庆科技产业互联网有哪些 互联网大会出现的黑科技 互联网科技有限公司图片 高科技互联网发展前景如何 互联网公司高科技产品 富国互联网金融科技混合基金 宇信科技在杭州互联网排第几 信承诺互联网科技有限公司 互联网金融金融科技 保山浩联互联网科技有限公司 重庆科技产业互联网有哪些 银川新华互联网科技学校招聘
0