2

嗨,尝试将 saiku 与 vertica 一起使用。

Vertica 具有数据库 -> 模式 -> 表的概念。所以在 xml 文件中,我给出的是 schemaName.tableName 而不是表名

<?xml version="1.0"?>
<Schema name="Sales" metamodelVersion='3.6' quoteSql='false'>
<Cube name="Sales" defaultMeasure="sales">
<Table name="schemaName.factName"></Table>
  <Dimension name="date_mysql">
    <Hierarchy hasAll="true">
      <Level name="date" column="date" type="Date" uniqueMembers="false"/>
    </Hierarchy>
  </Dimension>
  <Measure name="sales" aggregator="sum" column="sales" formatString="#,###" />
  <Measure name="orders" aggregator="sum" column="orders" formatString="#,###" />
</Cube>
</Schema>

这似乎行得通,蒙德里安能够正确地选择度量和尺寸。问题是生成的 SQL 查询在语法上是错误的

select "schemaName"."tableName"."date" as "c0" 
from "schemaName"."tableName" as "schemaName"."tableName" 
group by "schemaName"."tableName"."date" 
order by CASE WHEN "schemaName"."tableName"."date" IS NULL THEN 1 ELSE 0 END, "schemaName"."tableName"."date" ASC

这里有两个问题。

  • Vertica 将双引号视为任何其他字符,因此“tableName”和tableName 是不同的。(quoteSql='false' 不能像使用元模型 3.6 的 Iam 一样工作)
  • Mondrian 似乎从指定的表名(这里是 schema.table)生成别名,这里出错了。

还有其他方法可以提及架构吗?以及如何摆脱双引号?

4

1 回答 1

2

表标签也带有一个模式属性。(感谢 Paul Stoellberger 指出)所以

<Table name="factName" schema="schemaName"></Table>

这可以解决方言和引用问题

http://mondrian.pentaho.com/documentation/xml_schema.php#Table

于 2014-02-13T06:05:41.453 回答