You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "3513797855 (Jira)" <ji...@apache.org> on 2019/10/30 06:33:00 UTC

[jira] [Commented] (KYLIN-4209) Cannot count dimension column when join table in another cube

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

3513797855 commented on KYLIN-4209:
-----------------------------------

same error with this sql belwo :

sum(case when(KYLIN_SALES."LSTG_FORMAT_NAME" = '1') then 3 else 0 end) as "someWayUse" 

and env:
kylin: 2.6.4
cdh: 6.1
 
i use two models;
first: kylin sample  model kylin_sales_model
second: selfdefine ,  i use one table which is "KYLIN_COUNTRY" to create model
 
 
2019-10-30 06:10:12,157 ERROR [Query ced548f6-cdd6-0176-bd4d-46bf0033468b-59] service.QueryService:518 : Exception while executing query2019-10-30 06:10:12,157 ERROR [Query ced548f6-cdd6-0176-bd4d-46bf0033468b-59] service.QueryService:518 : Exception while executing queryjava.sql.SQLException: Error while executing SQL "select  "OPS_USER_ID" as "用户编码" ,  "OPS_REGION" as "地区名称"   ,count(KYLIN_SALES."LSTG_FORMAT_NAME") as "COUNT_LF"  ,SUM(KYLIN_SALES.PRICE) AS "价格"  ,sum(case when(KYLIN_SALES."LSTG_FORMAT_NAME" = '1') then 3 else 0 end) as "someWayUse" from  KYLIN_SALES join KYLIN_CAL_DT on  KYLIN_SALES.PART_DT = KYLIN_CAL_DT.CAL_DT join KYLIN_CATEGORY_GROUPINGS on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID join KYLIN_ACCOUNT on KYLIN_SALES.BUYER_ID = KYLIN_ACCOUNT.ACCOUNT_ID join (  select * from KYLIN_COUNTRY  as T1  where   T1.NAME = 'China'   and T1.LATITUDE = '35.86166'   and T1.LONGITUDE = '104.195397'   )   as F1   on F1.COUNTRY  = KYLIN_ACCOUNT.ACCOUNT_COUNTRY where  ( KYLIN_SALES.PART_DT between '2012-01-01' and '2012-12-31' ) group by  "OPS_USER_ID",  "OPS_REGION" order by  "OPS_USER_ID",  "OPS_REGION"LIMIT 50000": Index: 37, Size: 37 at org.apache.calcite.avatica.Helper.createException(Helper.java:56) at org.apache.calcite.avatica.Helper.createException(Helper.java:41) at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156) at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:218) at org.apache.kylin.rest.service.QueryService.executeRequest(QueryService.java:946) at org.apache.kylin.rest.service.QueryService.queryWithSqlMassage(QueryService.java:649) at org.apache.kylin.rest.service.QueryService.query(QueryService.java:216) at org.apache.kylin.rest.service.QueryService.queryAndUpdateCache(QueryService.java:476) at org.apache.kylin.rest.service.QueryService.doQueryWithCache(QueryService.java:437) at org.apache.kylin.rest.service.QueryService.doQueryWithCache(QueryService.java:375) at org.apache.kylin.rest.controller.QueryController.query(QueryController.java:93) at sun.reflect.GeneratedMethodAccessor162.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209) at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.IndexOutOfBoundsException: Index: 37, Size: 37 at java.util.ArrayList.rangeCheck(ArrayList.java:657) at java.util.ArrayList.get(ArrayList.java:433) at org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:956) at org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:927) at org.apache.calcite.rex.RexInputRef.accept(RexInputRef.java:112) at org.apache.calcite.rex.RexProgramBuilder.registerInput(RexProgramBuilder.java:297) at org.apache.calcite.rex.RexProgramBuilder.addProject(RexProgramBuilder.java:208) at org.apache.calcite.rex.RexProgram.create(RexProgram.java:220) at org.apache.calcite.rex.RexProgram.create(RexProgram.java:189) at org.apache.kylin.query.relnode.OLAPProjectRel.implementEnumerable(OLAPProjectRel.java:207) at org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.createEnumerable(OLAPRel.java:225) at org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.createEnumerable(OLAPRel.java:221) at org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.createEnumerable(OLAPRel.java:221) at org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.createEnumerable(OLAPRel.java:221) at org.apache.kylin.query.relnode.OLAPToEnumerableConverter.implement(OLAPToEnumerableConverter.java:104) at org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:103) at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92) at org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1278) at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:331) at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:230) at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:796) at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:655) at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:618) at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:221) at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:603) at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:638) at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:149) ... 85 more2019-10-30 06:10:12,159 WARN  [Query ced548f6-cdd6-0176-bd4d-46bf0033468b-59] common.QueryContext:196 : Cannot find CubeSegmentStatisticsResult for context 02019-10-30 06:10:12,159 WARN  [Query ced548f6-cdd6-0176-bd4d-46bf0033468b-59] common.QueryContext:196 : Cannot find CubeSegmentStatisticsResult for context 12019-10-30 06:10:12,159 INFO  [Query ced548f6-cdd6-0176-bd4d-46bf0033468b-59] service.QueryService:1129 : Processed rows for each storageContext: 0 0

> Cannot count dimension column when join table in another cube 
> --------------------------------------------------------------
>
>                 Key: KYLIN-4209
>                 URL: https://issues.apache.org/jira/browse/KYLIN-4209
>             Project: Kylin
>          Issue Type: Improvement
>    Affects Versions: v3.0.0-alpha2, v2.6.4
>            Reporter: wangrupeng
>            Priority: Minor
>
> One kylin user met a problem when execute the sql which need to join select table in another cube and the sql is like below:
> select
>  "FLOOR" as "楼层" ,
>  "CUSTYPENAME" as "铺位类别"
>  ,count(RESOURCE_DIM."RENTED") as "已出租数量"
>  from
>  RESOURCE_DIM
> join LEVELDIMENSION_DIM on
>  RESOURCE_DIM.LEVEL_SK = LEVELDIMENSION_DIM.LEVEL_SK
> join RESOURCETYPE_DIM on
>  RESOURCE_DIM.RESOURCETYPE_SK = RESOURCETYPE_DIM.RESOURCETYPE_SK
> join RESOURCESTATUS_DIM on
>  RESOURCE_DIM.RESOURCESTATUS_SK = RESOURCESTATUS_DIM.RESOURCESTATUS_SK
> join (
>  select * from T_RIGHT_POWERBI_ROLE
>  as T1
>  where
>   T1.FTABLEID = 'HQMART_DW.LEVELDIMENSION_DIM'
>   and T1.FROLEID = 'role2a9fb1505b2f11e9a4f079bdc111c187'
>   and T1.FDSVID = 'resource_model_20190828'
>   )
>  as F1
>   on F1.FDIMID = LEVELDIMENSION_DIM.COMPANYNAME
> where
>  ( RESOURCE_DIM.DATETIME between '2019-01-01 00:00:00' and '2019-12-31 00:00:00' )
>  and "RESOURCESTATUSNAME" in ('未出租',
>  '已出租',
>  '已预留')
>  and "RESOURCETYPENAME" = '铺位'
> group by
>  "FLOOR",
>  "CUSTYPENAME"
> order by
>  "FLOOR",
>  "CUSTYPENAME"



--
This message was sent by Atlassian Jira
(v8.3.4#803005)