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 和 存储过程迁移至DBTdbt新手常遇到的问题是,如何转换历史代码库中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实用程序。

总结

这里关于数据工程方面博文的阶段性总结整理,后续会持续更新,期待您的真诚反馈,更多内容请阅读数据分析工程专栏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apt镜像源制作-ubuntu22.04

# 安装必要的软件 sudo apt-get install -y apt-mirror # 编辑/etc/apt/mirror.list,添加以下内容 set base_path /var/spool/apt-mirror # 指定要镜像的Ubuntu发布和组件-null dir jammy-updates main restricted universe multiverse # 镜像的Ubuntu发布和组件的URL-n…

springboot初体验

目录 环境 controller 修改端口号 更改banner图标 运行结果 最核心的:自动装配 环境 jdk17springboot3.3.5maven3.8.2 controller controller层和启动类同级 package com.example.demo.controller; ​ import org.springframework.web.bind.annotation.RequestMapping;…

Q:警告无法解释导入PIL Pylance(reportMisssingIMports)

问题显示: 解决方法: 1.确认安装 Pillow:在 VS Code 的终端中运行以下命令,以确保环境中安装了 Pillow pip install pillow2.选择正确的解释器:在 VS Code 中,按下 CtrlShiftP,输入并选择 “P…

python中常见的8种数据结构之一数组的应用

在Python中,数组是一种常见的数据结构,用于存储一系列相同类型的元素。在实际应用中,数组可以用于解决各种问题。 以下是数组在Python中的一些常见应用: 1. 存储和访问数据:数组可以用于存储和访问一组数据。可以通过…

网络安全——下载并在kali虚拟机上启动Cobalt Strike

目录 一、下载 二、上传文件到kali虚拟机 三、启动服务端 四、启动客户端 一、下载 CobaltStrike4.8汉化版带插件-CSDN博客 下载并解压后 二、上传文件到kali虚拟机 1、打开并运行kali虚拟机,查看kali的ip地址 2、打开xshell,新建连接,连…

用 Python 从零开始创建神经网络(四):激活函数(Activation Functions)

激活函数(Activation Functions) 引言1. 激活函数的种类a. 阶跃激活功能b. 线性激活函数c. Sigmoid激活函数d. ReLU 激活函数e. more 2. 为什么使用激活函数3. 隐藏层的线性激活4. 一对神经元的 ReLU 激活5. 在隐蔽层中激活 ReLU6. ReLU 激活函数代码7. …

22.oop-strust与class

OOP是什么:oop 是面向对象编程,面向对象编程是一种计算机编程架构, OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或 对象组、合而成。 OOP有什么特性: 1、封装性:也称为信息隐藏,就是将一个类的使用和实现分开…

【Linux】ubuntu安装图形化界面步骤

一、ubuntu 安装桌面环境 1、更新软件包列表(命令↓) sudo apt update 2、安装桌面环境GNOME(命令↓) sudo apt install ubuntu-desktop 3、安装完成后需要重启服务器(服务器重启命令↓) sudo reboot 二、…

【Android】轮播图——Banner

引言 Banner轮播图是一种在网页和移动应用界面设计中常见的元素,主要用于在一个固定的区域内自动或手动切换一系列图片,以展示不同的内容或信息。这个控件在软件当中经常看到,商品促销、热门歌单、头像新闻等等。它不同于ViewPgaer在于无需手…

Vue2 doc、excel、pdf、ppt、txt、图片以及视频等在线预览

Vue2 doc、excel、pdf、ppt、txt、图片等在线预览 安装使用目录结构直接上代码src\components\FileView\doc\index.vuesrc\components\FileView\excel\index.vuesrc\components\FileView\img\index.vuesrc\components\FileView\pdf\index.vuesrc\components\FileView\ppt\index…

[OpenGL]使用OpenGL实现硬阴影效果

一、简介 本文介绍了如何使用OpenGL实现硬阴影效果,并在最后给出了全部的代码。本文基于[OpenGL]渲染Shadow Map,实现硬阴影的流程如下: 首先,以光源为视角,渲染场景的深度图,将light space中的深度图存储…

微服务是什么 SpringCloud是什么

微服务是什么 SpringCloud是什么 一、微服务概述二、微服务架构三、单体架构四、分布式架构五、SpringCloud概述六、SpringBoot和 SpringCloud的区别与联系七、SpringCloud版本选择 一、微服务概述 微服务(MicroServices)最初是由 Martin Fowler 于 2014…

K8S node节点没有相应的pod镜像运行故障处理办法

查看从节点状态 kubectl describe node k8s-node1以下是报错提示 解决办法 需要处理node1节点上的磁盘空间,磁盘空间需要在85%内 处理后的状态 处理正常

CSS教程(四)- 字体

1、尺寸单位 px 像素单位% 百分比,参照父元素对应属性的值进行计算em 字体尺寸单位,参照父元素的字体大小计算,1em16pxrem字体尺寸单位,参照根元素的字体大小计算,1rem16px 2、字体属性 介绍 CSS Fonts (字体)属性用于定义字体…

使用storcli工具配置RAID,收藏这一篇就够了

正文共:1888 字 28 图,预估阅读时间:2 分钟 前文(怎么把银河麒麟系统装进U盘?)提到,因为国产服务器固件暂不支持直接配置RAID,所以需要使用storcli这个工具来操作。今天就从RAID配置…

Three.js 搭建3D隧道监测

Three.js 搭建3D隧道监测 Three.js 基础元素场景scene相机carema网络模型Mesh光源light渲染器renderer控制器controls 实现3d隧道监测基础实现道路实现隧道实现多个摄像头点击模型进行属性操作实现点击模型发光效果 性能监视器stats引入使用 总结完整代码 我们将通过three.js技…

漫谈分布式唯一ID

文章目录 本系列前言UUIDDB自增主键Redis incr命令号段模式雪花算法 本系列 漫谈分布式唯一ID(本文)分布式唯一ID生成(二):leaf分布式唯一ID生成(三):uid-generator分布式唯一ID生成…

CSS教程(七)- 背景

介绍 背景属性可以设置背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。 1 背景颜色 属性名:background-color 作用:指定HTML元素的背景色。 取值:英文颜色、16进制、rgb、rgba、transparent(一般为透明&#…

网络安全SQL初步注入2

六.报错注入 mysql函数 updatexml(1,xpath语法,0) xpath语法常用concat拼接 例如: concat(07e,(查询语句),07e) select table_name from information_schema.tables limit 0,1 七.宽字节注入(如果后台数据库的编码为GBK) url编码:为了防止提交的数据和url中的一些有特殊意…

three.js 杂记

在Three.js中,Object3D是所有3D对象的基类,而Group是Object3D的一个子类。Group的目的是为了简化处理多个对象的集合。当你将对象添加到Group中时,它们会以一个单元格的形式被处理,参与Group的某些操作,例如位置更新、…