数据平台中的模式管理:挑战与解决方案
1. 为何需要模式管理
在数据仓库领域,处理输入数据源的模式是一个古老的问题。传统数据仓库基于关系技术,在加载数据之前,必须提前知晓数据的结构,包括列名、类型和顺序。一旦数据源模式发生变化,如添加新列,就需要精心规划,以调整目标模式和 ETL 管道。
传统关系系统中,进行模式更改往往需要数小时,因为数据仓库要重新组织现有数据以适应新的模式。在积极主动的组织中,源数据的任何模式更改都将触发数据仓库模式更新的“更改请求”,大型企业的模式更新可能需要数周甚至数月的规划。
而一些小型组织则选择“无为而治”,等待问题出现后再解决。这种方法虽然避免了前期的繁琐规划,但可能导致用户对数据质量的不满,因为他们通常是最先发现和报告模式更改后数据问题的人。无论采用哪种方式,模式更改都不能被忽视,且需要大量的人工干预。
2. 传统数据仓库架构中的模式更改
在传统数据仓库架构中,数据通常先从源文件加载到着陆表。着陆表的模式必须与源数据集的模式相匹配,以简化数据摄取过程。例如,若源文件中的 transaction_amount
列更改为 transaction_total
,则下一次摄取过程将失败,需要数据工程师手动修复着陆表定义。
graph LR
A[数据源文件] --> B[着陆表]
B --> C[数据仓库]
style A fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
style B f