Uploaded image for project: 'Kylin'
  1. Kylin
  2. KYLIN-2849

duplicate segment,cannot be deleted and data cannot be refreshed and merged

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • v2.0.0
    • v2.3.0
    • hadoop:hadoop-2.6.0-cdh5.8.2
      hive :2.1.0
      hbase:0.98

    Description

      cube duplicate segments。
      cannot be deleted and data cannot be refreshed and merged

      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
      

      暂时解决办法:

      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);
          }
      

      Attachments

        1. kylin-2.png
          269 kB
          scott.zhai
        2. kylin-1.png
          109 kB
          scott.zhai

        Issue Links

          Activity

            People

              lidong_sjtu Dong Li
              zhaiyuyong scott.zhai
              Votes:
              2 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: