java.lang.illegalargumentexception:无法使用phoenix和hbase为“materialized view”异常的值ptabletype枚举

wmomyfyw  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(438)

我对塞库很陌生。我想把赛库和Phoenix城结合起来。菲尼克斯实习生连接hbase。我创建了一个模式,当saiku试图加载phoenix模式xml时,触发了以下错误。我焦躁不安地工作着想弄明白。有谁能告诉我我有什么遗漏,该怎么办。
我正在使用以下版本的s/ws:
Phoenix4.4 hbase 1.1.2赛库3.8
感谢您的支持。
请查找以下异常跟踪:

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)

请在下面找到我的模式xml(由模式设计器在Map所有多维数据集和维度后生成):

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

dsf9zpds1#

找不到“materialized view”类型在mondrian中的传递方式(下面的代码仅说明phoenix支持的表和视图)。

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

看来塞库正在使用一些不同版本的蒙德里安(4.3.0.1-spark),这可能是通过这种类型。
无论如何,从v4.8开始,phoenix已经开始忽略databasemetadata.gettables()api中的未知表类型(作为phoenix-2489的一部分所做的更改)

相关问题