Okay, I was able to reproduce this problem; will look into it now; On 3/17/15, 9:45 AM, "dong wang" <[email protected]> wrote:
>Shaofeng, I think mine is a little different from what you mentioned: >1, the partition date column can be recognized correctly >2, the segment is built successfully already >3, I just refresh the LATEST successful segment due to some base data >changes > >2015-03-16 22:03 GMT+08:00 Shi, Shaofeng <[email protected]>: > >> Hi Dong, which version of the Kylin build that you deployed? >> >> In last week we found a bug which will cause Kylin fail to allocate a >>new >> a segment; Kylin will report error saying that the startDate is not >> matched with expectation; Here is the JIRA: >> >> https://issues.apache.org/jira/browse/KYLIN-628 >> >> If you¹re using Kylin¹s binary package, please update to the latest one >>on >> https://kylin.incubator.apache.org/download/ >> If you¹re running from source code, please pull the latest code on >>staging >> branch; >> >> On 3/16/15, 7:40 PM, "dong wang" <[email protected]> wrote: >> >> >since the following codes pass invalid startdate and enddate, which >>leads >> >to the issue >> > >> > public CubeSegment appendSegments(CubeInstance cube, long endDate) >> >throws >> >IOException { >> > checkNoBuildingSegment(cube); >> > >> > CubeSegment newSegment; >> > if >> >(cube.getDescriptor().getModel().getPartitionDesc().isPartitioned()) { >> > long startDate = calculateStartDateForAppendSegment(cube); >> > newSegment = newSegment(cube, startDate, endDate); >> > } else { >> > newSegment = newSegment(cube, 0, Long.MAX_VALUE); >> > } >> > >> > validateNewSegments(cube, newSegment); >> > cube.getSegments().add(newSegment); >> > Collections.sort(cube.getSegments()); >> > updateCube(cube); >> > >> > return newSegment; >> > } >> > >> >2015-03-16 19:38 GMT+08:00 dong wang <[email protected]>: >> > >> >> The related codes, since I'm not that clear about the logic it should >> >>be: >> >> >> >> private CubeSegment newSegment(CubeInstance cubeInstance, long >> >> startDate, long endDate) { >> >> if (startDate >= endDate) >> >> throw new IllegalArgumentException("New segment range >> >>invalid, >> >> start date must be earlier than end date, " + startDate + " < " + >> >>endDate); >> >> >> >> CubeSegment segment = new CubeSegment(); >> >> String incrementalSegName = >> >>CubeSegment.getSegmentName(startDate, >> >> endDate); >> >> segment.setUuid(UUID.randomUUID().toString()); >> >> segment.setName(incrementalSegName); >> >> Date creatTime = new Date(); >> >> segment.setCreateTimeUTC(creatTime.getTime()); >> >> segment.setDateRangeStart(startDate); >> >> segment.setDateRangeEnd(endDate); >> >> segment.setStatus(SegmentStatusEnum.NEW); >> >> >>segment.setStorageLocationIdentifier(generateStorageLocation()); >> >> >> >> segment.setCubeInstance(cubeInstance); >> >> >> >> segment.validate(); >> >> return segment; >> >> } >> >> >> >> 2015-03-16 19:29 GMT+08:00 dong wang <[email protected]>: >> >> >> >>> more notes. this segment to be refreshed is built sccessful first, >> >>>then, >> >>> I plan to refresh it due to some incorrect data. >> >>> >> >>> 2015-03-16 19:25 GMT+08:00 dong wang <[email protected]>: >> >>> >> >>>> watched with firebug, the parameters pass to the backend seem to be >> >>>> CORRECT as below: >> >>>> >> >>>> {buildType: "BUILD", startTime: 1426377600000, endTime: >>1426464000000} >> >>>> >> >>>> 2015-03-16 19:15 GMT+08:00 dong wang <[email protected]>: >> >>>> >> >>>>> segment detail page shows: >> >>>>> >> >>>>> Start Date (Include) 2015-03-15 00:00:00 >> >>>>> End Date (Exclude) 2015-03-16 00:00:00 >> >>>>> >> >>>>> 2015-03-16 19:11 GMT+08:00 dong wang <[email protected]>: >> >>>>> >> >>>>>> The latest segment is the newest one which contains today's data, >> >>>>>>due >> >>>>>> to some incorrect data, I want to refresh the segment, however, >>when >> >>>>>> cube->actions->refresh->select the latest segment, then the >> >>>>>>following error >> >>>>>> occurs: >> >>>>>> >> >>>>>> New segment range invalid, start date must be earlier than end >>date, >> >>>>>> 1426464000000 < 1426464000000 >> >>>>>> >> >>>>> >> >>>>> >> >>>> >> >>> >> >> >> >>
