You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by 敏丞 <hi...@126.com> on 2019/06/21 05:01:40 UTC
回复:AppendTrieDictionary can't retrieve value from id
Hi,
After check cube.json provided by you, I can reproduce this error in my development env. Looks like this kind exception occurs when you have a cube which have both Raw measure and CountDistinct(Bitmap) on the same column. I find the reason should be the Raw Measure choose the wrong dictionary (AppendTrieDictionary cannot used to decode). Maybe you should try use two cubes in this situation.
And if you don't mind, I have a question, have you ever use this type of query "select * from FACT_TABLE" in old version of kylin in such kind of cube(raw measure and count_distinct both on the same column) and get correct result successfully?
If you have find anything wrong or other information, please let me know. Thank you.
-----------------
-----------------
Best wishes to you !
From :Xiaoxiang Yu
At 2019-06-20 16:00:10, "greatelviswang@gmail.com" <gr...@gmail.com> wrote:
>hi,all:
>
> I got an error like "AppendTrieDictionary can't retrieve value from id" while query the cube data, the following is the cube info and exception info.
>
>I found the same error in this thread(https://lists.apache.org/thread.html/63981bc08ef7b97c41921ed692de79ef9a744f6329192e5199074ba3@%3Cdev.kylin.apache.org%3E), but I just use the bitmaps (count distinct) as measure, and never use it as dimension.
>
>So please help me to resolve it.
>
>cube data:
>{
> "uuid": "eb0b4a32-fbc0-b197-b3f0-4c9cd5fb3916",
> "last_modified": 1561014544528,
> "version": "2.6.2.0",
> "name": "dev_cube_user_currency",
> "is_draft": false,
> "model_name": "user_currency",
> "description": "",
> "null_string": null,
> "dimensions": [
> {
> "name": "TYPE",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "TYPE",
> "derived": null
> },
> {
> "name": "SUB_TYPE",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "SUB_TYPE",
> "derived": null
> },
> {
> "name": "SOURCE_TYPE",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "SOURCE_TYPE",
> "derived": null
> },
> {
> "name": "SOURCE",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "SOURCE",
> "derived": null
> },
> {
> "name": "STATUS",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "STATUS",
> "derived": null
> },
> {
> "name": "CREATE_TIME",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "CREATE_TIME",
> "derived": null
> },
> {
> "name": "UPDATE_TIME",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "UPDATE_TIME",
> "derived": null
> },
> {
> "name": "END_TIME",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "END_TIME",
> "derived": null
> },
> {
> "name": "ACTIVATION_TIME",
> "table": "DEV_DWD_USER_CURRENCY",
> "column": "ACTIVATION_TIME",
> "derived": null
> },
> {
> "name": "CODE",
> "table": "DEV_DIM_CURRENCY_TYPE",
> "column": null,
> "derived": [
> "CODE"
> ]
> },
> {
> "name": "SHORT_NAME",
> "table": "DEV_DIM_CURRENCY_TYPE",
> "column": null,
> "derived": [
> "SHORT_NAME"
> ]
> }
> ],
> "measures": [
> {
> "name": "_COUNT_",
> "function": {
> "expression": "COUNT",
> "parameter": {
> "type": "constant",
> "value": "1"
> },
> "returntype": "bigint"
> }
> },
> {
> "name": "SUM_TOTAL",
> "function": {
> "expression": "SUM",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.TOTAL"
> },
> "returntype": "double"
> }
> },
> {
> "name": "SUM_BALANCE",
> "function": {
> "expression": "SUM",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.BALANCE"
> },
> "returntype": "double"
> }
> },
> {
> "name": "SUM_VALID_PERIOD",
> "function": {
> "expression": "SUM",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.VALID_PERIOD"
> },
> "returntype": "bigint"
> }
> },
> {
> "name": "MAX_TOTAL",
> "function": {
> "expression": "MAX",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.TOTAL"
> },
> "returntype": "double"
> }
> },
> {
> "name": "MAX_BALANCE",
> "function": {
> "expression": "MAX",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.BALANCE"
> },
> "returntype": "double"
> }
> },
> {
> "name": "MAX_VALID_PERIOD",
> "function": {
> "expression": "MAX",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.VALID_PERIOD"
> },
> "returntype": "integer"
> }
> },
> {
> "name": "MIN_TOTAL",
> "function": {
> "expression": "MIN",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.TOTAL"
> },
> "returntype": "double"
> }
> },
> {
> "name": "MIN_BALANCE",
> "function": {
> "expression": "MIN",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.BALANCE"
> },
> "returntype": "double"
> }
> },
> {
> "name": "MIN_VALID_PERIOD",
> "function": {
> "expression": "MIN",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.VALID_PERIOD"
> },
> "returntype": "integer"
> }
> },
> {
> "name": "RAW_PARENT_ID",
> "function": {
> "expression": "RAW",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.PARENT_ID"
> },
> "returntype": "raw"
> }
> },
> {
> "name": "RAW_ORDER_NO",
> "function": {
> "expression": "RAW",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.ORDER_NO"
> },
> "returntype": "raw"
> }
> },
> {
> "name": "COUNT_PARENTID",
> "function": {
> "expression": "COUNT_DISTINCT",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.PARENT_ID"
> },
> "returntype": "bitmap"
> }
> },
> {
> "name": "COUNT_ORDERNO",
> "function": {
> "expression": "COUNT_DISTINCT",
> "parameter": {
> "type": "column",
> "value": "DEV_DWD_USER_CURRENCY.ORDER_NO"
> },
> "returntype": "bitmap"
> }
> }
> ],
> "dictionaries": [
> {
> "column": "DEV_DWD_USER_CURRENCY.PARENT_ID",
> "builder": "org.apache.kylin.dict.GlobalDictionaryBuilder"
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.ORDER_NO",
> "builder": "org.apache.kylin.dict.GlobalDictionaryBuilder"
> }
> ],
> "rowkey": {
> "rowkey_columns": [
> {
> "column": "DEV_DWD_USER_CURRENCY.TYPE",
> "encoding": "integer:2",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.SUB_TYPE",
> "encoding": "integer:2",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.SOURCE_TYPE",
> "encoding": "integer:2",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.STATUS",
> "encoding": "integer:2",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.CREATE_TIME",
> "encoding": "time",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.UPDATE_TIME",
> "encoding": "time",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.END_TIME",
> "encoding": "time",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.ACTIVATION_TIME",
> "encoding": "time",
> "encoding_version": 1,
> "isShardBy": false
> },
> {
> "column": "DEV_DWD_USER_CURRENCY.SOURCE",
> "encoding": "fixed_length:10",
> "encoding_version": 1,
> "isShardBy": false
> }
> ]
> },
> "hbase_mapping": {
> "column_family": [
> {
> "name": "F1",
> "columns": [
> {
> "qualifier": "M",
> "measure_refs": [
> "_COUNT_",
> "SUM_TOTAL",
> "SUM_BALANCE",
> "SUM_VALID_PERIOD",
> "MAX_TOTAL",
> "MAX_BALANCE",
> "MAX_VALID_PERIOD",
> "MIN_TOTAL",
> "MIN_BALANCE",
> "MIN_VALID_PERIOD",
> "RAW_PARENT_ID",
> "RAW_ORDER_NO"
> ]
> }
> ]
> },
> {
> "name": "F2",
> "columns": [
> {
> "qualifier": "M",
> "measure_refs": [
> "COUNT_PARENTID",
> "COUNT_ORDERNO"
> ]
> }
> ]
> }
> ]
> },
> "aggregation_groups": [
> {
> "includes": [
> "DEV_DWD_USER_CURRENCY.TYPE",
> "DEV_DWD_USER_CURRENCY.SUB_TYPE",
> "DEV_DWD_USER_CURRENCY.SOURCE_TYPE",
> "DEV_DWD_USER_CURRENCY.SOURCE",
> "DEV_DWD_USER_CURRENCY.STATUS",
> "DEV_DWD_USER_CURRENCY.CREATE_TIME",
> "DEV_DWD_USER_CURRENCY.UPDATE_TIME",
> "DEV_DWD_USER_CURRENCY.END_TIME",
> "DEV_DWD_USER_CURRENCY.ACTIVATION_TIME"
> ],
> "select_rule": {
> "hierarchy_dims": [],
> "mandatory_dims": [],
> "joint_dims": []
> }
> }
> ],
> "signature": "eiGIwgaD57yCz/jfbRCscg==",
> "notify_list": [],
> "status_need_notify": [
> "ERROR",
> "DISCARDED",
> "SUCCEED"
> ],
> "partition_date_start": 0,
> "partition_date_end": 3153600000000,
> "auto_merge_time_ranges": [],
> "volatile_range": 0,
> "retention_range": 0,
> "engine_type": 2,
> "storage_type": 2,
> "override_kylin_properties": {},
> "cuboid_black_list": [],
> "parent_forward": 3,
> "mandatory_dimension_set_list": [],
> "snapshot_table_desc_list": []
>}
>
>=====exception info====================
>org.apache.kylin.rest.exception.InternalErrorException: AppendTrieDictionary can't retrieve value from id
>while executing SQL: "select * from mmears_dev.DEV_DWD_USER_CURRENCY limit 10"
> at org.apache.kylin.rest.service.QueryService.doQueryWithCache(QueryService.java:441)
> at org.apache.kylin.rest.service.QueryService.doQueryWithCache(QueryService.java:367)
> at org.apache.kylin.rest.controller.QueryController.query(QueryController.java:93)
> at sun.reflect.GeneratedMethodAccessor209.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)
>