详细内容或原文请订阅后点击阅览
逃离 SQL 丛林
大多数数据平台不会一夜之间崩溃;随着查询的进行,它们变得越来越复杂。随着时间的推移,业务逻辑遍布 SQL 脚本、仪表板和计划作业,直到系统变成“SQL 丛林”。本文探讨了这是如何发生的以及如何恢复结构。逃离 SQL 丛林的帖子首先出现在 Towards Data Science 上。
来源:走向数据科学不会在一夜之间崩溃。它们成长缓慢,逐个查询。
“当我更换桌子时,什么会损坏?”
仪表板需要一个新的指标,因此有人编写了一个快速的 SQL 查询。另一个团队需要同一数据集的稍微不同的版本,因此他们复制查询并修改它。出现预定作业。添加了一个存储过程。有人直接在仓库里创建了一个派生表。
几个月后,系统看起来与以前的一组简单转换完全不同。
业务逻辑分散在脚本、仪表板和计划查询中。没有人完全确定哪些数据集取决于哪些转换。即使做出很小的改变也会让人感觉有风险。由于没有文档,少数工程师成为唯一真正了解系统如何工作的人。
许多组织最终发现自己陷入了只能被描述为 SQL 丛林的境地。
在本文中,我们探讨系统如何最终处于这种状态、如何识别警告信号以及如何将结构带回分析转换。我们将了解管理良好的转换层背后的原则、它如何融入现代数据平台以及要避免的常见反模式:
1. SQL 丛林是如何形成的
要了解“SQL 丛林”,我们首先需要了解现代数据架构是如何演变的。
1.1 从 ETL 到 ELT 的转变
历史上数据工程师构建的管道遵循 ETL 结构:
提取 --> 转换 --> 加载
数据从操作系统中提取,使用管道工具进行转换,然后加载到数据仓库中。转换是在 SSIS、Spark 或 Python 管道等工具中实现的。
现代建筑在很大程度上颠覆了这种模式
提取 --> 加载 --> 转换
它还引入了意想不到的副作用。
和:
