Ich benutze die neueste Saiku 3.8.3 Standalone und ich habe einige Probleme mit der Datenbank PostgreSQL 9.1 mit verschiedenen Schemas dann PUBLIC.Saiku 3 Standalone mit PostgreSQL - Mondrian Fehler bei Auswahl
machte ich die Datenquelle und es richtig angeschlossen, hier ist die Datenquelle ich ohne persönliche Daten verwenden bin:
type=OLAP
name=chegadaturistas
driver=mondrian.olap4j.MondrianOlap4jDriver
location=jdbc:mondrian:Jdbc=jdbc:postgresql://DBNAME:PORT/DB;Catalog=mondrian:///datasources/chegada_turistas.xml;JdbcDrivers=org.postgresql.Driver;
username=postgres
password=PASSWORD
security.enabled=false
Ich habe auch das Mondrian Schema mit Legancy Option erstellt Ursache I Schema verwendet haben Werkbank. Dies ist das Schema die ich angelegt habe:
<Schema name="DEPES" description="DEPES">
<Cube name="CHEGADAS" visible="true" cache="true" enabled="true">
<Table name="chegada" schema="fato" alias="chegada">
</Table>
<Dimension type="StandardDimension" visible="true" foreignKey="id_tempo" highCardinality="false" name="Ano">
<Hierarchy name="ANO" visible="true" hasAll="true" allMemberName="Todos os Anos" primaryKey="id_tempo">
<Table name="tempo" schema="dimensao" alias="Tempo">
</Table>
<Level name="ANO" visible="true" column="nu_ano" nameColumn="nu_ano" ordinalColumn="nu_ano" type="Integer" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="id_origem" highCardinality="false" name="Origem">
<Hierarchy name="Origem" visible="true" hasAll="true" allMemberName="Todas as Origens" primaryKey="id_origem">
<Table name="origem" schema="dimensao">
</Table>
<Level name="Continente" visible="true" column="no_continente" nameColumn="no_continente" ordinalColumn="no_continente" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="Pais" visible="true" column="no_pais" nameColumn="no_pais" ordinalColumn="no_pais" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="id_via" highCardinality="false" name="Via">
<Hierarchy name="Via" visible="true" hasAll="true" allMemberName="Todas as Vias" primaryKey="id_via">
<Table name="via" schema="dimensao">
</Table>
<Level name="Nome" visible="true" column="id_via" nameColumn="no_via" ordinalColumn="no_via" type="Integer" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="id_destino" highCardinality="false" name="Destino">
<Hierarchy name="Destino" visible="true" hasAll="true" allMemberName="Todos os Destinos" primaryKey="id_destino">
<Table name="destino" schema="dimensao">
</Table>
<Level name="Regiao" visible="true" column="no_regiao" nameColumn="no_regiao" ordinalColumn="no_regiao" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="UF" visible="true" column="no_uf" nameColumn="no_uf" ordinalColumn="no_uf" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="id_tempo" highCardinality="false" name="Mes">
<Hierarchy name="Mes" visible="true" hasAll="true" allMemberName="Todos os Meses" primaryKey="id_tempo">
<Table name="tempo" schema="dimensao">
</Table>
<Level name="Nome do Mes" visible="true" column="nu_mes" nameColumn="no_mes" ordinalColumn="nu_mes" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="Número do Mes" visible="true" column="nu_mes" nameColumn="nu_mes" ordinalColumn="nu_mes" type="Integer" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="id_tempo" highCardinality="false" name="Semestre">
<Hierarchy name="Semestre" visible="true" hasAll="true" allMemberName="Todos os Semestres" primaryKey="id_tempo">
<Table name="tempo" schema="dimensao">
</Table>
<Level name="Número do Semestre" visible="true" column="nu_semestre" nameColumn="nu_semestre" ordinalColumn="nu_semestre" type="Integer" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
<Level name="Descrição do Semestre" visible="true" column="nu_semestre" nameColumn="no_semestre" ordinalColumn="no_semestre" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="qt_chegada" column="qt_chegada" datatype="Integer" aggregator="sum" caption="Chegadas" description="Quantidade de Turistas" visible="true">
</Measure>
</Cube>
<Schema>
Das Problem ist, wenn ich Saiku betreibe ich das Schema nicht sehen kann, und es hat diesen Fehler im Protokoll:
2016-04-08 08:17:31,976 WARN [mondrian.rolap.RolapSchema] Model is in legacy format
2016-04-08 08:17:36,725 ERROR [org.saiku.web.core.SecurityAwareConnectionManager] Error connecting: chegadaturistas
mondrian.olap.MondrianException: Mondrian Error:Internal error: Reading row count from table [null, null, tempo]; sql=[select count(*) from "tempo"]
So bemerkte ich die select verwendet von mondrian im COUNT war nur mit der Tabelle und nicht mit der schema.table, die für PostgreSQL verwendet werden soll. Um sicher zu gehen, dass ich ein VIEW im öffentlichen PostgreSQL-Schema erstellt habe und es mir diesen Fehler in der "Tempo" -Tabelle nicht gegeben hat, aber mir auf einem anderen gegeben hat. Gibt es eine Möglichkeit, Mondrian zu zwingen, die SCHEMA.TABLE auf den Selects für PosgreSQL zu verwenden?
@ tomas-greif, hast du einen Vorschlag für dieses Problem? Funktioniert Mondrian 4 im PUBLIC-Schema nur mit PostgreSQL? – Fizard