2016-04-08 6 views
-1

私は最新のSaiku 3.8.3スタンドアロンを使用していますが、PostgreSQL 9.1をPUBLICの異なるスキーマで使用していくつか問題があります。PostgreSQLを使用したSaiku 3スタンドアロン - 選択時のMondrianエラー

は、私がデータソースを作り、それが正しく接続され、ここで私は個人的な詳細なしで使用しているデータソースです:私は、スキーマを使用しました原因私もlegancyオプションでモンドリアンスキーマを作成しました

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 

ワークベンチ。これは私が作成したスキーマです:

<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&#250;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&#250;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&#231;&#227;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> 

私は斎宮を実行し、私はスキーマを見ることができない、それがログにこのエラーが発生したときに問題が、次のとおりです。

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"] 

だから私は気づきましたCOUNTでmondrianが使用していた選択は、PostgreSQLで使用されるべきschema.tableではなくテーブルだけで行われました。 PostgreSQLパブリック・スキーマでVIEWを作成したことを確認するために、「テンポ」表でこのエラーを表示しませんでしたが、私に別のものを与えました。 PostgreSQLの選択でMondrianにSCHEMA.TABLEを使用させる方法はありますか?

+0

@ tomas-greifこの問題に対するご意見はありますか? Mondrian 4はPostgreSQLとPUBLICスキーマでしか動作しませんか? – Fizard

答えて

1

問題が解決しました。モンドリアン4(Mondrian 4はMondrian 4を使っています)にレガシーのMondrian 3 XMLを置くと、XMLがアップグレードされますが、更新後にデータベースSCHEMAタグを置くことは単に忘れてしまいます。ここで私はGoogleで斎宮グループでこれを答えトム・バーバー(のおかげでしたソリューションです

だからのlog4j.xmlを見つけ、コメントを解除し、この(重複していない、それはすでにファイルにコメントしています):。

は、 。
<appender name="MONDRIAN" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="${catalina.base}/logs/mondrian.log"/> 
    <param name="Append" value="false"/> 
    <param name="MaxFileSize" value="500KB"/> 
    <param name="MaxBackupIndex" value="1"/> 

    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
    </layout> 
    </appender> 

    <category name="mondrian"> 
     <priority value="DEBUG"/> 
     <appender-ref ref="MONDRIAN"/> 
    </category> 

STOP斎宮は、再度START少し待ってから、saiku.logを開きます(それが "saiku_directory" \ Tomcatを\ログ\ saiku.log上にある、行を検索し、このようにその何か:

<Schema name="YOUR_SCHEMA_NAME" missingLink="ignore" metamodelVersion="4.300"> 
    <PhysicalSchema> 
........ 

スキーマ全体をコピーして新しいfile.xmlに貼り付け、すべてのTAにschema = "SCHEMA_NAME"タグを挿入します

OLD: 
<Table name="chegada" alias="chegada"> 
NEW: 
<Table name="chegada" schema="fato" alias="chegada"> 

SAIKUを再起動し、このスキーマをアップロードしてsaikuを再起動します。

問題が解決しました。 :D

関連する問題