dbt seed 命令及应用示例

DBT-core是一个命令行工具,它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个强大特性是seed命令,它可以将CSV文件(称为“seed”)加载到数据仓库中。本教程将带你完成使用dbt seed命令的过程。

在dbt中,seed是可以加载到数据仓库中的CSV文件。它们对于处理不经常更改的静态数据特别有用。例如,您可能有一个CSV文件,其中包含国家代码列表及其对应的国家名称。这些数据可以作为seed加载到仓库中,并在dbt模型中引用。

dbt seed 应用场景

代码映射

正如我们在前节描述的,我们可以使用seed将产品代码映射到产品名称。这可以扩展到任何需要将代码映射到更具描述性名称的场景。例如,你可以利用seed将错误代码映射到错误描述,或将缩写映射到它们的完整形式。

排除部分分析数据

假设有一些测试电子邮件地址或用户id列表,您希望将其从分析中排除。首先提供这些电子邮件地址或用户id创建一个seed,然后使用dbt seed命令将此数据加载到仓库中。在dbt模型中,您可以从分析中排除这些测试电子邮件地址或用户id。

载入少量数据集

如果您有不经常更改的小型参考数据集,那么通过seed加载到仓库中,可能比source表方式加载更有效。举例,你可能要在dbt模型中使用的关于汇率小数据集,直接保存在CSV文件中,利用seed命令加载效率更高。

数据验证

您可以使用seed来验证仓库中的数据。例如,您可能有seed数据,其中包含某个计算的预期结果。然后,您可以创建一个dbt测试,将仓库中的实际结果与种子中的预期结果进行比较。

机器学习模型测试

如果你是数据科学家或机器学习工程师,可以使用seed将测试数据加载到仓库中。然后,您可以使用这些测试数据来评估机器学习模型的性能。

dbt seed 示例实战

让我们创建一个用作种子的CSV文件。在本教程中,我们将使用一个简单的CSV文件,其中包含产品代码及其对应的产品名称。将以下数据保存在名为“product_codes.csv”的文件中:

product_code,product_name
PRD01,Apple iPhone 13
PRD02,Samsung Galaxy S21
PRD03,Google Pixel 6

将该文件放在dbt项目的seed文件夹中。

载入数据仓库

通过下面命令,加载seed数据到数据仓库:

$ dbt seed

该命令将把seeds目录中的所有CSV文件加载到数据仓库中。如果要加载特定的seed文件,可以使用–select标志,后跟seed文件名称(不带.csv扩展名)。例如:

$ dbt seed --select product_codes

引用seed数据

一旦将seed数据加载到数据仓库中,就可以使用ref函数在dbt模型中引用它。例如,如果你有一个需要与product_codesseed连接的模型,你可以这样做:

select    orders.*,    product_codes.product_name
from {{ ref('orders') }} as orders
left join {{ ref('product_codes') }} as product_codeson orders.product_code = product_codes.product_code

配置测试

您可以在**dbt_project.yml**文件中配置seed。例如,您可以指定应该加载seed数据的目标schema。您还可以通过在YAML中声明属性增加文档描述和测试seed。下面示例是给seed增加描述信息,可以添加测试,在文档职工生成更多描述信息。详细配置可参考官方文档。

seeds/<filename>.yml

version: 2seeds:- name: <string>description: <markdown_string>docs:show: true | falsenode_color: <color_id> # Use name (such as node_color: purple) or hex code with quotes (such as node_color: "#cd7f32")config:<seed_config>: <config_value>tests:- <test>- ... # declare additional testscolumns:- name: <column name>description: <markdown_string>meta: {<dictionary>}quote: true | falsetags: [<string>]tests:- <test>- ... # declare additional tests- name: ... # declare properties of additional columns- name: ... # declare properties of additional seeds

总结

dbt seed命令是将静态数据加载到数据仓库中的强大工具。通过使用seed可以在dbt中保持转换逻辑,确保数据转换是一致的、版本控制的和代码可审查的。期待您的真诚反馈,更多内容请阅读数据分析工程专栏。

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

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

相关文章

vue 中属性值上变量和字符串怎么拼接

在Vue 3中&#xff0c;可以使用模板字面量&#xff08;template literals&#xff09;或者表达式绑定&#xff08;directives&#xff09;来实现属性值上变量和字符串的拼接。 例如&#xff0c;假设你有一个变量text和一个字符串hello&#xff0c;你可以这样拼接它们&#xff…

C++编译环境(IDE)推荐及安装

IDE是什么 嗨嗨嗨&#xff0c;我又来水博文了 今天来给大家推荐几款好用的IDE IDE是集成开发环境&#xff08;Integrated Development Environment&#xff09;的缩写&#xff0c;是一种软件应用程序&#xff0c;提供了用于软件开发的各种工具和功能&#xff0c;包括代码编辑…

人工智能安全治理新篇章:《2024人工智能安全治理框架1.0版》深度解读@附20页PDF文件下载

