【发布时间】:2019-01-04 19:07:22
【问题描述】:
我在一家中型网络公司担任数据工程师。我们每天都有一个 ETL,它从我们的应用程序数据库(恰好是 Cassandra 和 Postgres)中获取数据并将其存储在我们的数据仓库 (Redshift) 中。
我们当前的数据传输系统是通过以下相对简单的方式设置的(对于我们的 Postgres 数据库):我们有一个 Postgres 数据库的只读副本,用于将增量数据加载到 S3,然后将其复制到 Redshift表。
运行此数据传输的代码位于数据团队的存储库中,与应用程序存储库完全分开。
我们经常会遇到以下问题:应用端开发者对schema进行修改。他们更改列名,更改约束,添加列等。他们没有通知我们这些。这些更改有时会破坏我们的 ETL 流程(在 QA 上,但仍然如此),我们必须立即解决问题,赶上进度。
我们正在努力改善沟通,以确保应用工程师意识到他们所做的更改必须在他们离开之前与我们沟通。但是,在我看来,必须有更好的方法来解决这个问题。有没有一种程序化的方法来解决它?我们能否与运行这些传输脚本的开发人员建立一个额外的共享存储库?因此,双方都必须批准更改才能通过。
其他组织如何解决这个问题?
【问题讨论】:
标签: postgresql amazon-redshift etl