Search in sources :

Example 1 with DateTimeUnit

use of org.elasticsearch.common.rounding.DateTimeUnit in project crate by crate.

the class DateTruncFunction method rounding.

private Rounding rounding(BytesRef interval, BytesRef timeZoneString) {
    DateTimeUnit intervalAsUnit = intervalAsUnit(interval);
    DateTimeZone timeZone = TimeZoneParser.parseTimeZone(timeZoneString);
    TimeZoneRounding.Builder tzRoundingBuilder = TimeZoneRounding.builder(intervalAsUnit);
    return tzRoundingBuilder.timeZone(timeZone).build();
}
Also used : DateTimeUnit(org.elasticsearch.common.rounding.DateTimeUnit) TimeZoneRounding(org.elasticsearch.common.rounding.TimeZoneRounding) DateTimeZone(org.joda.time.DateTimeZone)

Example 2 with DateTimeUnit

use of org.elasticsearch.common.rounding.DateTimeUnit in project elasticsearch by elastic.

the class DerivativePipelineAggregationBuilder method createInternal.

@Override
protected PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException {
    DocValueFormat formatter;
    if (format != null) {
        formatter = new DocValueFormat.Decimal(format);
    } else {
        formatter = DocValueFormat.RAW;
    }
    Long xAxisUnits = null;
    if (units != null) {
        DateTimeUnit dateTimeUnit = DateHistogramAggregationBuilder.DATE_FIELD_UNITS.get(units);
        if (dateTimeUnit != null) {
            xAxisUnits = dateTimeUnit.field(DateTimeZone.UTC).getDurationField().getUnitMillis();
        } else {
            TimeValue timeValue = TimeValue.parseTimeValue(units, null, getClass().getSimpleName() + ".unit");
            if (timeValue != null) {
                xAxisUnits = timeValue.getMillis();
            }
        }
    }
    return new DerivativePipelineAggregator(name, bucketsPaths, formatter, gapPolicy, xAxisUnits, metaData);
}
Also used : DocValueFormat(org.elasticsearch.search.DocValueFormat) DateTimeUnit(org.elasticsearch.common.rounding.DateTimeUnit) TimeValue(org.elasticsearch.common.unit.TimeValue)

Example 3 with DateTimeUnit

use of org.elasticsearch.common.rounding.DateTimeUnit in project elasticsearch by elastic.

the class DateHistogramAggregationBuilder method createRounding.

private Rounding createRounding() {
    Rounding.Builder tzRoundingBuilder;
    if (dateHistogramInterval != null) {
        DateTimeUnit dateTimeUnit = DATE_FIELD_UNITS.get(dateHistogramInterval.toString());
        if (dateTimeUnit != null) {
            tzRoundingBuilder = Rounding.builder(dateTimeUnit);
        } else {
            // the interval is a time value?
            tzRoundingBuilder = Rounding.builder(TimeValue.parseTimeValue(dateHistogramInterval.toString(), null, getClass().getSimpleName() + ".interval"));
        }
    } else {
        // the interval is an integer time value in millis?
        tzRoundingBuilder = Rounding.builder(TimeValue.timeValueMillis(interval));
    }
    if (timeZone() != null) {
        tzRoundingBuilder.timeZone(timeZone());
    }
    Rounding rounding = tzRoundingBuilder.build();
    return rounding;
}
Also used : DateTimeUnit(org.elasticsearch.common.rounding.DateTimeUnit) Rounding(org.elasticsearch.common.rounding.Rounding)

Aggregations

DateTimeUnit (org.elasticsearch.common.rounding.DateTimeUnit)3 Rounding (org.elasticsearch.common.rounding.Rounding)1 TimeZoneRounding (org.elasticsearch.common.rounding.TimeZoneRounding)1 TimeValue (org.elasticsearch.common.unit.TimeValue)1 DocValueFormat (org.elasticsearch.search.DocValueFormat)1 DateTimeZone (org.joda.time.DateTimeZone)1