@Test public void testCeilDate() throws ParseException { Date date = ABSDATE_PARSER.get().parse("2015-12-26-06:30:15,040"); assertEquals(getCeilDate(date, YEARLY), ABSDATE_PARSER.get().parse("2016-01-01-00:00:00,000")); assertEquals(getCeilDate(date, MONTHLY), ABSDATE_PARSER.get().parse("2016-01-01-00:00:00,000")); assertEquals(getCeilDate(date, DAILY), ABSDATE_PARSER.get().parse("2015-12-27-00:00:00,000")); assertEquals(getCeilDate(date, HOURLY), ABSDATE_PARSER.get().parse("2015-12-26-07:00:00,000")); assertEquals(getCeilDate(date, MINUTELY), ABSDATE_PARSER.get().parse("2015-12-26-06:31:00,000")); assertEquals(getCeilDate(date, SECONDLY), ABSDATE_PARSER.get().parse("2015-12-26-06:30:16,000")); assertEquals(getCeilDate(date, WEEKLY), ABSDATE_PARSER.get().parse("2015-12-27-00:00:00,000")); }
Date ceilFromDate = DateUtil.getCeilDate(timeRangeStart.after(maxIntervalStorageTableStartDate) ? timeRangeStart : maxIntervalStorageTableStartDate, maxInterval); Date floorToDate = DateUtil.getFloorDate(timeRangeEnd.before(maxIntervalStorageTableEndDate)
Date ceilFromDate = DateUtil.getCeilDate(timeRangeStart.after(maxIntervalStorageTableStartDate) ? timeRangeStart : maxIntervalStorageTableStartDate, maxInterval); Date floorToDate = DateUtil.getFloorDate(timeRangeEnd.before(maxIntervalStorageTableEndDate)
public static String getWhereForDailyAndHourly2daysWithTimeDim(String cubeName, String timedDimension, Date from, Date to) { Set<String> hourlyparts = new HashSet<>(); Set<String> dailyparts = new HashSet<>(); Date dayStart; if (!isZerothHour()) { addParts(hourlyparts, HOURLY, from, DateUtil.getCeilDate(from, DAILY)); addParts(hourlyparts, HOURLY, DateUtil.getFloorDate(to, DAILY), DateUtil.getFloorDate(to, HOURLY)); dayStart = DateUtil.getCeilDate(from, DAILY); } else { dayStart = from; } addParts(dailyparts, DAILY, dayStart, DateUtil.getFloorDate(to, DAILY)); List<String> parts = new ArrayList<>(); parts.addAll(hourlyparts); parts.addAll(dailyparts); Collections.sort(parts); return StorageUtil.getWherePartClause(timedDimension, cubeName, parts); }
if (!isZerothHour()) { addParts(hourlyparts, HOURLY, TWO_MONTHS_BACK, DateUtil.getCeilDate(TWO_MONTHS_BACK, DAILY)); addParts(hourlyparts, HOURLY, DateUtil.getFloorDate(NOW, DAILY), DateUtil.getFloorDate(NOW, HOURLY)); dayStart = DateUtil.getCeilDate(TWO_MONTHS_BACK, DAILY); monthStart = DateUtil.getCeilDate(TWO_MONTHS_BACK, MONTHLY); addParts(dailyparts, DAILY, dayStart, DateUtil.getCeilDate(TWO_MONTHS_BACK, MONTHLY)); monthStart = DateUtil.getCeilDate(TWO_MONTHS_BACK, MONTHLY);
public static void addParts(Collection<String> partitions, Set<UpdatePeriod> updatePeriods, Date from, Date to) { if (updatePeriods.size() != 0) { UpdatePeriod max = CubeFactTable.maxIntervalInRange(from, to, updatePeriods); if (max != null) { updatePeriods.remove(max); Date ceilFromDate = DateUtil.getCeilDate(from, max); Date floorToDate = DateUtil.getFloorDate(to, max); addParts(partitions, updatePeriods, from, ceilFromDate); addParts(partitions, max, ceilFromDate, floorToDate); addParts(partitions, updatePeriods, floorToDate, to); } } }
if (!isZerothHour()) { addParts(hourlyparts, HOURLY, TWO_MONTHS_BACK, DateUtil.getCeilDate(TWO_MONTHS_BACK, DAILY)); addParts(hourlyparts, HOURLY, DateUtil.getFloorDate(NOW, DAILY), DateUtil.getFloorDate(NOW, HOURLY)); dayStart = DateUtil.getCeilDate(TWO_MONTHS_BACK, DAILY); monthStart = DateUtil.getCeilDate(TWO_MONTHS_BACK, MONTHLY); addParts(dailyparts, DAILY, dayStart, DateUtil.getCeilDate(TWO_MONTHS_BACK, MONTHLY)); monthStart = DateUtil.getCeilDate(TWO_MONTHS_BACK, MONTHLY);
public static Map<String, String> getWhereForDailyAndHourly2daysWithTimeDimUnionQuery(String cubeName, String timedDimension, Date from, Date to) { Map<String, String> updatePeriodToWhereMap = new HashMap<String, String>(); List<String> hourlyparts = new ArrayList<String>(); List<String> dailyparts = new ArrayList<String>(); Date dayStart; if (!isZerothHour()) { addParts(hourlyparts, HOURLY, from, DateUtil.getCeilDate(from, DAILY)); addParts(hourlyparts, HOURLY, DateUtil.getFloorDate(to, DAILY), DateUtil.getFloorDate(to, HOURLY)); dayStart = DateUtil.getCeilDate(from, DAILY); } else { dayStart = from; } addParts(dailyparts, DAILY, dayStart, DateUtil.getFloorDate(to, DAILY)); updatePeriodToWhereMap.put("DAILY", StorageUtil.getWherePartClause(timedDimension, cubeName, dailyparts)); updatePeriodToWhereMap.put("HOURLY", StorageUtil.getWherePartClause(timedDimension, cubeName, hourlyparts)); return updatePeriodToWhereMap; }
Date ceilFromDate = DateUtil.getCeilDate(fromDate.after(maxIntervalStorageTblStartDate) ? fromDate : maxIntervalStorageTblStartDate, maxInterval); Date floorToDate = DateUtil.getFloorDate(toDate.before(maxIntervalStorageTblEndDate)
Date ceilFromDate = DateUtil.getCeilDate(fromDate.after(maxIntervalStorageTblStartDate) ? fromDate : maxIntervalStorageTblStartDate, maxInterval); Date floorToDate = DateUtil.getFloorDate(toDate.before(maxIntervalStorageTblEndDate)