2016-08-30 1 views
8

Ich bin sehr neu in Saiku. Ich versuche das Saiku mit Phoenix zu integrieren. Phoenix intern verbinden mit HBase. Ich habe ein Schema erstellt und wenn der Saiku versucht, xml phönix Schema zu laden, wird mit unten Fehler ausgelöst. Ich arbeite unruhig, um es herauszufinden. Kann jemand bitte vorschlagen, dass ich etwas vermisse und was zu tun ist.java.lang.IllegalArgumentException: Nicht möglich PTableType enum für den Wert von 'MATERIALIZED VIEW' Ausnahme mit Phoenix und Hbase

Ich verwende unter Version s/ws:

Phoenix 4.4 HBase 1.1.2 Saiku 3.8

Ihre Unterstützung zu schätzen wissen.

Hier finden Sie Ausnahme-Trace:

java.lang.IllegalArgumentException: Unable to PTableType enum for value of 'MATERIALIZED VIEW' 
    at org.apache.phoenix.schema.PTableType.fromValue(PTableType.java:88) 
    at org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.getTables(PhoenixDatabaseMetaData.java:1057) 
    at org.apache.commons.dbcp.DelegatingDatabaseMetaData.getTables(DelegatingDatabaseMetaData.java:604) 
    at mondrian.rolap.aggmatcher.JdbcSchema.loadTablesOfType(JdbcSchema.java:1205) 
    at mondrian.rolap.aggmatcher.JdbcSchema.loadTables(JdbcSchema.java:1162) 
    at mondrian.rolap.aggmatcher.JdbcSchema.load(JdbcSchema.java:1042) 
    at mondrian.rolap.RolapSchema$PhysSchema.<init>(RolapSchema.java:976) 
    at mondrian.rolap.RolapSchemaLoader.createSyntheticPhysicalSchema(RolapSchemaLoader.java:1479) 
    at mondrian.rolap.RolapSchemaLoader.validatePhysicalSchema(RolapSchemaLoader.java:684) 
    at mondrian.rolap.RolapSchemaLoader.loadStage2(RolapSchemaLoader.java:376) 
    at mondrian.rolap.RolapSchemaLoader.loadStage1(RolapSchemaLoader.java:336) 
    at mondrian.rolap.RolapSchemaLoader.loadStage0(RolapSchemaLoader.java:272) 
    at mondrian.rolap.RolapSchemaLoader.createSchema(RolapSchemaLoader.java:4304) 
    at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:210) 
    at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:62) 
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:160) 
    at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:84) 
    at mondrian.olap.DriverManager.getConnection(DriverManager.java:112) 
    at mondrian.olap.DriverManager.getConnection(DriverManager.java:68) 
    at mondrian.olap4j.MondrianOlap4jConnection.<init>(MondrianOlap4jConnection.java:153) 
    at mondrian.olap4j.FactoryJdbc4Plus$AbstractConnection.<init>(FactoryJdbc4Plus.java:323) 
    at mondrian.olap4j.FactoryJdbc41Impl$MondrianOlap4jConnectionJdbc41.<init>(FactoryJdbc41Impl.java:118) 
    at mondrian.olap4j.FactoryJdbc41Impl.newConnection(FactoryJdbc41Impl.java:32) 
    at mondrian.olap4j.MondrianOlap4jDriver.connect(MondrianOlap4jDriver.java:139) 
    at java.sql.DriverManager.getConnection(DriverManager.java:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:247) 
    at org.saiku.datasources.connection.SaikuOlapConnection.connect(SaikuOlapConnection.java:111) 
    at org.saiku.datasources.connection.SaikuOlapConnection.connect(SaikuOlapConnection.java:57) 
    at org.saiku.datasources.connection.SaikuConnectionFactory.getConnection(SaikuConnectionFactory.java:29) 
    at org.saiku.web.core.SecurityAwareConnectionManager.a(SecurityAwareConnectionManager.java:293) 
    at org.saiku.web.core.SecurityAwareConnectionManager.getInternalConnection(SecurityAwareConnectionManager.java:109) 
    at org.saiku.datasources.connection.AbstractConnectionManager.getConnection(AbstractConnectionManager.java:131) 
    at org.saiku.datasources.connection.AbstractConnectionManager.getAllConnections(AbstractConnectionManager.java:158) 
    at org.saiku.datasources.connection.AbstractConnectionManager.getAllOlapConnections(AbstractConnectionManager.java:181) 
    at org.saiku.olap.discover.OlapMetaExplorer.getAllConnections(OlapMetaExplorer.java:119) 
    at org.saiku.service.olap.OlapDiscoverService.getAllConnections(OlapDiscoverService.java:58) 
    at org.saiku.web.rest.resources.OlapDiscoverResource.getConnections(OlapDiscoverResource.java:60) 
    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:497) 
    at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) 
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) 
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) 
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) 
    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:316) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:168) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    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:330) 
    at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:162) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:205) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    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:330) 
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) 
    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:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) 
    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) 

