You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Billy Liu (JIRA)" <ji...@apache.org> on 2017/09/07 01:43:00 UTC

[jira] [Commented] (KYLIN-2849) duplicate segment,cannot be deleted and data cannot be refreshed and merged

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

Billy Liu commented on KYLIN-2849:
----------------------------------

The Segment delete is only for the start and end segment, it's by design. For more info, check https://issues.apache.org/jira/browse/KYLIN-1540

> duplicate segment,cannot be deleted and data cannot be refreshed and merged
> ---------------------------------------------------------------------------
>
>                 Key: KYLIN-2849
>                 URL: https://issues.apache.org/jira/browse/KYLIN-2849
>             Project: Kylin
>          Issue Type: Bug
>          Components: Job Engine, Metadata, REST Service
>    Affects Versions: v2.0.0
>         Environment: hadoop:hadoop-2.6.0-cdh5.8.2
> hive :2.1.0
> hbase:0.98
>            Reporter: 翟玉勇
>            Assignee: Dong Li
>         Attachments: kylin-1.png, kylin-2.png
>
>
> cube duplicate segments。
> cannot be deleted and data cannot be refreshed and merged
> {code}
> try
> curl -X DELETE "http://127.0.0.1:7070/kylin/api/cubes/Remain_Cube_2/segs/20170822000000_20170823000000"  -H "Authorization: Basic QURNSU46S1lMSU4=" -H "Content-Type: application/json;charset=UTF-8"
> Cannot delete segment '20170822000000_20170823000000' as it is neither the first nor the last segment.","stacktrace":"org.apache.kylin.rest.exception.InternalErrorException: Cannot delete segment '20170822000000_20170823000000' as it is neither the first nor the last segment
> {code}
> 暂时解决办法:
> {code}
> public CubeInstance deleteSegment(CubeInstance cube, String segmentName) throws IOException {
>         if (!segmentName.equals(cube.getSegments().get(0).getName()) && !segmentName.equals(cube.getSegments().get(cube.getSegments().size() - 1).getName())) {
>             //throw new IllegalArgumentException("Cannot delete segment '" + segmentName + "' as it is neither the first nor the last segment.");
>         }
>         CubeSegment toDelete = null;
>         for (CubeSegment seg : cube.getSegments()) {
>             if (seg.getName().equals(segmentName)) {
>                 toDelete = seg;
>             }
>         }
>         if (toDelete == null) {
>             throw new IllegalArgumentException("Cannot find segment '" + segmentName + "'");
>         }
>         if (toDelete.getStatus() != SegmentStatusEnum.READY) {
>             //throw new IllegalArgumentException("Cannot delete segment '" + segmentName + "' as its status is not READY. Discard the on-going job for it.");
>         }
>         CubeUpdate update = new CubeUpdate(cube);
>         update.setToRemoveSegs(new CubeSegment[] { toDelete });
>         return CubeManager.getInstance(getConfig()).updateCube(update);
>     }
> {code}



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