我认为加载数据就是终点线。这是起点。

构建我的第一个 dbt 模型并了解“分析就绪”数据的实际含义我认为加载数据是终点线。这是起点。首先出现在《走向数据科学》上。

来源:走向数据科学

,我给自己制定了一个从数据分析师到数据工程师的 12 个月路线图。我才刚入手两个月左右。在这段短暂的时间内,我已经从头开始构建了两个 ETL 管道,第一个将 GitHub 存储库数据拉入 SQLite,第二个将 RSS 文章拉入 PostgreSQL,并使用 Docker 和 Kestra 处理编排。我写过关于安排第二条管道每小时自动运行的文章,当时,这感觉像是一个真正的里程碑。数据自行流入,无需手动运行,我也不会记得触发任何东西。

但在写那篇文章和开始这篇文章之间,我对自己的数据进行了查询并意识到了一些事情。我无法按日期正确排序我的文章。我不知道哪些博客发布的内容最多。这些数据已经在 Postgres 中保存了数周,从技术上来说是“加载”的,直到我需要它来做某事之前,我实际上并没有仔细查看过它。

结果我构建了两个管道并跳过了使数据有用的部分。提取、加载,然后什么都没有。没有转换,没有建模,没有超越“现在在表格中”的真实结构。

本文就是要解决这个问题。我终于坐下来学习了 dbt,并在这个过程中了解了“分析就绪”的实际含义,因为事实证明加载数据和拥有可用数据是两个截然不同的事情。

数据已加载。它只是不可用。

这是我停下来并注意后我的文章表的实际样子。

模式本身很简单,老实说就像表格一样简单:

如果不存在则创建表文章 (

id 文本主键,

标题文本不为空,

链接文本不为空,

摘要文本,

发布文本);请注意,最后一个 column.published 是一个 TEXT 字段。不是时间戳,不是日期,只是一个简单的字符串,如果你眯着眼睛看它,它恰好看起来像一个日期。当我查询最近的十篇文章时,返回的是:为什么选择 dbt,具体来说设置(并立即碰壁)添加测试