dbt 数据分析工程实战教程(汇总篇)
最近陆续编写了数据分析工程相关的系列文章,主要包括dbt-core的实战教程。本文是阶段性整理回顾,作为你学习数据工程方面的导航,后续会持续更新。
数据工程理论
介绍数据工程基础理论,包括数据仓库、数据建模等内容。结合典型面试问题阐述涉及的理论和工具。
标题 | 简介 |
---|---|
Dbt基本概念与快速入门 | 本文将为入门级数据工程师介绍dbt的基础知识,包括数据仓库与dbt相关的概念,为未来进一步深入了解做基础准备。 |
分析工程涉及技术体系与工具 | 本文简要介绍分析工程及对应岗位的需求和职责。另外概要介绍DBT——知名的开源的数据工程实践工具,未来我们逐步深入介绍DBT的应用与开发。 |
数据工程师岗位常见面试问题-1(附回答) | 提供全面的数据工程师面试指南,包括面试的不同阶段,从最初的人力资源筛选到深入的技术评价。技术方便包括Python、SQL、数据工程项目、数据工程管理,另外还有一些大厂面试问题。 |
数据工程师岗位常见面试问题-2(附回答) | 提供全面的数据工程师面试指南,包括面试的不同阶段,从最初的人力资源筛选到深入的技术评价。技术方便包括Python、SQL、数据工程项目、数据工程管理,另外还有一些大厂面试问题。 |
数据工程师岗位常见面试问题-3(附回答) | 提供全面的数据工程师面试指南,包括面试的不同阶段,从最初的人力资源筛选到深入的技术评价。技术方便包括Python、SQL、数据工程项目、数据工程管理,另外还有一些大厂面试问题。 |
dbt常用命令
详细介绍dbt常用命令,并结合示例进行说明。
标题 | 简介 |
---|---|
dbt 常用11个必知命令 | 在本教程中,我们将引导你了解基本的dbt命令,为每个命令提供说明,并提供语法示例让理解它们的用法。让我们开始吧! |
dbt Full Refresh特性及应用示例 | dbt run中关键特征是完全刷新功能。本教程将深入研究这个特性,帮助你有效地理解和使用该特征。 |
dbt compile 命令及应用 | 本文介绍dbt compile命令可以在开发过程中随时查看编译后的SQL语句,帮助开发者及时发现模型问题。 |
dbt source & dbt source freshness命令详解 | dbt source 命令是dbt命令体系中重要的一个,它让用户无缝管理原始数据表引用。本文深入讲解该命令的详细用法,确保你能力利用其完整潜能。 |
dbt seed 命令及应用示例 | dbt的一个强大特性是seed命令,它可以将CSV文件(称为“seed”)加载到数据仓库中。本教程将带你完成使用dbt seed命令的过程。 |
dbt snapshot命令及应用示例 | dbt的一个关键特性是能够创建快照,这是跟踪数据随时间变化的一种方法。本文带你一起完成创建和使用dbt快照的过程。 |
dbt run-operation命令及应用示例 | 在dbt的命令库中,run-operation 非常突出。它不仅仅能够调用宏,而且也能够自动化重复任务;灵活利用该命令调用宏可以确保数据完整性,自动化授权、清理过时数据、更新业务指标、生成每月财务报告等。 |
dbt doc 生成文档命令示例应用 | dbt的一个关键特性是能够为数据模型生成文档,这就是dbt docs命令发挥作用的地方。本教程将指导您完成使用dbt生成和提供项目文档的过程。 |
理解dbt Exposures及应用示例 | dbt Exposures作为一个强大的功能脱颖而出,它弥补了原始数据模型与其下游应用程序之间的差距。本质上,公开允许您定义和描述dbt项目是如何在下游被利用的,无论是在仪表板、应用程序还是数据科学管道中。 |
dbt模型开发
了解dbt核心功能,数据模型开发,包括最佳实践、常用工具包、增量模型等。
标题 | 简介 |
---|---|
利用dbt_utils 工具包生成代理键 | DBT是转换数据仓库中的数据的强大工具,同时还包括丰富的生态工具包,其中一个常用的工具是生成代理键,这对于数据建模和分析至关重要。本文重点介绍generate_surrogate_key宏如何生成代理键,并基于示例展示最佳实践指南。 |
Dbt项目最佳实践指南-1 | 本文介绍一些dbt项目最佳实践,包括如何结合数据仓库和软件工程理念对模型进行分层分类管理,让每层实现各自目标,提升项目的可维护性。另外还包括命名规范、文档描述以及分析目录的巧妙应用等。 |
从DDL, DML 和 存储过程迁移至DBT | dbt新手常遇到的问题是,如何转换历史代码库中DDL、DML语句或存储过程等大杂烩。从DML语句到dbt模型的转换对新手来说确实有挑战,因为构建数据模型任务涉及到从过程流程到定义声明性方法之间的重大范式转换。前者采用一系列DDL和DML语句;而后者通过dbt描述数据模型,主要使用SELECT语句来表达。本指南旨在提供将DML语句转换为dbt模型的提示、技巧和常用模式。 |
如何使用Jinja定义dbt宏 | dbt宏在dbt框架内的工作方式与传统编程中的函数类似。它允许用户将特定的、通常是重复的SQL逻辑封装到可调用的命名单元中,就像在其他编程语言中用函数来避免重复代码一样;dbt宏定义特定业务的SQL逻辑,然后在dbt项目中需要的地方调用该宏函数实现代码重用。数据工程师利用宏在数据开发项目中维护更干净、更模块化的代码,因此,我们可以把dbt宏看作:为SQL提供强大的、类似函数的强大功能! |
DBT Utils 实践应用指南-CSDN博客 | Dbt-utils是一个预先编写的宏集合,它可以帮助您进行旋转、编写通用测试、生成数据支柱等操作。这篇文章将介绍如何在你的项目中安装和使用一些流行的(和一些不为人知的)dbt实用程序。 |
DBT hook 实战教程 | 本文将介绍dbt中在模型和seed级别使用post-hook的几个具体示例。dbt中的Post-hooks是一个强大而简单的特性,它在构建模型之后(如果是pre-hook,甚至在此之前)执行SQL语句。这些语句实际上(几乎)可以是任何东西,从将表复制到另一个数据库/模式,或限制记录的数量,或重新格式化seed。我们将讨论的示例是指DuckDB,但是也可以适用于其他数据库。 |
编写高质量dbt模型实践指南 | 在本文结合简单示例提供综合实践,介绍利用dbt编写分层数据模型的最佳实践,以及如何使用编写模型测试保障数据质量。DBT支持编写模块化的数据模型,支持测试和重用,从而使分析工程师的工作变得更加轻松。 |
Dbt增量策略模型实践指南 | 本文讨论dbt的增量策略,介绍工作原理、以及各自优缺点。下篇讲解如何在模型中实现增量策略。 使用增量模型可以仅仅处理最近的数据,减少数据处理成本和时间。当然首先要明确我们真的需要使用增量策略吗?增量物化选项是dbt中高级强大的特性,并不需要每个模型都需要使用。使用增量物化模型需要增加一些配置以及一堆jinja条件代码。 |
dbt 增量策略模型实战教程 | 上文我们介绍了增量策略的理论知识,本文结合实际场景介绍如何合理利用增量策略,内容包括应用场景、常见问题及解决方案。 |
dbt测试开发
包括dbt模型测试相关功能。包括内置测试能力、第三方包提供的测试能力等。
标题 | 简介 |
---|---|
dbt测试易忽视的6个误区 | 本文带你学习dbt单元测试中常见的六个错误,这样你就可以在自己的数据质量之旅中避开它们,同时了解更多测试库和工具,我们后续会详细分享,让我们一起行动吧。 |
Dbt自动化测试实战教程 | 在这篇博文中,我们将介绍如何使用dbt通过不同类型的测试探测数仓中存储的数据。我们假设您对如何设置dbt有基本的了解,并且您有一个正在工作的项目。dbt提供了多种测试实现方式,可以使用" dbt test "命令执行测试用例。 |
编写自定义dbt通用数据测试 | dbt 默认提供了 Not Null, Unique, Relationships, 和Accepted Values 四个通用数据测试,这些测试被称为 ”schema 测试“ ,底层这些通用测试就是类似宏的测试块。本文首先介绍内置通用测试,然后介绍如何自定义通用测试,最后还实践如何覆盖内置通用测试的功能。 |
dbt expectations数据测试教程 | dbt-expectations包通过提供一组全面的数据质量测试功能,扩展了dbt-core内置测试能力。受Great Expectations框架的启发,这些测试可以执行数据完整性测试、并验证有关数据的假设。 |
DBT Utils 实践应用指南-CSDN博客 | Dbt-utils是一个预先编写的宏集合,它可以帮助您进行旋转、编写通用测试、生成数据支柱等操作。这篇文章将介绍如何在你的项目中安装和使用一些流行的(和一些不为人知的)dbt实用程序。 |
总结
这里关于数据工程方面博文的阶段性总结整理,后续会持续更新,期待您的真诚反馈,更多内容请阅读数据分析工程专栏。