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)
>