[ https://issues.apache.org/jira/browse/KYLIN-2849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16822816#comment-16822816
]
Shaofeng SHI commented on KYLIN-2849:
-------------------------------------
[~hejian999] hejian, please open a new Jira with the necessary information, like your REST
request, the error trace in kylin.log, etc. Thanks!
> 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: scott.zhai
> Assignee: Dong Li
> Priority: Major
> Labels: scope
> Fix For: v2.3.0
>
> 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
(v7.6.3#76005)
|