# dbt source dbt source freshness命令详解

数据转换是现代数据分析的支柱,dbt已经成为这个领域的关键角色。dbt source 命令是dbt命令体系中重要的一个,它让用户无缝管理原始数据表引用。本文深入讲解该命令的详细用法,确保你能力利用其完整潜能。

dbt source 概述

DBT source 表示数据仓库中的原始数据表,是DBT转换的基础数据源。dbt source不是直接引用这些表,而是提供了一种抽象,增强了可维护性和清晰度。通过将表声明为源,可以将其标记为转换的可信基础,从而启用数据新鲜度检查等功能。在业务上下文中,源可以表示原始销售数据、客户交易数据或库存数据。

dbt source 命令设计用于管理基础数据源,它的主要子命令 dbt source freshness ,可以检查原始数据表的新鲜度,确保数据是最新的、可靠的。

案例实战

在分析系统中,源数据是直接来自业务系统的原始的、未处理的信息。例如,对于家电子商务企业,那么源数据可能是原始销售交易数据、原始客户列表和原始历史库存数据。使用dbt source可以创建对这些表的引用,从而简化转换过程。

下面介绍如何使用 dbt source freshness 命令,首先需要增加 loaded_at_field 字段至 sources.yaml 文件。下面示例来自源数据的两张表:subscriptions 和 customers ,两者都有字段 _synced_at ,表示数据同步时间。设置数据新鲜度警告条件:超过2天警告;报错条件;超过7天报错。

sources:- name: rawdatabase: analytics_dbschema: raw freshness:warn_after: {count: 2, period: day}error_after: {count: 7, period: day}loaded_at_field: _synced_attables:- name: subscriptions- name: customers

简要解释:

  • schema 可选,如果没有配置则为name的值,表示来自哪个schema
  • database表示数据仓库,和 profiles 中的数据库对应
  • sources.yaml 可以配置多个,通常每个模块主题可以共用source配置
  • loaded_at_field 字段指定

新鲜度检查

假如你想确保你的销售数据是最新的,至少每天要检查一次;可以使用下面命令:

dbt source freshness

如果任何源表没有按照指定的新鲜度配置更新,dbt将引发警告或错误。在上面的例子中,如果数据是3天前的,我们将得到一个警告,因为warn_after阈值被设置为2天。

配置新鲜度输出

缺省情况下,新鲜度信息保存在 target/sources.json文件中,可以通过下面命令选项进行自定义:

dbt source freshness --output target/my_custom_path.json

dbt source 高级用法Refactor your way to Success: A practical guide to dbt Core code Optimization

As all Data Engineers know, sometimes you need to move fast and get things done quickly. While this “quick and dirty” approach might be…

如果仅想检查特定表的新鲜度,可以使用 --select --exclude 选项。下面命令仅检查 raw.customers 表的新鲜度:

dbt source freshness --select source:raw.customers

理解数据血缘关系

要理解业务,首先知道数据来自那里至关重要。使用 {{ source() }} 宏函数,可以定义血缘关系。下面示例引用raw.customers表:

select customer_id, customer_name, created_at
from {{ source('raw', 'customers') }}

大多数情况下,在staging模型中从每个源表中选择业务需要的字段,因此每个源都有自己的staging模型文件。这样就可以从原表中选择需要的字段,并统一在staging模型中处理重命名或转换数据等非业务性转换逻辑。

通常dbt模型遵循数仓理念,采用分层方式组织。source 表示贴源数据; stage 表示暂存区,处理格式转换、命名规范等非业务逻辑;dw 层定义分析模型,如维度模型,包括事实表、维度表、公共维度表等。mart层面向应用提供数据,通常为整合汇总的数据,如宽表,支持业务查询、OLAP、数据分发等场景。

测试源

为了确保数据质量,我们可以源配置文件中定义测试。举例,为了确保每个客户有不重复的编号:

version: 2sources:- name: stripetables:- name: customerstests:- unique:column_name: customer_id

