Как получить зависимости столбцов в представлениях в Redshift или Postgres? - PullRequest
1 голос
/ 16 апреля 2019

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

Скажем, например, у меня есть следующие определения:

CREATE TABLE t1 AS (SELECT 2 as a, 4 as b, 99 as c );
CREATE VIEW v1 AS (SELECT a, b FROM t1);
CREATE VIEW v2 AS (SELECT a*b/2 as x FROM v1);

Что я хотел бы сделать, так это создать какой-то запрос к системным или каталожным таблицам, который будет возвращать что-то вроде:

target_column |  target_table_or_view | source_column | source_table_or_view |
------------------------------------------------------------------------------
     x        |          v2           |        a      |           v1
     x        |          v2           |        b      |           v1
     a        |          v1           |        a      |           t1
     b        |          v1           |        b      |           t1

Я пробовал решение, приведенное здесь: Как создать список зависимостей для объекта в Redshift? . Однако этот запрос не создает столбец «целевой столбец», который я ищу, и я не знаю, как его настроить.

Возможно ли это? В идеале я хотел бы сделать это в Redshift, но при необходимости я могу использовать более новую версию Postgres.

1 Ответ

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

Нет зависимости, связанной с & ldquo; целевой столбец & rdquo; в PostgreSQL, поэтому вы не можете найти его в метаданных.

Это полное представление (точнее, его правило перезаписи запросов), которое зависит от исходной таблицы и столбца.

...