Guoliang Sun created KYLIN-6002: ----------------------------------- Summary: When recommending CC, it should check if there are reusable CCs in the CC table. Key: KYLIN-6002 URL: https://issues.apache.org/jira/browse/KYLIN-6002 Project: Kylin Issue Type: Bug Affects Versions: 5.0.0 Reporter: Guoliang Sun
Error see following {code:java} org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint \"step_cdh632_azure_all_5_compute_column_uk4\"\n 详细:Key (project, table_identity, expression_md5)=(project_34948, SSB_STEP.LINEORDER, 4af65bfef97a50f00557d3d037a1bc63) already exists. at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:496) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:413) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:177) at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) at com.sun.proxy.$Proxy203.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) at com.sun.proxy.$Proxy213.insert(Unknown Source) at org.mybatis.dynamic.sql.util.mybatis3.MyBatis3Utils.insert(MyBatis3Utils.java:114) at org.apache.kylin.common.persistence.metadata.mapper.ComputeColumnMapper.insert(ComputeColumnMapper.java:73) at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) at org.apache.ibatis.binding.MapperProxy$DefaultMethodInvoker.invoke(MapperProxy.java:166) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) at com.sun.proxy.$Proxy213.insert(Unknown Source) at org.apache.kylin.common.persistence.metadata.mapper.ComputeColumnMapper.insert(ComputeColumnMapper.java:46) at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) at org.apache.ibatis.binding.MapperProxy$DefaultMethodInvoker.invoke(MapperProxy.java:166) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) at com.sun.proxy.$Proxy213.insert(Unknown Source) at org.apache.kylin.common.persistence.metadata.mapper.BasicMapper.insertOne(BasicMapper.java:144) at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) at org.apache.ibatis.binding.MapperProxy$DefaultMethodInvoker.invoke(MapperProxy.java:166) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) at com.sun.proxy.$Proxy213.insertOne(Unknown Source) at org.apache.kylin.common.persistence.metadata.JdbcMetadataStore.save(JdbcMetadataStore.java:182) at org.apache.kylin.common.persistence.TransparentResourceStore.checkAndPutResource(TransparentResourceStore.java:135) at org.apache.kylin.common.persistence.TransparentResourceStore.checkAndPutResource(TransparentResourceStore.java:123) at org.apache.kylin.common.persistence.ResourceStore.checkAndPutResource(ResourceStore.java:331) at org.apache.kylin.metadata.cachesync.CachedCrudAssist.save(CachedCrudAssist.java:273) at org.apache.kylin.metadata.Manager.save(Manager.java:123) at org.apache.kylin.metadata.Manager.createAS(Manager.java:141) at org.apache.kylin.metadata.model.ComputedColumnManager.saveCCWithCheck(ComputedColumnManager.java:75) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) at org.apache.kylin.metadata.model.NDataModelManager.updateCcAndRelations(NDataModelManager.java:346) at org.apache.kylin.metadata.model.NDataModelManager.saveModel(NDataModelManager.java:334) at org.apache.kylin.metadata.model.NDataModelManager.updateDataModel(NDataModelManager.java:308) at org.apache.kylin.rest.service.OptRecApproveService$RecApproveContext.rewriteModel(OptRecApproveService.java:250) at org.apache.kylin.rest.service.OptRecApproveService$RecApproveContext.lambda$approveRawRecItems$1(OptRecApproveService.java:139) at org.apache.kylin.common.persistence.transaction.UnitOfWork.doInTransactionWithRetry(UnitOfWork.java:99) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:49) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:44) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:39) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:30) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:26) at org.apache.kylin.rest.service.OptRecApproveService$RecApproveContext.approveRawRecItems(OptRecApproveService.java:135) at org.apache.kylin.rest.service.OptRecApproveService.approveRecItemsToAddLayout(OptRecApproveService.java:842) at org.apache.kylin.rest.service.OptRecApproveService.approveAllRecItems(OptRecApproveService.java:811) at org.apache.kylin.rest.service.OptRecApproveService.lambda$batchApprove$2(OptRecApproveService.java:774) at org.apache.kylin.common.persistence.transaction.UnitOfWork.doTransaction(UnitOfWork.java:150) at org.apache.kylin.common.persistence.transaction.UnitOfWork.doInTransactionWithRetry(UnitOfWork.java:115) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:49) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:44) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:39) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:30) at org.apache.kylin.metadata.project.EnhancedUnitOfWork.doInTransactionWithCheckAndRetry(EnhancedUnitOfWork.java:26) at org.apache.kylin.rest.service.OptRecApproveService.batchApprove(OptRecApproveService.java:765) at org.apache.kylin.rest.controller.open.OpenModelRecController.batchApproveRecommendations(OpenModelRecController.java:97) at org.apache.kylin.rest.controller.open.OpenModelRecController$$FastClassBySpringCGLIB$$bc6647f8.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)