public ResponseEntity getData()

in streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResource.java [191:253]


  public ResponseEntity<?> getData(
      @Parameter(in = ParameterIn.PATH, description = "the id of the measurement series", required = true)
      @PathVariable("measurementID") String measurementID
      , @Parameter(in = ParameterIn.QUERY, description = "the columns to be selected (comma-separated)")
      @RequestParam(value = QP_COLUMNS, required = false) String columns
      , @Parameter(in = ParameterIn.QUERY, description = "start date for slicing operation")
      @RequestParam(value = QP_START_DATE, required = false) Long startDate
      , @Parameter(in = ParameterIn.QUERY, description = "end date for slicing operation")
      @RequestParam(value = QP_END_DATE, required = false) Long endDate
      , @Parameter(in = ParameterIn.QUERY, description = "page number for paging operation")
      @RequestParam(value = QP_PAGE, required = false) Integer page
      , @Parameter(in = ParameterIn.QUERY, description = "maximum number of retrieved query results")
      @RequestParam(value = QP_LIMIT, required = false) Integer limit
      , @Parameter(in = ParameterIn.QUERY, description = "offset")
      @RequestParam(value = QP_OFFSET, required = false) Integer offset
      , @Parameter(in = ParameterIn.QUERY, description = "grouping tags (comma-separated) for grouping operation")
      @RequestParam(value = QP_GROUP_BY, required = false) String groupBy
      ,
      @Parameter(
          in = ParameterIn.QUERY,
          description = "ordering of retrieved query results (ASC or DESC - default is ASC)")
      @RequestParam(value = QP_ORDER, required = false) String order
      , @Parameter(in = ParameterIn.QUERY, description = "name of aggregation function used for grouping operation")
      @RequestParam(value = QP_AGGREGATION_FUNCTION, required = false) String aggregationFunction
      ,
      @Parameter(
          in = ParameterIn.QUERY,
          description = "time interval for aggregation (e.g. 1m - one minute) for grouping operation")
      @RequestParam(value = QP_TIME_INTERVAL, required = false) String timeInterval
      , @Parameter(in = ParameterIn.QUERY, description = "only return the number of results")
      @RequestParam(value = QP_COUNT_ONLY, required = false) String countOnly
      ,
      @Parameter(in = ParameterIn.QUERY, description = "auto-aggregate the number of results to avoid browser overload")
      @RequestParam(value = QP_AUTO_AGGREGATE, required = false) boolean autoAggregate
      ,
      @Parameter(
          in = ParameterIn.QUERY,
          description = "filter conditions (a comma-separated list of filter conditions"
              + "such as [field,operator,condition])")
      @RequestParam(value = QP_FILTER, required = false) String filter
      , @Parameter(in = ParameterIn.QUERY, description = "missingValueBehaviour (ignore or empty)")
      @RequestParam(value = QP_MISSING_VALUE_BEHAVIOUR, required = false) String missingValueBehaviour
      ,
      @Parameter(
          in = ParameterIn.QUERY,
          description = "the maximum amount of resulting events,"
              + "when too high the query status is set to TOO_MUCH_DATA")
      @RequestParam(value = QP_MAXIMUM_AMOUNT_OF_EVENTS, required = false) Integer maximumAmountOfResults,
      @RequestParam Map<String, String> queryParams) {

    if (!(checkProvidedQueryParams(queryParams))) {
      return badRequest();
    } else {
      ProvidedRestQueryParams sanitizedParams = populate(measurementID, queryParams);
      try {
        SpQueryResult result =
            this.dataExplorerQueryManagement.getData(sanitizedParams, isIgnoreMissingValues(missingValueBehaviour));
        return ok(result);
      } catch (RuntimeException e) {
        return badRequest(SpLogMessage.from(e));
      }
    }
  }