static long compressTimeBucket(long timeBucket, int dayStep) {
        if (dayStep > 1) {
            DateTime time = TIME_BUCKET_FORMATTER.parseDateTime("" + timeBucket);
            int days = Days.daysBetween(DAY_ONE, time).getDays();
            int groupBucketOffset = days % dayStep;
            return Long.parseLong(time.minusDays(groupBucketOffset).toString(TIME_BUCKET_FORMATTER));
        } else {
            /*
             * No calculation required. dayStep is for lower traffic. For normally configuration, there is pointless to calculate.
             */
            return timeBucket;
        }
    }
@Test
    public void testCompressTimeBucket() {
        Assertions.assertEquals(20000101L, compressTimeBucket(20000105, 11));
        Assertions.assertEquals(20000101L, compressTimeBucket(20000111, 11));
        Assertions.assertEquals(20000112L, compressTimeBucket(20000112, 11));
        Assertions.assertEquals(20000112L, compressTimeBucket(20000122, 11));
        Assertions.assertEquals(20000123L, compressTimeBucket(20000123, 11));
        Assertions.assertEquals(20000123L, compressTimeBucket(20000125, 11));
    }