理解dbt artifacts及其实际应用
dbt是数据分析领域的一种变革性工具,它使数据专业人员能够对仓库中的数据进行转换和建模。它的强大功能之一是生成dbt artifacts:dbt运行的结构化输出,提供对dbt项目及其操作的深入了解。
dbt 构件介绍
dbt构件是每次dbt运行时生成的JSON文件。它们包括:
- semantic_manifest.json:包含为每个模型编译的SQL代码。
- manifest.json:提供dbt项目上次运行的全面结果清单视图。
- catalog.json:提供有关数据库模式的详细信息,包括列数据类型和描述。
- run_results.json:包含上次dbt运行的结果,包括成功或失败状态。
- sources.json:项目中使用的source数据表的详细信息。
这些构件对于文档、查看dbt项目状态以及可视化source的新鲜度都是必不可少的。
生成并访问构件
每次调用dbt时,它都会生成构件。例如,当你运行:
dbt run
DBT将在DBT项目的target/目录中生成构件。你可以直接访问这些JSON文件,并利用dbt的内置文档站点等工具可视化其内容。
dbt artifacts 包实际应用
brooklyn-data提供的dbt_artifacts是非常强大的工具,可以对dbt项目及其运行的元数据进行建模。目前该包支持下面几种数仓:
- Databricks ✅
- Spark ✅
- Snowflake ✅
- Google BigQuery ✅
- Postgres ✅
- SQL Server ✅
生成模型包括:
-
dim_dbt__current_models
-
dim_dbt__exposures
-
dim_dbt__models
-
dim_dbt__seeds
-
dim_dbt__snapshots
-
dim_dbt__sources
-
dim_dbt__tests
-
fct_dbt__invocations
-
fct_dbt__model_executions
-
fct_dbt__seed_executions
-
fct_dbt__snapshot_executions
-
fct_dbt__test_executions
-
安装依赖
packages:- package: brooklyn-data/dbt_artifactsversion: 2.7.0
执行 dbt deps命令安装依赖。
- 配置
在dbt_project.yml中指定数据上传位置:
models:dbt_artifacts:+database: your_destination_database+schema: your_destination_schema
我们还可以分类设置:
models:...dbt_artifacts:+database: your_destination_database # optional, default is your target database+schema: your_destination_schema # optional, default is your target schemastaging:+database: your_destination_database # optional, default is your target database+schema: your_destination_schema # optional, default is your target schemasources:+database: your_sources_database # optional, default is your target database+schema: your sources_database # optional, default is your target schema
- 增加
run-end hook
on-run-end:- "{{ dbt_artifacts.upload_results(results) }}"
建议增加条件,保证仅在生产环境启用:
on-run-end:- "{% if target.name == 'prod' %}{{ dbt_artifacts.upload_results(results) }}{% endif %}"
- 运行
设置完成后,可以直接运行。
dbt run --select dbt_artifacts
总结
DBT 构件是一项极为强大的特性,它能够让我们对 DBT 项目及运行请看有更深理解。如果我们能够有效地理解并利用这些构件,就可以对数据转换流程进行优化,从而确保数据的可靠性。期待您的真诚反馈,更多内容请阅读数据分析工程专栏。
相关文章:
理解dbt artifacts及其实际应用
dbt是数据分析领域的一种变革性工具,它使数据专业人员能够对仓库中的数据进行转换和建模。它的强大功能之一是生成dbt artifacts:dbt运行的结构化输出,提供对dbt项目及其操作的深入了解。 dbt 构件介绍 dbt构件是每次dbt运行时生成的JSON文…...
100种算法【Python版】第15篇——KMP算法
本文目录 1 算法原理1.1 部分匹配表2 实现步骤3 示例说明4 python实例5 算法应用领域1 算法原理 KMP(Knuth-Morris-Pratt)算法是一种用于高效字符串匹配的算法。它通过预处理模式字符串,构建一个部分匹配表(前缀函数),以避免重复比较,从而提高匹配效率。KMP 算法通过利…...
【软件工程】软件项目管理/工程项目管理复习资料
第一章 软件项目管理概述习题 一. 填空题 实现项目目标的制约因素有( 项目范围 )、( 成本 )、( 进度计划 )、( 客户满意度 )等。 项目管理( 启动过程组 )、…...
C语言基础题(大合集2)
1. 时间转换 给定秒数 --> 输出秒数 转化成 时/分/秒 //时间转换 //给定秒数 --> 转换成 小时/分/秒 int main() {//输入int seconds 0;int h 0;//小时int m 0;//分钟int s 0;//秒scanf("%d", &seconds);//计算h seconds / 60 / 60;m seconds / 60…...
Stable Diffusion视频插件Ebsynth Utility使用方法
在Stable Diffusion中安装完Ebsynth Utility后,就可以开始试用了。 启动Stable Diffusion后,出面画面: 1、步骤1:视频分帧及生成蒙板帧 填入工程目录,选择上传所用的视频文件:注意对目录命名的要求-不能有…...
Ubuntu忘记密码
如果你忘记了WSL(Windows Subsystem for Linux)中Linux发行版的密码,可以按照以下步骤来重置密码: 一、对于Ubuntu或Debian等基于Debian的发行版(以Ubuntu为例) 关闭WSL实例(如果正在运行&…...
使用Python实现深度学习模型:智能极端天气事件预测
极端天气事件,如暴雨、台风和热浪,往往会对人类社会和自然环境产生深远的影响。近年来,气象数据和深度学习技术的发展使得智能预测极端天气成为可能。通过训练深度学习模型,我们可以建立一个自动化的预测系统,从大量的历史气象数据中学习并预测未来的极端天气事件。这篇文…...
cJson函数解析
获取json版本号 CJSON_PUBLIC(const char*) cJSON_Version(void);设置自定义内存分配函数 CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks);解析 JSON 字符串并将其转换为 cJSON 数据结构 CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);用于解析指定长度的…...
基于SSM+微信小程序的跑腿平台管理系统(跑腿3)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的跑腿平台管理系统实现了管理员、接单员及用户三个角色。 1、管理员实现了首页、个人中心、管理员管理、基础数据管理、接单详情、跑腿任务管理等。 2、接单员实现了…...
mit6824-02-Lab1:MapReduce分布式实现
文章目录 写在前面总体思路分析代码实现参考链接 写在前面 具体上次写6824的第一篇文章已经过去了快一个月,上次学习了MapReduce论文相关理论后一直没有继续写代码实现,自己一边要搞论文没有整块时间实现,这两天抽写了相关代码,算…...
【NOIP普及组】 装箱问题
【NOIP普及组】 装箱问题 💐The Begin💐点点关注,收藏不迷路💐 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0&…...
Flutter主题最佳实践
Styling your Flutter app not only makes it visually appealing but also enhances the user experience. Flutter offers a robust theming system that helps you maintain consistency and customize your app’s look and feel. 设计 Flutter 应用程序的风格不仅能使其在…...
计算机网络:网络层 —— IPv4 数据报的首部格式
文章目录 IPv4数据报的首部格式IPv4数据报分片生存时间 TTL字段协议字段首部检验和字段 IPv4数据报的首部格式 IPv4 数据报的首部格式及其内容是实现 IPv4 协议各种功能的基础。 在 TCP/IP 标准中,各种数据格式常常以32比特(即4字节)为单位来描述 固定部分&#x…...
MySQL 之 索引
索引 概述 是帮助MySQL高效获取数据的数据结构,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在数据结构上实现高效查找算法,这种…...
手动探针台的用途及组成部分
探针台系统分为手动探针台与自动探针台,以下我们主要分析手动探针台。 探针台用途: 手动探针台又称探针测试台主要用途是为半导体芯片的电参数测试提供一个测试平台,探针台可吸附多种规格芯片,并提供多个可调测试针以及探针座&am…...
❤️算法笔记❤️-(每日一刷-5、最长回文串)
文章目录 题目思路解答 题目 给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入…...
nginx 路径匹配,关于“/“对规则的影响
1、基本规则 假如后端实际地址为: http://127.0.0.1:8080/api/user/getById?id123 则: 1)通过nginx转发,使用http://127.0.0.1/api/user/getById?id123访问 server {listen 80;server_name 127.0.0.1;location /api…...
安全知识见闻-网络安全热门证书
一、OSCP(Offensive Security Certified Professional) 1. 证书介绍 2.考点 3.部分考试要求 4.练习方法 二、OSEP(Offensive Security Exploit Developer) 1.证书介绍 2.考点 3.练习方法 三、CISSP(Certified lnformation Systems Security Professional&a…...
Pandabuy事件警示:反向海淘品牌如何规避风险
Pandabuy,作为一个曾经备受海外消费者青睐的跨境电商平台,以其丰富的商品种类、优质的服务和便捷的购物流程迅速崛起。然而,近期的一系列丑闻,尤其是涉嫌销售大量仿制名牌运动鞋的事件,让Pandabuy陷入了前所未有的信任…...
【纯血鸿蒙】安装hdc工具
这里我先写Mac版的,Windows的在下面 首先要知道你的SDK安装在哪里了,不知道的话,可以打开DevEco Studio,打开设置页面里的HarmonyOS SDK,这个我们之前配置环境变量的时候用过。 其实主要是用到这里toolchains下的hdc命令。 所以我们需要配置环境变量。 1、打开Mac下的…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