使用dbt source 价值

  • 数据一致性: 确保你的分析是基于可靠的、一致的数据
  • 开发效率: 通过引用标准化数据避免重写转换逻辑
  • 新鲜度监控: 确保您的业务决策是基于最新的数据

最佳实践

  • 保持更新: 源数据可能会更改。定期运行dbt源新鲜度,避免数据更新中断。
  • 定期检查: 定时执行新鲜度命令,保证数据质量,质量检查可以提前暴露问题。

总结

DBT sources 是DBT库中的一个强大工具,特别是在对业务数据的及时性和准确性有要求的场景中。通过掌握dbt源新鲜度命令并正确设置源,可以确保为分析项目奠定坚实的基础。期待您的真诚反馈,更多内容请阅读数据分析工程专栏。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

前端vue-插值表达式和v-html的区别

创建vue实例的时候,可以有两种形式。 1.let appnew Vue({}) 2 const appnew Vue({}) 3 el是挂载点,是上面div的id值 4 data中的值可以展示在上面div中 5 v-html标签里面如果有内容,则我们的新内容会把标签里面的内容覆盖掉

解决 Torch not compiled with CUDA enabled 问题 | MiniCPM3-4B 【应用开发笔记】

最近在研究测试MiniCPM3-4B,这里记录一下遇到的cuda和torch版本问题 在调试和运行MiniCPM3-4B过程中如果出现找不到某个包,就用pip进行安装,如果提示GPU相关的问题则需要进一步检查 解决 Torch not compiled with CUDA enabled 问题 一、查看…

Arthas 全攻略:让调试变得简单

文章目录 一、简介二、命令列表 一、简介 注意 : 我安装的版本是:Arthas V3.7.2 官网:https://arthas.aliyun.com/doc/ 相关错误解决方案请看GitHub:https://github.com/alibaba/arthas/issues Alibaba开源的Java诊断工具。 从…

我的AI工具箱Tauri版-MicrosoftTTS文本转语音

本教程基于自研的AI工具箱Tauri版进行MicrosoftTTS文本转语音服务。 MicrosoftTTS文本转语音服务 是自研的AI工具箱Tauri版中的一款功能模块,专为实现高效的文本转语音操作而设计。通过集成微软TTS服务,用户可以将大量文本自动转换为自然流畅的语音文件…

圣多纳释放法,达到内心的平静

圣多纳释放法的关键在于:我们被情绪控制时,不应该压抑情绪或是发泄情绪。 利用释放法处理情绪是最健康的方法,可以帮助我们获得自由与平静。当我们面对讨厌的人时,我们真正要做的并非压抑或者爆发,而是将“讨厌”这种…

仪表放大器AD620

AD623 是一款低功耗、高精度的仪表放大器,而不是轨到轨运算放大器。它的输入电压范围并不覆盖整个电源电压(轨到轨),但在单电源供电下可以处理接近地电位的输入信号。 AD620 和 AD623 都是仪表放大器,但它们在一些关键…

HTB-Netmon(prtg配置文件获取,CVE-2018-9276复现)

前言 各位师傅大家好,我是qmx_07,今天给大家讲解Netmon靶机 渗透流程 信息搜集 服务器开放了80HTTP、21FTP(匿名登录)、445SMB服务 FTP匿名登录 获取敏感文件 登录后台 网站登录需要 账号、密码 ,尝试去FTP服务 碰下运气 通过翻阅ft…

基于Python flask的淘宝商品数据分析可视化系统,包括大屏和主题分析,还有回归预测

背景介绍 随着电子商务的迅猛发展,平台上积累了大量的用户行为和商品交易数据。这些数据蕴含着极大的商业价值,可以为市场趋势预测、商品优化以及用户行为分析提供重要的参考。淘宝作为全球最大的在线购物平台之一,拥有海量的商品和用户数据…

联想一体机怎么重装系统_联想一体机重装win10系统教程

