4 YAML 文件代替 PySpark:我们如何让分析师在没有工程师的情况下构建数据管道

我们如何用 dlt、dbt 和 Trino 取代 Python 管道,并将交付时间从几周缩短到一天。帖子 4 YAML 文件代替 PySpark:我们如何让分析师在没有工程师的情况下构建数据管道首先出现在走向数据科学上。

来源:走向数据科学

我们需要三周的时间来交付单个数据管道。如今,Python 经验为零的分析师一天之内就能完成。我们是这样实现的。

我是 Kiril Kazlou,Mindbox 的数据工程师。我们的团队定期为客户重新计算业务指标 - 这意味着我们不断构建用于计费和分析的数据集市,从数十个不同的来源获取数据。

很长一段时间,我们都依赖 PySpark 进行所有数据处理。问题?如果没有 Python 经验,您就无法真正使用 PySpark。每条新管道都需要一名开发人员。这意味着等待——有时要等待数周。

在这篇文章中,我将向您介绍我们如何构建一个内部数据平台,分析师或产品经理只需编写四个 YAML 文件即可启动定期更新的管道。

为什么 PySpark 拖慢了我们的速度

让我用一个教科书的例子来说明这个痛苦——计算MAU(每月活跃用户)。

从表面上看,这感觉就像一个简单的 SQL 作业:在一个时间窗口内跨多个表进行 COUNT(DISTINCT customerId)。但由于所有基础设施开销——PySpark、Airflow DAG 设置、Spark 资源分配、测试——我们不得不将其交给开发人员。结果呢?仅仅运送一个 MAU 计数器就需要整整一周的时间。

每个新指标都需要一到三周的时间才能交付。每一次,这个过程看起来都是一样的:

  • 分析师定义了业务需求,找到了可用的开发人员,并移交了上下文。
  • 开发人员澄清了细节,编写了 PySpark 代码,进行了代码审查,配置了 DAG 并进行了部署。
  • 我们真正想要的是分析师和产品经理——最了解业务逻辑并且精通 SQL 和 YAML 的人——自己处理这个问题。没有Python。没有 PySpark。

    我们用什么替换了 PySpark:YAML 和 SQL 就是您所需要的

    为了采用声明式方法,我们将数据层分为三个部分,并为每个部分选择了正确的工具:

    我们如何加载数据:dlt.yaml

    我们如何使用 SQL 转换数据:dbt_project.yaml 和sources.yaml