GithubHelp home page GithubHelp logo

Comments (2)

strNewBee avatar strNewBee commented on August 16, 2024

Now i can only query 3 select in a batch, and I'm worrying about the extra I/O may slow it down. When I set batch up to more than 3, it still gets this problem by missing some queries.

public static QueryResult queryMetricsByIpRegexV2(String start, String end,
                                                    Map<QueryMapEntity, List<String>> tableMap,
                                                    Map<String, String> rs2ip,
                                                    Map<String, String> ip2regex)
    {
        /* basic where */
        StringBuilder whereBase = new StringBuilder();
        StringBuilder objBase = new StringBuilder();
        StringBuilder signBase = new StringBuilder();
        createTimeBaseRFC(start, end, whereBase);

        /* create a filter */
        objBase.append(" AND (").append(createSignFilterRegex(rs2ip, ip2regex, false)).append(")");
        signBase.append(" AND (").append(createSignFilterRegex(rs2ip, ip2regex, true)).append(")");

        /* generate queries */
        StringBuilder queryCmd = new StringBuilder();
        long queryCount = 0L;
        List<String> queryCmdList = new ArrayList<>();
        for(Map.Entry<QueryMapEntity, List<String>> pair: tableMap.entrySet()) {
            QueryMapEntity target = pair.getKey();
            Boolean is_sign = target.getIs_sign();
            SelectQueryImpl query = QueryBuilder.select(pair.getValue().toArray())
                    .from(target.getDbName(), target.getTableName())
                    .where(whereBase.toString() + (is_sign ? signBase.toString() : objBase.toString()))
                    .groupBy((Object[]) (is_sign ? groupBySign : groupByUniq))
                    .tz("Etc/GMT-8");
            queryCmd.append(query.getCommand());
            queryCount += 1;
            if(queryCount == CommonConstant.queryBatch){  // 3 in a batch by default
                queryCmdList.add(queryCmd.toString());
                queryCmd.setLength(0);
                queryCount = 0L;
            }
        }
        if(queryCount != 0)
            queryCmdList.add(queryCmd.toString());

        /* perform queries */
        QueryResult result = null;
        for(String queryStr: queryCmdList){
            log.info("influxdb query: {}", queryStr);
            if(result == null)
                result = InfluxDBUtil.query(queryStr);
            else{
                for(QueryResult.Result res: InfluxDBUtil.query(queryStr).getResults()){
                    result.getResults().add(res);
                }
            }
        }
        return result;
    }

from influxdb-java.

strNewBee avatar strNewBee commented on August 16, 2024

Grateful for any help. (T T)

from influxdb-java.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.