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(ExceptionTranslationFilter.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(DefaultLoginPageGeneratingFilt
> 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(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: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_PARTATION"."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_PARTATION"."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_PARTATION"."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_PARTATION"."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!
> >
> >
>

Reply via email to