Mondrian saiku - ошибка перевода запроса vertica
Привет, пытаясь использовать Сайку с Vertica.
В Vertica есть концепция db -> schemas -> tables. Таким образом, в файле 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' не работает как I am с использованием метамодели 3.6)
- Мондриан, кажется, генерирует псевдоним из указанного имени таблицы (здесь это schema.table), что здесь не так.
Есть ли другой способ упомянуть схему? А как избавиться от двойных кавычек?
1 ответ
Табличный тег также содержит атрибут схемы (спасибо Полу Стелльбергеру за указание)
<Table name="factName" schema="schemaName"></Table>
Это заботится о диалекте и проблемах цитирования