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));
}
}
}