[ 
https://issues.apache.org/jira/browse/KYLIN-2952?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16212475#comment-16212475
 ] 

Billy Liu commented on KYLIN-2952:
----------------------------------

1508601600000  is GMT: Saturday, October 21, 2017 4:00:00 PM, not 2017-10-22

> dynamic cube build for time(statTime and endTime)
> -------------------------------------------------
>
>                 Key: KYLIN-2952
>                 URL: https://issues.apache.org/jira/browse/KYLIN-2952
>             Project: Kylin
>          Issue Type: Improvement
>          Components: REST Service
>    Affects Versions: v1.6.0
>         Environment: linux
>            Reporter: wenxue lin
>            Assignee: Zhong,Jason
>            Priority: Minor
>
> ex => curl -X PUT -u "ADMIN:KYLIN" -H 
> "Content-Type:application/json;charset=utf-8" -d 
> '{"startTime":1508601600000,"endTime":1508688000000,"buildType":"BUILD"}' 
> http://host:port/kylin/api/cubes/bi_dispatch_waiting_service_cube/rebuild
> desc :
>  rest api param is startTime:1508601600000(2017-10-22) and 
> endTime:1508688000000(2017-10-23), but the actual time of building the cube 
> is 1 day ahead of schedule (actually 8 hours ahead of schedule) 
> =》【2017-10-21~2017-10-22】,But using kylinUI build without question, the 
> actual view kylin code, found that is because the kylin on the server side 
> source code for configuration of GMT rather than use the timezone of fixed 
> GMT + 8, and front-end UI will according to the configuration of the timezone 
> is transformed to the time of the page to add GMT + 8 time, then the back-end 
> to GMT + 8 time in into GMT time, so the kylinUI cube build time without 
> error, and using restAPI build cube time not making timezone 8 hours is not 
> accurate time difference problem。
> *for code:*
> kylinProperties.js
> this.getTimeZone = function () {
>     if (!this.timezone) {
>       this.timezone = this.getProperty("kylin.rest.timezone").trim();
>     }
>     return this.timezone;
> }
> org.apache.kylin.cube.CubeSegment
> public static String makeSegmentName(long startDate, long endDate, long 
> startOffset, long endOffset) {
>     if (startOffset != 0 || endOffset != 0) {
>         if (startOffset == 0 && (endOffset == 0 || endOffset == 
> Long.MAX_VALUE)) {
>             return "FULL_BUILD";
>         }
>         return startOffset + "_" + endOffset;
>     }
>     // using time
>     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
>     dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
>     return dateFormat.format(startDate) + "_" + dateFormat.format(endDate);
> }
> org.apache.kylin.common.util.DateFormat:
> public static FastDateFormat getDateFormat(String datePattern) {
>     FastDateFormat r = formatMap.get(datePattern);
>     if (r == null) {
>         r = FastDateFormat.getInstance(datePattern, 
> TimeZone.getTimeZone("GMT")); // NOTE: this must be GMT to calculate epoch 
> date correctly
>         formatMap.put(datePattern, r);
>     }
>     return r;
> }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to