Skip to content

ethendev/jdruid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4167f0d · Sep 27, 2018

History

12 Commits
Sep 27, 2018
Sep 15, 2018
Sep 15, 2018
Sep 27, 2018
Sep 18, 2018

Repository files navigation

Jdruid

Build Status Latest release GitHub license

Introduction

Jdruid is a java client for druid.

Example

timeseriesQuery

public void timeseriesQuery() throws IOException {
    SelectorFilter sf1 = new SelectorFilter("host", "www.mejia.wang");
    SelectorFilter sf2 = new SelectorFilter("corpin", "2852199100");

    LongSumAggregator longSum = new LongSumAggregator("pv","count");
    HyperUniqueAggregator hyperUnique = new HyperUniqueAggregator("pv","visit_count");

    ArithmeticPostAggregator post = ArithmeticPostAggregator.builder()
            .name("new_visitor_rate").fn(ArithmeticFunction.ADD)
            .fields(Arrays.asList(new HyperUniqueCardinalityPostAggregator(null, "new_visitor_count"))).build();

    TimeseriesQuery query = TimeseriesQuery.builder()
            .dataSource("visitor_statistics")
            .granularity(GranularityType.ALL)
            .intervals(Arrays.asList("2018-01-15T16:00:00Z/2018-01-15T16:05:00Z"))
            .filter(new LogicalFilter(LogicalType.AND, Arrays.asList(sf1, sf2)))
            .aggregations(Arrays.asList(longSum, hyperUnique))
            .postAggregations(Arrays.asList(post))
            .build();

    ObjectMapper mapper = new ObjectMapper();
    System.out.println(mapper.writeValueAsString(query));

    DruidClient client = new DruidClient();
    String result = client.query(url, query);
    System.out.println(result);
}

topNQuery

public void topNQuery() throws IOException {
    SelectorFilter sf1 = new SelectorFilter("host", "www.mejia.wang");
    SelectorFilter sf2 = new SelectorFilter("corpin", "2852199100");

    LongSumAggregator longSum = new LongSumAggregator("pv","count");
    HyperUniqueAggregator hyperUnique = new HyperUniqueAggregator("visitor_count","visit_count");

    ArithmeticPostAggregator post = ArithmeticPostAggregator.builder()
            .name("new_visitor_rate").fn(ArithmeticFunction.DIVIDE)
            .fields(Arrays.asList(new HyperUniqueCardinalityPostAggregator(null, "new_visitor_count"),
                    new HyperUniqueCardinalityPostAggregator(null, "visitor_count"))).build();

    TopNQuery query = TopNQuery.builder()
            .dataSource("visitor_statistics")
            .granularity(GranularityType.ALL)
            .dimension("ad_source")
            .threshold(3)
            .metric(new NumericMetric("pv"))
            .intervals(Arrays.asList("2016-08-30T00:00:00Z/2016-09-05T23:59:59Z"))
            .filter(new LogicalFilter(LogicalType.AND, Arrays.asList(sf1, sf2)))
            .aggregations(Arrays.asList(longSum, hyperUnique))
            .postAggregations(Arrays.asList(post))
            .build();

    ObjectMapper mapper = new ObjectMapper();
    System.out.println(mapper.writeValueAsString(query));

    DruidClient client = new DruidClient();
    String result = client.query(url, query);
    System.out.println(result);
}

About

java client for Druid OLAP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages