drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arina-ielchiieva <...@git.apache.org>
Subject [GitHub] drill pull request #774: DRILL-5337: OpenTSDB storage plugin
Date Mon, 30 Oct 2017 13:24:49 GMT
Github user arina-ielchiieva commented on a diff in the pull request:

    https://github.com/apache/drill/pull/774#discussion_r147583562
  
    --- Diff: contrib/storage-opentsdb/src/main/java/org/apache/drill/exec/store/openTSDB/client/query/Query.java
---
    @@ -0,0 +1,182 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + * http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.drill.exec.store.openTSDB.client.query;
    +
    +import java.util.HashMap;
    +import java.util.Map;
    +
    +import static org.apache.drill.exec.store.openTSDB.Constants.SUM_AGGREGATOR;
    +
    +/**
    + * Query is an abstraction of openTSDB subQuery
    + * and it is integral part of DBQuery
    + * <p>
    + * Each sub query can retrieve individual or groups of timeseries data,
    + * performing aggregation on each set.
    + */
    +public class Query {
    +
    +  /**
    +   * The name of an aggregation function to use.
    +   */
    +  private String aggregator;
    +  /**
    +   * The name of a metric stored in the system
    +   */
    +  private String metric;
    +  /**
    +   * Whether or not the data should be converted into deltas before returning.
    +   * This is useful if the metric is a continuously incrementing counter
    +   * and you want to view the rate of change between data points.
    +   */
    +  private String rate;
    +  /**
    +   * An optional downsampling function to reduce the amount of data returned.
    +   */
    +  private String downsample;
    +  /**
    +   * To drill down to specific timeseries or group results by tag,
    +   * supply one or more map values in the same format as the query string.
    +   */
    +  private Map<String, String> tags;
    +
    +  private Query(Builder builder) {
    +    this.aggregator = builder.aggregator;
    +    this.metric = builder.metric;
    +    this.rate = builder.rate;
    +    this.downsample = builder.downsample;
    +    this.tags = builder.tags;
    +  }
    +
    +  public String getAggregator() {
    +    return aggregator;
    +  }
    +
    +  public String getMetric() {
    +    return metric;
    +  }
    +
    +  public String getRate() {
    +    return rate;
    +  }
    +
    +  public String getDownsample() {
    +    return downsample;
    +  }
    +
    +  public Map<String, String> getTags() {
    +    return tags;
    +  }
    +
    +  public static class Builder {
    +
    +    private String aggregator = SUM_AGGREGATOR;
    --- End diff --
    
    Aggregation is required parameter [1], should fail and ask user to provide one or even
suggest list of available aggragators rather then using made up default. Taking into account
OpenTSDB specifics it's rather confusing allowing the following queries:
    ```
    SELECT * FROM openTSDB.`warp.speed.test`
    ```
    
    [1] http://opentsdb.net/docs/build/html/api_http/query/index.html


---

Mime
View raw message