联想一体机怎么重装系统?联想一体机重装系统有很多,有一键重装、有U盘重装、有硬盘重装等方式,最保险的方式是u盘重装系统。需要准备一个空U盘,然后利用第三方工具制作启动u盘,制作完成后进入pe重装系统,下…

集装箱机房可视化:高效管理与监控

通过图扑可视化平台实时监控集装箱机房的运行状态和环境参数,优化资源配置,提升运维效率,确保数据中心安全可靠运行。

Swagger 概念和使用以及遇到的问题

前言 接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变 成重中之重。接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新, 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不…

dll注入的实现及session0注入

记录一下跟着红队蓝军师傅学免杀的过程 本节旨在学习dll注入和代码实现并不涉及免杀知识 dll注入流程 dll注入要么注入自己写的程序要么找个程序进行注入,一般是找其他程序进行注入 所以按照上面的步骤进行 其中申请空间,创建线程都是在远程的另一个进…

【Linux】-----进程第一弹

目录 概念 描述进程-PCB 查看进程 获取进程标识符 终止进程 fork创建进程 返回值说明 进程的状态 ①运行状态(R) ②浅度睡眠(S) ③深度睡眠(D) ④暂停状态(T) ⑤僵尸状态(Z)(重点) 是什么? 举例 危害 孤儿进程 ⑥死亡状态(X) 概念 课本上对于进程…

土豆王国小乐队携手阿派朗创造力乐园,打造2024年okgo儿童音乐节

艺术与科技的完美融合,为首都少年儿童带来音乐盛宴 北京,2024年9月19日 —— 备受期待的2024年okgo儿童音乐节即将于9月21日至22日在北京阿派朗创造力乐园盛大开幕。这场由土豆王国小乐队与阿派朗创造力乐园联合举办的音乐节,旨在为首都及全国…

【828华为云征文|华为云Flexus X实例部署指南:轻松搭建可道云KODBOX项目】

文章目录 华为云 Flexus X 实例:引领高效云服务的新时代部署【可道云KODBOX】项目准备工作具体操作指南服务器环境确认宝塔软件商店操作域名解析可道云KODBOX登录页效果验证 总结 华为云 Flexus X 实例:引领高效云服务的新时代 在云计算领域&#xff0c…

基于Ubuntu22.04的cups安装与配置

目录 关于cups 关于cups Linux中的CUPS(Common UNIX Printing System,通用UNIX打印系统)是一个开源的打印系统,它提供了一套完整的管理打印设备、实现可靠打印和网络打印的方案。 Cups安装与与配置 1、升级系统 sudo apt update -y && sudo apt upgrade -y 2、安…

代码随想录算法训练营43期 | Day 20 —— 235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

代码随想录算法训练营 代码随想录算法训练营43期235.二叉搜索树的最近公共祖先701.二叉搜索树中的插入操作450.删除二叉搜索树中的节点 代码随想录算法训练营43期 235.二叉搜索树的最近公共祖先 解题思路: 二叉搜索树一定是有序的 判断条件: cur>p &…

MySQL索引知识个人笔记总结(持续整理)

本篇笔记是个人整理的索引知识总结,刚开始有点乱,后续会一直边学边整理边总结 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。就好比索引就是数据的目录 索引结构 Btree索引,Hash索引,Full-text索引,R-tree(空…

【第十二章:Sentosa_DSML社区版-机器学习回归】

【第十二章:Sentosa_DSML社区版-机器学习回归】 12.1 线性回归 1.算子介绍 线性回归模型(BuildLRNode)是一个非常经典有效的回归模型,它假设所有特征变量和目标变量之间存在线性关系。通过训练来求得各个特征的权重以及截距。同时可以通过L1&#xff0…

GDPU 信息安全 天码行空1 用Wireshark分析典型TCP/IP体系中的协议

文章目录 一、实验目的二、实验内容三、实验步骤1. ICMP(控制报文)2. IPV4第一个包(IPv4)第二个包(IPv4)第三个包(ICMP) 3. TCP 三次握手 一、实验目的 通过Wireshark软件分析典型网…