Dagster使用DuckDB从头构建一个穷人的数据湖


数据的价值与数据的新近程度成正比。我们可以使用内存数据库来提高速度和价值生成吗?DuckDB 在这一承诺上获得了很多关注,Dagster 团队撰写了关于其建立在 DuckDB、Parquet 和 Dagster 之上的实验性数据仓库的文章。

DuckDB 现在很火。可能有几个原因:

但我认为围绕 DuckDB 的炒作背后有不同的原因。
我们都有这样的感觉,即当前数据工具的爆炸式增长让事情变得更加困难和过于复杂。DuckDB 是一股清新的空气;一个功能强大、功能丰富的 SQL 引擎,速度足够快,可以在您需要的任何地方运行 - 无需 SaaS。
用 DuckDB 替换我们的云数据仓库或数据湖需要什么?

DuckDB 的局限性
那么我们是否应该删除我们的 Snowflake、BigQuery 和 Databricks 设置并用 DuckDB 替换它们?
没那么快。尽管 Data Twitter 可能会告诉您什么,但 DuckDB 确实有其局限性。一个重要的特点是它是为在单台机器上使用而设计的。如果您的数据不适合在一台机器上,那么您就完蛋了。幸运的是,如今计算机速度非常快,尤其是当您查看AWS 上的顶级产品时,许多组织没有足够大的数据来需要多台计算机。
二是DuckDB本质上是单人体验。它对磁盘上的单个文件进行操作,多人或团队很难共享数据、确保数据是最新的并同时开发模型。
但是,当 DuckDB 与少量其他技术(例如 Dagster、S3 和 Parquet)结合使用时,它可以成为一个强大的多人数据湖,可以轻松满足许多组织的需求。

我们将使用以下工具构建dbt 的 Jaffle Shop 示例的一个版本:


最重要的是,我们将从头开始构建它。我们不会使用为这篇博文编写的任何现有库,因此希望您能学到很多关于这三个系统的知识!
出于本博文的目的,我们将其命名为DuckPond.

想直接跳到代码吗?它在 GitHub 上

详细点击标题