Отчеты Pentaho Business Analytics без десятичных чисел - PullRequest
0 голосов
/ 10 июля 2019

У меня есть куб Мондриана с "индивидуумами". Мне нужно добавить две категории, связанные с каждым человеком, с числовым значением вероятности для этих категорий. Эти данные находятся в новом измерении «Категории». Данные поступают из материализованного представления Postgres 9, а вероятности имеют тип «числовой» в Postgres.

Однако, когда я пытаюсь показать данные как «числовые», строки с десятичными значениями вообще не отображаются.

Если я возьму вероятности в проценты и округлю их значения, тогда все строки отображаются правильно.

<Dimension name="Categories">
    <Hierarchy name="Category1" visible="true" hasAll="true" primaryKey="id" caption="Categories">
      <Table name="individuals_mv" schema="public"/>
      <Level  approxRowCount="6000" name="Category1" visible="true" column="category_1" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"/>
    </Hierarchy>
    <Hierarchy name="CategoryProbability1" visible="true" hasAll="true" primaryKey="id" caption="Categories">
      <Table name="individuals_mv" schema="public"/>
      <Level  approxRowCount="6000" name="CategoryProb1" visible="true" column="category_prob_1" type="Numeric" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"/>
    </Hierarchy>
    <Hierarchy name="Category2" visible="true" hasAll="true" primaryKey="id" caption="Categories">
      <Table name="individuals_mv" schema="public"/>
      <Level  approxRowCount="6000" name="Category2" visible="true" column="category_2" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"/>
    </Hierarchy>
    <Hierarchy name="CategoryProbability2" visible="true" hasAll="true" primaryKey="id" caption="Categories">
      <Table name="individuals_mv" schema="public"/>
      <Level  approxRowCount="6000" name="CategoryProb2" visible="true" column="category_prob_2" type="Numeric" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"/>
    </Hierarchy>
 </Dimension>

Содержание individual_mv:

individual  category_1  category_prob_1 category_2  category_prob_2
61411120    [NULL]      [NULL]          [NULL]      [NULL]
10658560    [NULL]      [NULL]          [NULL]      [NULL]
60652135    [NULL]      [NULL]          [NULL]      [NULL]
10657820    "C1"        0.32846         "C3"        0.1957235187
60873351    "C1"        0.33012354      "C2"        0.2763309777
61399718    [NULL]      [NULL]          [NULL]      [NULL]
61378272    [NULL]      [NULL]          [NULL]      [NULL]
61378554    [NULL]      [NULL]          [NULL]      [NULL]

Вывод отчета:

Individual       Category1            CategoryProb1        Category2            CategoryProb2
"10658560"      "Not Available"      "Not Available"      "Not Available"      "Not Available"
"60652135"      "Not Available"      "Not Available"      "Not Available"      "Not Available"
"61378272"      "Not Available"      "Not Available"      "Not Available"      "Not Available"
"61378554"      "Not Available"      "Not Available"      "Not Available"      "Not Available"
"61399718"      "Not Available"      "Not Available"      "Not Available"      "Not Available"
"61411120"      "Not Available"      "Not Available"      "Not Available"      "Not Available"

1 Ответ

0 голосов
/ 15 июля 2019

Проще говоря: вы не можете использовать десятичные дроби в качестве ключей уровня в Mondrian.

Уровни иерархии должны быть дискретными, а числовые значения - нет.Таким образом, Мондриан всегда будет обрезать десятичную часть.

Вместо этого следует указывать числовые значения в качестве свойств уровней строк.

Например,

<Dimension name="Categories">
    <Hierarchy name="Category1" visible="true" hasAll="true" primaryKey="id" caption="Categories">
      <Table name="individuals_mv" schema="public"/>
      <Level  approxRowCount="6000" name="Category1" visible="true" column="category_1" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
            <Property name="CategoryProb1" column="category_prob_1" type="Numeric" />
      </Level>
    </Hierarchy>
(...)
 </Dimension>

Эти свойствазатем можно использовать для определения вычисляемых мер по запросу MDX.Но их нельзя напрямую использовать в качестве уровней.

Кроме того, вы можете усечь значения до фиксированного числа десятичных знаков и использовать LevelType в качестве строки, но это будет несколько неудобно.

...