Соединение куба микростратегии с материализованным представлением Postgres - PullRequest
0 голосов
/ 15 апреля 2019

Я создал материализованное представление в базе данных Postgres. Когда я создаю свое соединение микростратегического куба с этой базой данных Postgres, я не могу видеть это материализованное представление.

Может ли кто-нибудь помочь мне понять, почему я не могу этого увидеть?

Спасибо

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Вам необходимо отредактировать настройки чтения для вашего каталога склада. Расположение: Схема-> Параметры каталога склада-> Каталог-> Считать настройки

Запрос к таблицам:

SELECT n.nspname as NAME_SPACE,
  c.relname as TAB_NAME
FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind in ('v', 'm', 'r', 'p', '')
      AND n.nspname <> 'pg_catalog'
      AND n.nspname <> 'information_schema'
      AND n.nspname !~ '^pg_toast'
ORDER BY 1,2

Запрос столбца: повешен на LEFT JOIN в таблице INFORMATION_SCHEMA.COLUMNS (для меня пока нет проблем)

SELECT DISTINCT
    nspname                                      AS NAME_SPACE,
    relname                                      AS TAB_NAME,
    attname                                      AS COL_NAME,
    typname                                      AS DATA_TYPE,
    COALESCE(B.CHARACTER_MAXIMUM_LENGTH, attlen) AS DATA_LEN,
    NUMERIC_PRECISION                            AS DATA_PREC,
    NUMERIC_SCALE                                AS DATA_SCALE
FROM
    pg_attribute A
JOIN
    pg_class C
ON
    A.attrelid = C.oid
JOIN
    pg_namespace N
ON
    C.relnamespace = N.oid
JOIN
    pg_type T
ON
    A.atttypid = T.oid
LEFT OUTER JOIN
    INFORMATION_SCHEMA.COLUMNS B
ON
    A.attname = B.COLUMN_NAME
AND C.relname = B.TABLE_NAME
AND N.nspname = B.TABLE_SCHEMA
WHERE
    relname IN (#TABLE_LIST#)
AND attnum > 0
ORDER BY
    1,
    2,
    3

Особенно можно улучшить запрос по столбцам, но до сих пор я не обращал на это внимания, так как он отлично работает.

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

0 голосов
/ 15 апреля 2019

Найден обходной путь для этого ...

Вы можете создать представление в качестве стандартного представления, подключить его к Microstrategy, а затем удалить представление и создать как материализованное представление.Затем будет выбран только что созданный Материализованный вид, если вы сохраните то же имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...