在数字化浪潮席卷全球的今天&#xff0c;人工智能&#xff08;AI&#xff09;技术正以前所未有的速度融入我们的日常生活&#xff0c;从智能助手到自动驾驶&#xff0c;从医疗诊断到金融风控&#xff0c;AI的身影无处不在。然而&#xff0c;技术的双刃剑特性也让我们不得不面对…

螺栓与散装物体检测系统源码分享

螺栓与散装物体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

数据结构-3.3.栈的链式存储实现

一.链栈的定义&#xff1a; 二.总结&#xff1a;

解决服务器首次请求异常耗时问题

1. 问题描述 在我们的图像识别API服务中,我们遇到了一个棘手的问题:服务器在首次接收请求时,响应时间异常地长,经常导致超时错误。这不仅影响了用户体验,还可能导致系统不稳定。 现象: 测试接口在首次调用时出现超时后续请求则能正常响应复现方法: 只需在服务重启后或长时间…

【macOS】【Python】安装Python到虚拟环境的命令

【macOS】【Python】安装Python到虚拟环境的命令 这个命令是什么意思&#xff1a;conda create -n codeformer python3.8 -y 解读命令 conda create -n codeformer python3.8 -y 1.命令含义 这个命令是使用conda创建一个名为codeformer的虚拟环境&#xff0c; 并且在这个环境…

Solidwork角度尺寸标注

效果如下&#xff1a; 首先&#xff0c; 先选第一条边 然后选第二条边&#xff0c;即可

18.DHT11编程案例

温湿度传感器 产品概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;应用领域&#xff1a;暖通 空调&#xff1b;汽车&#xff1b;消费品&#xff1b;气象站&#xff1b;湿度调节器&#xff1b;除湿器&#xff1b;家电&#xff1b;医疗…

算法打卡:第十一章 图论part01

今日收获&#xff1a;图论理论基础&#xff0c;深搜理论基础&#xff0c;所有可达路径&#xff0c;广搜理论基础&#xff08;理论来自代码随想录&#xff09; 1. 图论理论基础 &#xff08;1&#xff09;邻接矩阵 邻接矩阵存储图&#xff0c;x和y轴的坐标表示节点的个数 优点…

[2025]基于微信小程序慢性呼吸系统疾病的健康管理(源码+文档+解答)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界-集成vLLM(二)

一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图像和视频理解能力,以及多语言支…

计算机毕业设计 奖学金评定管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Redis---卸载Redis

简介 在Linux系统或者Mac系统卸载Redis。 步骤 1、停止Redis服务 #查看Redis服务进行 ps -ef | grep redis #停止Redis服务 redis-cli -a 111111 -p 6370 shutdown #再次查看Redis服务进程 ps -ef | grep redis2、删除/usr/local/bin目录下与Redis相关的文件 #查找Redis相…

模拟实现STL中的unordered_map和unordered_set

目录 1.unordered_map和unordered_set简介 2.unordered_map和unordered_set设计图 3.迭代器的设计 4.哈希表的设计 5.my_unordered_map和my_unordered_set代码 1.unordered_map和unordered_set简介 unordered_map和unordered_set的使用非常类似于map和set&#xff0c;两…

Python “集合” 100道实战题目练习,巩固知识、检查技术

本文主要是作为Python中列表的一些题目&#xff0c;方便学习完Python的集合之后进行一些知识检验&#xff0c;感兴趣的小伙伴可以试一试&#xff0c;含选择题、判断题、实战题、填空题&#xff0c;答案在第五章。 在做题之前可以先学习或者温习一下Python的列表&#xff0c;推荐…

高级大数据开发学习路线指南

掌握大数据技术是一项系统性工程&#xff0c;涉及到广泛的技能和专业知识。为了帮助初学者构建坚实的基础&#xff0c;并逐步成长为大数据领域的专家&#xff0c;下面详细阐述了一条全面而深入的学习路线&#xff1a; 1. Java 编程基础 - 打造坚实的底层技能 关键知识点&…

训练加速和推理加速

1. 训练加速 训练加速指的是通过优化技术、硬件加速等方式&#xff0c;减少训练模型的时间&#xff0c;尤其是对于大规模数据集和复杂模型。 训练的特点&#xff1a; 计算量大&#xff1a;模型训练时需要执行前向传播和反向传播&#xff0c;并在多个迭代&#xff08;epoch&a…

【Python】 报错Can‘t find model ‘en_core_web_md‘

出现这种错误表明Python环境中找不到名为en_core_web_md的模型。这通常发生在使用spaCy库进行自然语言处理时&#xff0c;因为spaCy依赖于预先训练好的模型来进行词性标注、依赖分析、命名实体识别等任务。如果没有安装该模型&#xff0c;尝试加载它时会导致错误。 解决办法&a…

microchip中使用printf给AVR单片机串口重定向

重定向中修改需要的串口 #ifndef USART1_H_ #define USART1_H_#ifndef F_CPU #define F_CPU 11059200UL #endif #define BAUDRATE 9600 #include <avr/io.h> #include <avr/interrupt.h>#include <stdio.h> #include <string.h>#define PRINT /*…