Amazon redshift 为数据仓库ods层中的每个表创建1:1视图

Amazon redshift 为数据仓库ods层中的每个表创建1:1视图,amazon-redshift,data-warehouse,Amazon Redshift,Data Warehouse,我开始在一家公司做数据工程师,我们的红移集群中有一个奇怪的架构,我想知道这是否有意义 我们有一系列的模式,其中一个复制器(Attunity)在OLTP系统发生变化时不断更新表,基本上在我们的仓库ODS层中创建表的实时镜像。这方面的实现细节并不重要 然而,出于某种原因,数据架构师决定,要在ODS层中使用该数据,我们不应该直接从这些表中进行选择。因此,他创建了一系列模式,我们必须为每个物理表创建一个视图。视图是精确的1:1副本,它们基本上都只是表中的一个选择col1,col2,[…] 这给我们带来了

我开始在一家公司做数据工程师,我们的红移集群中有一个奇怪的架构,我想知道这是否有意义

我们有一系列的模式,其中一个复制器(Attunity)在OLTP系统发生变化时不断更新表,基本上在我们的仓库ODS层中创建表的实时镜像。这方面的实现细节并不重要

然而,出于某种原因,数据架构师决定,要在ODS层中使用该数据,我们不应该直接从这些表中进行选择。因此,他创建了一系列模式,我们必须为每个物理表创建一个视图。视图是精确的1:1副本,它们基本上都只是表中的一个
选择col1,col2,[…]

这给我们带来了各种各样的麻烦,而且这是一个巨大的维护开销,因为为了从OLTP到OLAP获得一个新表,我们需要为一个没有任何用途的附加组件提供和授予权限(至少在我看来),并且每当OLTP系统中出现类似附加列的更改时,我们必须在ODS层的两个不同位置添加它。从本质上讲,需要管理的事情是原来的两倍


有什么技术原因可以解释这一点吗?

答案很简单:“如果ODS表被重命名,或者某个特定列被重命名,您如何处理这种情况?”如果答案是您在各自的视图中传播此更改,那么您是对的,您会产生不必要的开销。否则,如果您使用视图来否定(还原)更改,您可以从附加的视图层中获益。这不是我的情况。。。我们的视图层必须始终与底层物理表完全相同。他们最初给出的理由与表锁有关,如果没有视图层,表锁就是一个问题。但从技术角度来看,无论何时从视图中进行选择,都不会改变这样一个事实,即在引擎盖下,您无论如何都是从物理表中进行选择,只是将视图作为中间步骤。所以这个解释对我来说毫无意义,直到今天我还是怀疑,认为整个事情完全没有必要