finden Sie unter meinem Schema XML (generiert durch Schema Designer, nachdem alle Würfel Abbildung und Abmessungen):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<schema metamodelVersion="4.0" name="Phoenix_Emp"> 
<Cube name="Salary_Cube"> 
    <Annotations xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></Annotations> 
    <Dimensions> 
     <Dimension source="EMP_DETAILS" visible="true"/> 
    </Dimensions> 
    <MeasureGroups> 
     <!--MeasureGroup name="Default"> 
      <DimensionLinks> 
       <FactLink dimension="US_POPULATION"/> 
      </DimensionLinks> 
     </MeasureGroup--> 
     <MeasureGroup name="Total_Salary" table="EMP_DETAILS"> 
      <DimensionLinks> 
       <FactLink dimension="EMP_DETAILS"/> 
      </DimensionLinks> 
      <Measures> 
       <Measure aggregator="sum" column="SALARY" name="Salary Total" visible="true"/> 
      </Measures> 
      <Measures/> 
     </MeasureGroup> 
    </MeasureGroups> 
</Cube> 
<Dimension key="Country" name="EMP_DETAILS" table="EMP_DETAILS" visible="true"> 
    <Attributes> 
     <Attribute hasHierarchy="false" levelType="Regular" name="Emp Id"> 
      <Key> 
       <Column name="ID"/> 
      </Key> 
     </Attribute> 
     <Attribute hasHierarchy="false" levelType="Regular" name="Name"> 
      <Key> 
       <Column name="NAME"/> 
      </Key> 
     </Attribute> 
     <Attribute hasHierarchy="false" levelType="Regular" name="Country"> 
      <Key> 
       <Column name="COUNTRY"/> 
      </Key> 
     </Attribute> 
     <Attribute hasHierarchy="false" levelType="Regular" name="Salary"> 
      <Key> 
       <Column name="SALARY"/> 
      </Key> 
     </Attribute> 
    </Attributes> 
    <Hierarchies/> 
</Dimension> 
<PhysicalSchema> 
    <Table name="EMP_DETAILS" schema=""> 
     <Key> 
      <Column name="ID"/> 
      <Column name="NAME"/> 
      <Column name="COUNTRY"/> 
      <Column name="SALARY"/> 
     </Key> 
    </Table> 
</PhysicalSchema> 

+0

Bitte lesen Sie [fragen] und [MCVE]. .. – xenteros

Antwort

0

nicht Could Finde heraus, wie der Typ "MATERIALIZED VIEW" in mondrian übergeben wird (unterhalb des Codes steht nur TABLE und VIEW, was von Phoenix unterstützt wird).

https://github.com/pentaho/mondrian/blob/4.3.0.1-R/src/main/java/mondrian/rolap/aggmatcher/JdbcSchema.java 

Es scheint Saiku ist eine andere Version von Mondrian (4.3.0.1-SPARK) verwendet, die diese Art könnte vorbei.

Sowieso von v4.8 ab, Phoenix hat damit begonnen, in DatabaseMetaData.getTables den unbekannten Tabellentyp zu ignorieren() API (Änderungen vorgenommen im Rahmen der PHOENIX-2489)

Verwandte Themen