如何在 Redshift 或 Postgres 的视图中获取列依赖?
How to get column dependencies in views in Redshift or Postgres?
我已经在 Redshift 中定义了一些基于其他 views/tables 的视图,并希望从系统表中获取有关列级依赖项的信息。
比如说,我有这些定义:
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);
我想做的是在系统表或目录表上创建某种查询,return 类似于:
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
我已经尝试过此处给出的解决方案:。但是,此查询不会生成我正在寻找的 "target column" 列,我不知道如何调整它。
这可能吗?理想情况下,我想在 Redshift 中执行此操作,但如果需要,我可以使用更新版本的 Postgres。
在 PostgreSQL 中没有与“目标列”关联的依赖项,因此您无法在元数据中找到它。
它是对源table和列有依赖的完整视图(确切地说是它的查询重写规则)。
我已经在 Redshift 中定义了一些基于其他 views/tables 的视图,并希望从系统表中获取有关列级依赖项的信息。
比如说,我有这些定义:
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);
我想做的是在系统表或目录表上创建某种查询,return 类似于:
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 中执行此操作,但如果需要,我可以使用更新版本的 Postgres。
在 PostgreSQL 中没有与“目标列”关联的依赖项,因此您无法在元数据中找到它。
它是对源table和列有依赖的完整视图(确切地说是它的查询重写规则)。