use of org.joda.time.Period in project druid by druid-io.
the class TimeseriesQueryRunnerTest method testTimeseriesWithVaryingGranWithFilter.
@Test
public void testTimeseriesWithVaryingGranWithFilter() {
TimeseriesQuery query1 = Druids.newTimeseriesQueryBuilder().dataSource(QueryRunnerTestHelper.dataSource).filters(QueryRunnerTestHelper.marketDimension, "spot", "upfront", "total_market").granularity(new PeriodGranularity(new Period("P1M"), null, null)).intervals(Arrays.asList(new Interval("2011-04-02T00:00:00.000Z/2011-04-03T00:00:00.000Z"))).aggregators(Arrays.<AggregatorFactory>asList(QueryRunnerTestHelper.rowsCount, new LongSumAggregatorFactory("idx", "index"), QueryRunnerTestHelper.qualityUniques)).descending(descending).build();
List<Result<TimeseriesResultValue>> expectedResults1 = Arrays.asList(new Result<>(new DateTime("2011-04-01"), new TimeseriesResultValue(ImmutableMap.<String, Object>of("rows", 13L, "idx", 5827L, "uniques", QueryRunnerTestHelper.UNIQUES_9))));
Iterable<Result<TimeseriesResultValue>> results1 = Sequences.toList(runner.run(query1, CONTEXT), Lists.<Result<TimeseriesResultValue>>newArrayList());
assertExpectedResults(expectedResults1, results1);
TimeseriesQuery query2 = Druids.newTimeseriesQueryBuilder().dataSource(QueryRunnerTestHelper.dataSource).filters(QueryRunnerTestHelper.marketDimension, "spot", "upfront", "total_market").granularity("DAY").intervals(Arrays.asList(new Interval("2011-04-02T00:00:00.000Z/2011-04-03T00:00:00.000Z"))).aggregators(Arrays.<AggregatorFactory>asList(QueryRunnerTestHelper.rowsCount, new LongSumAggregatorFactory("idx", "index"), QueryRunnerTestHelper.qualityUniques)).build();
List<Result<TimeseriesResultValue>> expectedResults2 = Arrays.asList(new Result<>(new DateTime("2011-04-02"), new TimeseriesResultValue(ImmutableMap.<String, Object>of("rows", 13L, "idx", 5827L, "uniques", QueryRunnerTestHelper.UNIQUES_9))));
Iterable<Result<TimeseriesResultValue>> results2 = Sequences.toList(runner.run(query2, CONTEXT), Lists.<Result<TimeseriesResultValue>>newArrayList());
assertExpectedResults(expectedResults2, results2);
}
use of org.joda.time.Period in project druid by druid-io.
the class TimeseriesQueryRunnerTest method testTimeseriesQueryGranularityNotAlignedWithRollupGranularity.
@Test
public void testTimeseriesQueryGranularityNotAlignedWithRollupGranularity() {
TimeseriesQuery query1 = Druids.newTimeseriesQueryBuilder().dataSource(QueryRunnerTestHelper.dataSource).filters(QueryRunnerTestHelper.marketDimension, "spot", "upfront", "total_market").granularity(new PeriodGranularity(new Period("PT1H"), new DateTime(60000), DateTimeZone.UTC)).intervals(Arrays.asList(new Interval("2011-04-15T00:00:00.000Z/2012"))).aggregators(Arrays.<AggregatorFactory>asList(QueryRunnerTestHelper.rowsCount, new LongSumAggregatorFactory("idx", "index"))).descending(descending).build();
List<Result<TimeseriesResultValue>> expectedResults1 = Arrays.asList(new Result<>(new DateTime("2011-04-14T23:01Z"), new TimeseriesResultValue(ImmutableMap.<String, Object>of("rows", 13L, "idx", 4717L))));
Iterable<Result<TimeseriesResultValue>> results1 = Sequences.toList(runner.run(query1, CONTEXT), Lists.<Result<TimeseriesResultValue>>newArrayList());
assertExpectedResults(expectedResults1, results1);
}
use of org.joda.time.Period in project pinot by linkedin.
the class AnomaliesResource method getTimeseriesOffsetedTimes.
private TimeRange getTimeseriesOffsetedTimes(long anomalyStartTime, long anomalyEndTime, DatasetConfigDTO datasetConfig) {
TimeUnit dataTimeunit = datasetConfig.getTimeUnit();
Period offsetPeriod;
switch(dataTimeunit) {
case // 3 days
DAYS:
offsetPeriod = new Period(0, 0, 0, 3, 0, 0, 0, 0);
break;
case // 10 hours
HOURS:
offsetPeriod = new Period(0, 0, 0, 0, 10, 0, 0, 0);
break;
case // 60 minutes
MINUTES:
offsetPeriod = new Period(0, 0, 0, 0, 0, 60, 0, 0);
break;
default:
offsetPeriod = new Period();
}
DateTimeZone dateTimeZone = DateTimeZone.forID(datasetConfig.getTimezone());
DateTime anomalyStartDateTime = new DateTime(anomalyStartTime, dateTimeZone);
DateTime anomalyEndDateTime = new DateTime(anomalyEndTime, dateTimeZone);
anomalyStartDateTime = anomalyStartDateTime.minus(offsetPeriod);
anomalyEndDateTime = anomalyEndDateTime.plus(offsetPeriod);
anomalyStartTime = anomalyStartDateTime.getMillis();
anomalyEndTime = anomalyEndDateTime.getMillis();
try {
Long maxDataTime = CACHE_REGISTRY.getCollectionMaxDataTimeCache().get(datasetConfig.getDataset());
if (anomalyEndTime > maxDataTime) {
anomalyEndTime = maxDataTime;
}
} catch (ExecutionException e) {
LOG.error("Exception when reading max time for {}", datasetConfig.getDataset(), e);
}
TimeRange range = new TimeRange(anomalyStartTime, anomalyEndTime);
return range;
}
use of org.joda.time.Period in project android-uploader by nightscout.
the class UtilsTest method testGetTimeAgoString_DayDelta.
@Test
public void testGetTimeAgoString_DayDelta() {
DateTime now = new DateTime();
assertThat(Utils.getTimeAgoString(new Period(now, now.plusDays(1))), is("1 days ago"));
}
use of org.joda.time.Period in project android-uploader by nightscout.
the class UtilsTest method testGetTimeAgoString_ZeroDelta.
@Test
public void testGetTimeAgoString_ZeroDelta() {
DateTime now = new DateTime();
assertThat(Utils.getTimeAgoString(new Period(now, now)), is("0 seconds ago"));
}
Aggregations