Hi,

I am using kylin 1.6 and facing a wired issue with Cube description.
Basically, I have two Cube desc having same dimensions, measures, rowkeys,
aggregation groups. The only difference is the ordering of keys in them.
With first cube description, my queries are working and with second i am
getting following exception:


java.sql.SQLException: Error while executing SQL "SELECT
sum(ss_ext_sales_price) total_sales,
sum(ss_ext_discount_amt) total_discount,
s_store_id,
s_store_name
FROM
store_sales
LEFT JOIN store
ON (store_sales.ss_store_sk = store.s_store_sk)
GROUP BY
s_store_id,
s_store_name
ORDER BY
total_sales,
total_discount,
s_store_id,
s_store_name
LIMIT 50000": null
        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:147)
        at org.apache.calcite.avatica.AvaticaStatement.executeQuery(
AvaticaStatement.java:208)
        at org.apache.kylin.rest.service.QueryService.execute(
QueryService.java:538)
        at org.apache.kylin.rest.service.QueryService.queryWithSqlMassage(
QueryService.java:452)
        at org.apache.kylin.rest.service.QueryService.query(
QueryService.java:151)
        at org.apache.kylin.rest.service.QueryService.doQueryWithCache(
QueryService.java:354)
        at org.apache.kylin.rest.controller.QueryController.
query(QueryController.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:62)
        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:221)
        at org.springframework.web.method.support.InvocableHandlerMethod.
invokeForRequest(InvocableHandlerMethod.java:136)
        at org.springframework.web.servlet.mvc.method.annotation.
ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.
java:104)
        at org.springframework.web.servlet.mvc.method.annotation.
RequestMappingHandlerAdapter.invokeHandleMethod(
RequestMappingHandlerAdapter.java:743)
        at org.springframework.web.servlet.mvc.method.annotation.
RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.
java:672)
        at org.springframework.web.servlet.mvc.method.
AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:82)
        at org.springframework.web.servlet.DispatcherServlet.
doDispatch(DispatcherServlet.java:933)
        at org.springframework.web.servlet.DispatcherServlet.
doService(DispatcherServlet.java:867)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(
FrameworkServlet.java:951)
        at org.springframework.web.servlet.FrameworkServlet.
doPost(FrameworkServlet.java:853)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
        at org.springframework.web.servlet.FrameworkServlet.
service(FrameworkServlet.java:827)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(
WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:208)
        at org.springframework.security.web.FilterChainProxy$
VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.springframework.security.web.access.intercept.
FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
        at org.springframework.security.web.access.intercept.
FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
        at org.springframework.security.web.FilterChainProxy$
VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.access.
ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$
VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.authentication.
AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.
java:113)
        at org.springframework.security.web.FilterChainProxy$
VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.servletapi.
SecurityContextHolderAwareRequestFilter.doFilter(
SecurityContextHolderAwareRequestFilter.java:54)
        at org.springframework.security.web.FilterChainProxy$
VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at io.infoworks.security.jwt.JwtAuthenticationTokenFilter.
successfulAuthentication(JwtAuthenticationTokenFilter.java:64)
        at org.springframework.security.web.authentication.
AbstractAuthenticationProcessingFilter.doFilter(
AbstractAuthenticationProcessingFilter.java:219)
        at org.springframework.security.web.FilterChainProxy$
VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.context.
SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilt
er.java:87)
        at org.springframework.security.web.FilterChainProxy$
VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.FilterChainProxy.
doFilterInternal(FilterChainProxy.java:192)
        at org.springframework.security.web.FilterChainProxy.doFilter(
FilterChainProxy.java:160)
        at org.springframework.web.filter.DelegatingFilterProxy.
invokeDelegate(DelegatingFilterProxy.java:343)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(
DelegatingFilterProxy.java:260)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:208)
        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:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(
AuthenticatorBase.java:505)
        at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:169)
        at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(
AccessLogValve.java:956)
        at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:436)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(
AbstractHttp11Processor.java:1078)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.
process(AbstractProtocol.java:625)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.
run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(
TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException
        at org.apache.kylin.gridtable.GTInfo.validateColumnBlocks(
GTInfo.java:198)
        at org.apache.kylin.gridtable.GTInfo.validate(GTInfo.java:167)
        at org.apache.kylin.gridtable.GTInfo$Builder.build(GTInfo.java:269)
        at org.apache.kylin.cube.gridtable.CubeGridTable.
newGTInfo(CubeGridTable.java:53)
        at org.apache.kylin.cube.gridtable.CubeGridTable.
newGTInfo(CubeGridTable.java:36)
        at org.apache.kylin.storage.gtrecord.CubeScanRangePlanner.
<init>(CubeScanRangePlanner.java:88)
        at org.apache.kylin.storage.gtrecord.CubeSegmentScanner.<
init>(CubeSegmentScanner.java:74)
        at org.apache.kylin.storage.gtrecord.GTCubeStorageQueryBase.search(
GTCubeStorageQueryBase.java:130)
        at org.apache.kylin.query.enumerator.OLAPEnumerator.
queryStorage(OLAPEnumerator.java:114)
        at org.apache.kylin.query.enumerator.OLAPEnumerator.
moveNext(OLAPEnumerator.java:65)
        at Baz$1$1.moveNext(Unknown Source)
        at org.apache.calcite.linq4j.EnumerableDefaults.groupBy_(
EnumerableDefaults.java:823)
        at org.apache.calcite.linq4j.EnumerableDefaults.groupBy(
EnumerableDefaults.java:758)
        at org.apache.calcite.linq4j.DefaultEnumerable.groupBy(
DefaultEnumerable.java:302)
        at Baz.bind(Unknown Source)
        at org.apache.calcite.jdbc.CalcitePrepare$
CalciteSignature.enumerable(CalcitePrepare.java:327)
        at org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(
CalciteConnectionImpl.java:282)
        at org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(
CalciteMetaImpl.java:553)
        at org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(
CalciteMetaImpl.java:544)
        at org.apache.calcite.avatica.AvaticaResultSet.execute(
AvaticaResultSet.java:187)
        at org.apache.calcite.jdbc.CalciteResultSet.execute(
CalciteResultSet.java:65)
        at org.apache.calcite.jdbc.CalciteResultSet.execute(
CalciteResultSet.java:44)
        at org.apache.calcite.avatica.AvaticaConnection$1.execute(
AvaticaConnection.java:605)
        at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(
CalciteMetaImpl.java:599)
        at org.apache.calcite.avatica.AvaticaConnection.
prepareAndExecuteInternal(AvaticaConnection.java:613)
        at org.apache.calcite.avatica.AvaticaStatement.executeInternal(
AvaticaStatement.java:139)
        ... 68 more


*cube desc 1: *
https://gist.github.com/shaipraj/a09991ad1599bca5f43b38c5565dbebe
*cube desc 2: *
https://gist.github.com/shaipraj/527cec8f03d55234c63d80b06353b7de


When i reordered the rowkeys in cube desc 2, my queries worked. My
question, are these rowkeys needs to be in order? if yes then on what
basis? and if not then what this exception is about?


Thanks

Reply via email to