It seems SUM(CASE WHEN...) does not supported yet. Could you log a JIRA? 2017-08-11 16:33 GMT+08:00 578300...@qq.com <believe...@foxmail.com>:
> Thank you billy,I know how to solve the problem, but there is another > error. > > > error > > > [Kylin][ODBC 1.0(w) Driver]The REST query request failed, the error > message is: Error while executing SQL "SELECT SUM((CASE WHEN (( > EXTRACT(YEAR FROM "BASEINFO_REPAY_HIS_FACT_PARTATION"."CAL_DATE") = 2017) > AND ( EXTRACT(MONTH FROM "BASEINFO_REPAY_HIS_FACT_PARTATION"."CAL_DATE") > = 6)) THEN "BASEINFO_REPAY_HIS_FACT_PARTATION"."REMAIN_CAPITAL_INTEREST" > ELSE 0 END)) AS "sum_Calculation_FIIAIBABGCIFEFEJ_ok" FROM > "TN_QUERY"."BASEINFO_REPAY_HIS_FACT_PARTATION" > "BASEINFO_REPAY_HIS_FACT_PARTATION" LEFT JOIN "TN_QUERY"."DIM_BP_PRODUCT" > "DIM_BP_PRODUCT" ON ("BASEINFO_REPAY_HIS_FACT_PARTATION"."PRODUCT_CODE" = > "DIM_BP_PRODUCT"."PRODUCT_CODE") LEFT JOIN "TN_QUERY"."DIM_BP_SALES_CHANNEL" > "DIM_BP_SALES_CHANNEL" ON ("BASEINFO_REPAY_HIS_FACT_PARTATION"."BUSINESS_TYPE" > = "DIM_BP_SALES_CHANNEL"."CHANNEL_CODE") LEFT JOIN > "TN_QUERY"."DIM_FUND_CHANNEL" "DIM_FUND_CHANNEL" ON > ("BASEINFO_REPAY_HIS_FACT_PARTATION"."ROOT_CODE" = > "DIM_FUND_CHANNEL"."FUND_CHANNEL_CODE") LEFT JOIN "TN_QUERY"."DIM_ORG" > "DIM_ORG" ON ("BASEINFO_REPAY_HIS_FACT_PARTATION"."BRANCH_CODE" = > "DIM_ORG"."BRANCH_CODE") ": Can't find any realization. Please confirm with > providers. SQL digest: fact table > TN_QUERY.BASEINFO_REPAY_HIS_FACT_PARTATION,group > by [],filter on [],with aggregates[FunctionDesc [expression=SUM, > parameter=null, returnType=null]]. > > > > > It seems about "case when" but how to solve it? Thank you. > > > > > ------------------ 原始邮件 ------------------ > 发件人: "Billy Liu";<billy...@apache.org>; > 发送时间: 2017年8月10日(星期四) 晚上7:32 > 收件人: "dev"<dev@kylin.apache.org>; > > 主题: Re: The REST query request failed > > > > This sql is not generated by kylin, Kylin does not generate any query. > Kylin is read only OLAP system. Kylin accepts SQL and returns query result. > > Please try that SQL in Kylin insight tab directly, if not work, you could > adjust the statement to figure out which one is the incompatible one. > > 2017-08-10 17:26 GMT+08:00 578300...@qq.com <believe...@foxmail.com>: > > > You mean that the tableau's calculation field query and kylin can not be > > well fused? > > Beacause the sql is automatically generated by kylin on the basis of > > tableau's calculation field. > > And the environment is: > > jdk1.7.0_80 > > hadoop-2.5.0-cdh5.3.9 > > hbase-0.98.6-cdh5.3.9 > > apache-kylin-1.6.0 > > tableau 9 > > > > > > ------------------ 原始邮件 ------------------ > > 发件人: "Billy Liu";<billy...@apache.org>; > > 发送时间: 2017年8月10日(星期四) 下午5:05 > > 收件人: "dev"<dev@kylin.apache.org>; > > > > 主题: Re: The REST query request failed > > > > > > > > The error is clear, some sql grammar did not work in your case, such as > "{d > > '2017-06-30'))}" > > > > 2017-08-10 15:58 GMT+08:00 578300...@qq.com <believe...@foxmail.com>: > > > > > Oh,I see. > > > I will redescribe with word. > > > > > > > > > I created a calculated field in tableau to judge the date(统计日期) is or > not > > > the last month of last year: > > > YEAR([统计日期])=YEAR(DATEADD('year',-1,[截止日期])) and MONTH([统计日期])=12 > > > > > > > > > > > > when I use the calculated field ,there is an error in kylin.log: > > > 2017-08-10 15:44:27,279 ERROR [http-bio-7070-exec-2] > > > controller.BasicController:44 : > > > org.apache.kylin.rest.exception.InternalErrorException: Encountered > ")" > > > at line 1, column 154. Was expecting: "}" ... > > > at org.apache.kylin.rest.service. > QueryService.doQueryWithCache( > > > QueryService.java:391) > > > 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:57) > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > > > DelegatingMethodAccessorImpl.java:43) > > > at java.lang.reflect.Method.invoke(Method.java:606) > > > 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(ExceptionTranslationFilt > er.java:113) > > > at org.springframework.security.web.FilterChainProxy$ > > > VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > > at org.springframework.security.web.session. > > > SessionManagementFilter.doFilter(SessionManagementFilter.java:103) > > > 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 org.springframework.security.web.savedrequest. > > > RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) > > > at org.springframework.security.web.FilterChainProxy$ > > > VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > > at org.springframework.security.web.authentication.www. > > > BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) > > > at org.springframework.security.web.FilterChainProxy$ > > > VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > > at org.springframework.security.web.authentication.ui. > > > DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGe > neratingFilt > > > er.java:91) > > > at org.springframework.security.web.FilterChainProxy$ > > > VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > > at org.springframework.security.web.authentication. > > > AbstractAuthenticationProcessingFilter.doFilter( > > > AbstractAuthenticationProcessingFilter.java:183) > > > at org.springframework.security.web.FilterChainProxy$ > > > VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > > at org.springframework.security.web.authentication.logout. > > > LogoutFilter.doFilter(LogoutFilter.java:105) > > > at org.springframework.security.web.FilterChainProxy$ > > > VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > > at org.springframework.security.web.context. > > > SecurityContextPersistenceFilter.doFilter(SecurityContextPer > sistenceFilt > > > 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.AbstractProt > ocol$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:1145) > > > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > > > ThreadPoolExecutor.java:615) > > > at org.apache.tomcat.util.threads.TaskThread$ > > WrappingRunnable.run( > > > TaskThread.java:61) > > > at java.lang.Thread.run(Thread.java:745) > > > > > > > > > > > > > > > > > > > > > > > > and in kylin.log,the sql is: > > > SELECT (CASE WHEN (( EXTRACT(YEAR FROM "BASEINFO_REPAY_HIS_FACT_ > > PARTATION"."CAL_DATE") > > > = EXTRACT(YEAR FROM TIMESTAMPADD(SQL_TSI_YEAR,-1,{d '2017-06-30'))}) > > > AND ( EXTRACT(MONTH FROM "BASEINFO_REPAY_HIS_FACT_PARTA > TION"."CAL_DATE") > > > = 12)) THEN 1 WHEN NOT (( EXTRACT(YEAR FROM "BASEINFO_REPAY_HIS_FACT_ > > PARTATION"."CAL_DATE") > > > = EXTRACT(YEAR FROM TIMESTAMPADD(SQL_TSI_YEAR,-1,{d '2017-06-30'))}) > > > AND ( EXTRACT(MONTH FROM "BASEINFO_REPAY_HIS_FACT_PARTA > TION"."CAL_DATE") > > > = 12)) THEN 0 ELSE NULL END) AS "Calculation_FJFAIBABFECFFCFC" FROM > > > "TN_QUERY"."BASEINFO_REPAY_HIS_FACT_PARTATION" > "BASEINFO_REPAY_HIS_FACT_ > > PARTATION" > > > GROUP BY (CASE WHEN (( EXTRACT(YEAR FROM "BASEINFO_REPAY_HIS_FACT_ > > PARTATION"."CAL_DATE") > > > = EXTRACT(YEAR FROM TIMESTAMPADD(SQL_TSI_YEAR,-1,{d '2017-06-30'))}) > > > AND ( EXTRACT(MONTH FROM "BASEINFO_REPAY_HIS_FACT_PARTA > TION"."CAL_DATE") > > > = 12)) THEN 1 WHEN NOT (( EXTRACT(YEAR FROM "BASEINFO_REPAY_HIS_FACT_ > > PARTATION"."CAL_DATE") > > > = EXTRACT(YEAR FROM TIMESTAMPADD(SQL_TSI_YEAR,-1,{d '2017-06-30'))}) > > > AND ( EXTRACT(MONTH FROM "BASEINFO_REPAY_HIS_FACT_PARTA > TION"."CAL_DATE") > > > = 12)) THEN 0 ELSE NULL END) > > > > > > > > > > > > > > > The sql generated Automatically. > > > Thank you! > > > > > > > > > > > > > > > > > > > > > ------------------ 原始邮件 ------------------ > > > 发件人: "Billy Liu";<billy...@apache.org>; > > > 发送时间: 2017年8月10日(星期四) 下午3:20 > > > 收件人: "dev"<dev@kylin.apache.org>; > > > > > > 主题: Re: The REST query request failed > > > > > > > > > > > > Attachment is not allowed in the mailer, you could upload the images to > > > some public image services. > > > > > > 2017-08-09 19:21 GMT+08:00 578300...@qq.com <believe...@foxmail.com>: > > > > > > > > > > > The picture may not show up, I put them in the attachment.Thank you! > > > > > > > > ------------------ 原始邮件 ------------------ > > > > *发件人:* "578300...@qq.com";<believe...@foxmail.com>; > > > > *发送时间:* 2017年8月9日(星期三) 晚上6:08 > > > > *收件人:* "dev"<dev@kylin.apache.org>; > > > > *主题:* The REST query request failed > > > > > > > > Hello! > > > > when I use tableau to connect to kylin,some error arised. > > > > > > > > I created a calculated field in tableau > > > > > > > > > > > > and in kylin.log,the sql is: > > > > > > > > > > > > How is this caused and how can I solve it. Thank you very much! > > > > > > > > > > > > > >