数据架构管理与演变:保障数据管道的稳定性
1. 架构管理基础
在数据处理中,架构管理至关重要。架构的相关属性包括:
- 版本(Version) :用于表示架构的版本号,与 ID 属性共同构成唯一的架构键。
- 架构(Schema) :文本属性,存储 Avro 架构定义。
- 创建时间戳(Created Timestamp) :记录架构首次创建的日期和时间。
- 最后更新时间戳(Last Updated Timestamp) :记录架构最后更新的日期和时间。
需要注意的是,ID 并非唯一,因为同一架构可能存在多个版本。由于数据源的架构不断变化,我们需要捕捉架构的每次修改,以便处理使用该版本架构生成的数据,同时了解架构随时间的变化对于调试和故障排除也非常重要。为避免更新元数据层中的所有源和目标实体,我们不会为每个架构版本分配新的 ID。
2. 架构演变场景
架构演变描述了处理数据的程序如何应对数据结构的变化。对于数据平台而言,我们需要了解当特定数据源的架构发生变化时,数据管道将如何工作。常见的架构变化场景包括:
- 添加新列
- 删除现有列
- 重命名列
- 更改列的类型
架构变化分为向后兼容和向前兼容两种类型:
- 向后兼容 :如果数据转换管道使用注册表中的最新架构版本,应能够读取平台中已存储的所有数据,即使这些现有数据是使用旧版本的架构写入的。
- <