2013-01-05 43 views
4

我想學習如何建立一個BI堆棧,但我被困在理解什麼進程的一部分失敗:調試BI堆棧:MYSQL +蒙德里安+齋宮服務器

  1. 設計一個星型模式:完成從我的OLTP數據庫(MySQL的)
  2. 加載數據到我的星數據庫(MySQL的太):與Pentaho的數據集成
  3. 製作蒙德里安XML描述立方體完成:與蒙德里安架構工作臺
  4. Setuping一齋宮做服務器的正確配置使用Mondrian XML描述a nd MySQL明星數據庫:完成

結果:沒有立方體出現在Saiku。我不知道這可能來自哪個元素。第2步是正確的,因爲我可以運行這部分。

這裏是我的星型模式:

CREATE TABLE IF NOT EXISTS `dim_date` (
    `date_id` int(11) NOT NULL AUTO_INCREMENT, 
    `date` datetime DEFAULT NULL, 
    `month` varchar(3) DEFAULT NULL, 
    `year` varchar(4) DEFAULT NULL, 
    PRIMARY KEY (`date_id`), 
    KEY `idx_dim_date_lookup` (`date`,`month`,`year`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE IF NOT EXISTS `dim_sector` (
    `sector_id` int(11) NOT NULL AUTO_INCREMENT, 
    `sector` varchar(255) DEFAULT NULL, 
    PRIMARY KEY (`sector_id`), 
    KEY `idx_dim_sector_lookup` (`sector`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE IF NOT EXISTS `dim_size` (
    `size_id` int(11) NOT NULL AUTO_INCREMENT, 
    `size` varchar(10) DEFAULT NULL, 
    PRIMARY KEY (`size_id`), 
    KEY `idx_dim_size_lookup` (`size`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE IF NOT EXISTS `fact_companies` (
    `fact_id` int(11) NOT NULL AUTO_INCREMENT, 
    `count` int(11) NOT NULL, 
    `date_id` int(11) NOT NULL, 
    `sector_id` int(11) NOT NULL, 
    `size_id` int(11) NOT NULL, 
    PRIMARY KEY (`fact_id`), 
    KEY `date_id` (`date_id`), 
    KEY `sector_id` (`sector_id`), 
    KEY `size_id` (`size_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

ALTER TABLE `fact_companies` 
    ADD CONSTRAINT `fact_companies_ibfk_1` FOREIGN KEY (`date_id`) REFERENCES `dim_date` (`date_id`), 
    ADD CONSTRAINT `fact_companies_ibfk_2` FOREIGN KEY (`sector_id`) REFERENCES `dim_sector` (`sector_id`), 
    ADD CONSTRAINT `fact_companies_ibfk_3` FOREIGN KEY (`size_id`) REFERENCES `dim_size` (`size_id`); 

我蒙德里安XML是(大小丟失):

type=OLAP 
name=test 
driver=mondrian.olap4j.MondrianOlap4jDriver 
location=jdbc:mondrian:Jdbc=jdbc:mysql://192.168.1.43/testdb;Catalog=res:test/testdb.xml;JdbcDrivers=com.mysql.jdbc.Driver; 
username=test 
password=test 

我:

<Schema name="New Schema1"> 
    <Cube name="companies_cube" visible="true" cache="true" enabled="true"> 
    <Table name="fact_companies"> 
    </Table> 
    <Dimension type="TimeDimension" visible="true" foreignKey="date_id" name="date"> 
     <Hierarchy name="All" visible="true" hasAll="true" allMemberName="all" allMemberCaption="all" allLevelName="all"> 
     <Level name="Date" visible="true" table="dim_date" column="date" nameColumn="date" uniqueMembers="false"> 
     </Level> 
     <Level name="Month" visible="true" table="dim_date" column="month" nameColumn="month" uniqueMembers="false"> 
     </Level> 
     <Level name="Year" visible="true" table="dim_date" column="year" nameColumn="year" uniqueMembers="false"> 
     </Level> 
     </Hierarchy> 
    </Dimension> 
    <Dimension type="StandardDimension" visible="true" foreignKey="sector_id" name="Sector"> 
     <Hierarchy name="Sector" visible="true" hasAll="true" primaryKey="sector_id" primaryKeyTable="sector_id"> 
     <Level name="Sector" visible="true" table="dim_sector" column="sector_id" nameColumn="sector" uniqueMembers="false"> 
     </Level> 
     </Hierarchy> 
    </Dimension> 
    <Measure name="count companies" column="count" aggregator="sum" visible="true"> 
    </Measure> 
    </Cube> 
</Schema> 

我和齋宮服務器的連接是通過做考慮到提供的foodmart樣本和saiku的文檔,寫了這個。

我應該在哪裏看?我能做些什麼來查看哪些不起作用?開發BI基礎設施的專業方式是什麼?

+0

檢查saiku服務器日誌 - 看看你能否看到它是否找到該文件。問題是要麼saiku沒有找到mondrian xml,要麼是由於某種原因無法驗證。 (Saiku不會接受無效的模式)。或者嘗試freenode IRC上的## saiku以獲得即時幫助! – Codek

+0

我檢查了日誌文件,沒有提及我的文件。 – AsTeR

+0

正是我現在正在......對於Pentaho的商務智能套件而言,正確的答案是「什麼是開發BI基礎設施的專業方式?」是爲了支付他們的支持:D沒辦法 - 無論發生什麼,我都會堅持下去,並把它變成博客文章。 – Raffael

回答

3

由於查詢未能執行,但現在加載了saiku,我不能100%運行。

第一點:tomcat/saiku/catalina.out包含有趣的調試日誌信息。第二點:saiku配置中的位置字符串確實指向缺少的文件,這沒有幫助。第三點:維度表應該在Mondrian的XML中提及(正確的版本如下)。

<Schema name="New Schema1"> 
    <Cube name="companies_cube" visible="true" cache="true" enabled="true"> 
    <Table name="fact_companies"> 
    </Table> 
    <Dimension type="TimeDimension" visible="true" foreignKey="date_id" highCardinality="false" name="date"> 
     <Hierarchy name="Date" visible="true" hasAll="true" allMemberName="all dates" allMemberCaption="all dates" allLevelName="all dates"> 
     <Table name="dim_date"> 
     </Table> 
     <Level name="Year" visible="true" table="dim_date" column="year" nameColumn="year" type="String" uniqueMembers="false" levelType="TimeYears" hideMemberIf="Never"> 
     </Level> 
     <Level name="Month" visible="true" table="dim_date" column="month" nameColumn="month" type="String" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never"> 
     </Level> 
     <Level name="Date" visible="true" table="dim_date" column="date" nameColumn="date" type="String" uniqueMembers="false" levelType="TimeDays" hideMemberIf="Never"> 
     </Level> 
     </Hierarchy> 
    </Dimension> 
    <Dimension type="StandardDimension" visible="true" foreignKey="sector_id" highCardinality="false" name="Sector"> 
     <Hierarchy name="Sector" visible="true" hasAll="true" allMemberName="all sector" allMemberCaption="all sector" allLevelName="all sector" primaryKey="sector_id"> 
     <Table name="dim_sector" alias=""> 
     </Table> 
     <Level name="Sector" visible="true" table="dim_sector" column="sector_id" nameColumn="sector" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"> 
     </Level> 
     </Hierarchy> 
    </Dimension> 
    <Measure name="count companies" column="count" aggregator="sum" visible="true"> 
    </Measure> 
    </Cube> 
</Schema> 
+0

請注意,如果你是使用普通的記事本++來構建你的.xml文件,如果發生任何驗證錯誤,多維數據集將不會被處理並且會丟失。對於模式驗證,您可以使用以下極其有用的插件:http://ivy-is.co.uk/ivyse-ivy-schema-editor/ – rpd