Java.lang.IllegalArgumentException: Cannot enumerate PTableType value for value "MATERIALIZED VIEW" Exception using Phoenix and Hbase

I have a lot of new things for Saikou. I am trying to integrate saiku with phoenix. Phoenix intern connects to HBase. I created a schema, and when Saiku tries to load phoenix schema xml, Am starts with the error below. I work restlessly to figure this out. Can someone suggest me something to miss and what to do.

I am using the s / ws version below:

Phoenix 4.4 HBase 1.1.2 Saikou 3.8

Appreciate your support.

The following is a list of exception traces:

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) 

Below you will find my XML schema (created by the schema designer after matching all the cubes and sizes):

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

+8
java hbase olap phoenix saiku
source share
1 answer

It was not possible to find out how the MATERATED VIEW type is passed in Mondrian (the code below says only TABLE and VIEW, which is supported by Phoenix).

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

It seems that saiku is using some other version of mondrian (4.3.0.1-SPARK) that can pass this type.

In any case, starting from version 4.0, Phoenix began to ignore an unknown table type in the DatabaseMetaData.getTables () API (changes made as part of PHOENIX-2489)

0
source share

All Articles