Skip to content

Latest commit

 

History

History
119 lines (60 loc) · 7.33 KB

analytics-engineering-8b0ed0883379.md

File metadata and controls

119 lines (60 loc) · 7.33 KB

分析工程学介绍

原文:towardsdatascience.com/analytics-engineering-8b0ed0883379

分析工程师是谁,他们应该做什么

Giorgos MyrianthousTowards Data Science Giorgos Myrianthous

·发布在 Towards Data Science ·阅读时间 6 分钟·2023 年 10 月 22 日

--

图片由 DALL-E2 生成

传统上,数据团队由数据工程师和数据分析师组成。

数据工程师负责建立支持数据操作的基础设施。这包括数据库的配置和 ETL 流程的实施,这些流程用于将数据从外部来源导入到目标系统(可能是另一个数据库)。此外,数据工程师通常负责确保数据的完整性、新鲜度和安全性,以便分析师可以查询数据。数据工程师的典型技能包括 Python(或 Java)、SQL、编排(使用工具如 Apache Airflow)和数据建模。

另一方面,数据分析师应该使用 Excel 或 SQL 构建仪表板和报告,以便向内部用户和部门提供业务洞察。

数据团队的传统组成

从 ETL 到 ELT 的过渡

为了处理数据并获得有价值的洞察,我们首先需要提取数据,对吗?🤯

数据摄取是通过 ETL(最近也用 ELT)流程进行的。ETL 和 ELT 范式都涉及三个主要步骤:提取、转换和加载。目前,我们忽略这些步骤的执行顺序,专注于每个步骤的独立功能。

提取

这个步骤指的是从持久化来源中提取数据。数据来源可以是数据库、API 端点、文件或消息队列。

提取步骤从各种来源中提取数据 — 来源:作者

转换

在转换步骤中,管道预计会对数据的结构和/或格式进行一些更改,以实现某个目标。转换可以是修改(例如,将“United States”映射到“US”)、属性选择、数值计算或连接。

转换步骤对输入原始数据进行了一系列转换 — 来源:作者

加载

该步骤指的是将数据(无论是原始的还是转换后的)移动到目标系统的过程。目标通常是 OLTP 系统,如数据库,或 OLAP 系统,如数据仓库。

将数据加载到目标系统 — 来源:作者

ETL: 提取 → 转换 → 加载

ETL 指的是数据提取步骤后跟着转换步骤,最终以加载步骤结束的过程。

ETL 过程的可视化表示 — 来源:作者

ETL 过程中,数据转换步骤发生在目标系统之外的临时环境中,在数据被加载到目标之前进行转换。

ETL 已经存在一段时间,但其应用逐渐开始减少。

  1. 由于转换发生在中间(临时)服务器上,将转换后的数据移动到目标系统中会产生额外的开销。

  2. 目标系统不会包含原始数据(即转换前的格式数据)。这意味着每当需要额外的转换时,我们必须重新提取原始数据。

云技术的出现改变了数据摄取和转换的过程。托管在云上的数据仓库使得以非常低的成本存储大量数据成为可能。因此,是否真的需要在每次进行转换时都“实时”应用转换并丢弃原始数据?

ELT: 提取 → 加载 → 转换

ELT 指的是提取步骤后跟着加载步骤,最终的数据转换步骤在最后进行的过程。

ELT 过程的可视化表示 — 来源:作者

与 ETL 相比,ELT 中不需要临时环境/服务器,因为数据转换是在目标系统内进行的,目标系统通常是托管在云上的数据仓库或数据湖。

此外,原始数据存在于目标系统中,因此可以随时用于进一步的转换。

数据分析工程

作为提醒,在较早的数据团队构建中,工程师负责维护 ETL 层,而分析师则负责创建仪表板和报告。但现在的问题是数据分析工程师在这一过程中扮演什么角色?

在较早的数据团队结构中,数据工程师负责 ETL,数据分析师负责报告——来源:作者

分析工程师实际上是数据工程师和分析师之间的桥梁。他们的责任是处理原始数据并应用转换,以便数据分析师可以收集转换后的数据,准备商业智能层的仪表板和报告,以便内部用户能够做出数据驱动的决策。现在,数据工程师可以更多地关注数据平台的摄取层和更广泛的数据基础设施。

在 ELT 流程中,数据工程师负责数据在数据仓库中的提取和加载,分析工程师负责数据转换层,分析师负责业务仪表板的创建——来源:作者

dbt:分析工程的终极工具

分析工程师是能够帮助数据团队扩展和加快速度的人。但要做到这一点,他们还需要利用能够帮助他们完成工作的工具。**数据构建工具(dbt)**就是终极的分析工程工具。

dbt 是一个用于以可扩展且成本效益高的方式构建和管理数据模型的工具。dbt 可以为你处理所有模型之间的依赖关系,而无需花时间弄清楚模型必须按什么顺序执行。此外,它还提供了支持数据质量测试、新鲜度测试和文档编制等功能。

为了更好地理解 dbt 的作用,重要的是要可视化更广泛的背景,看看它在现代数据栈中所处的位置。dbt 实际上位于 ELT 管道中的 T 层,转换在原始数据所在的数据仓库中进行。

使用 dbt 对数据仓库中的原始数据进行转换——来源:作者

dbt 是一个CLI(命令行接口)工具,使分析工程团队能够部署和管理数据模型,遵循软件工程的最佳实践。这些实践包括支持多个环境(开发和生产)、版本控制和 CI/CD(持续集成和持续开发)。数据模型可以用 SQL(jinja 模板)编写,但工具的最新版本也支持使用 Python 定义模型!

最后的想法...

分析工程是数据工程和数据分析交汇处的新兴领域,旨在加快分析产品的开发,提高数据质量,并增强数据的可信度。促进数据产品生命周期的主要工具是 dbt,它极大地改变了数据团队的工作和协作方式。因此,熟悉它非常重要,因为它将在长期内存在。

在即将发布的文章中,我们将更专注于 dbt 以及如何有效地使用它来构建和管理数据模型。因此,请确保订阅,以便在文章发布时收到通知!