嗨,尝试将 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)生成别名,这里出错了。
还有其他方法可以提及架构吗?以及如何摆脱双引号?