dbt seed 命令及应用示例

news2024/9/23 9:31:58

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_codes
     on orders.product_code = product_codes.product_code

配置测试

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

seeds/<filename>.yml

version: 2

seeds:
  - name: <string>
    description: <markdown_string>
    docs:
      show: true | false
      node_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 tests
    columns:
      - name: <column name>
        description: <markdown_string>
        meta: {<dictionary>}
        quote: true | false
        tags: [<string>]
        tests:
          - <test>
          - ... # declare additional tests

      - name: ... # declare properties of additional columns

  - name: ... # declare properties of additional seeds

总结

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

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

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

相关文章

调用本地大模型服务出现PermissionDeniedError的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【机器学习】---神经架构搜索(NAS)

这里写目录标题 引言1. 什么是神经架构搜索&#xff08;NAS&#xff09;1.1 为什么需要NAS&#xff1f; 2. NAS的三大组件2.1 搜索空间搜索空间设计的考虑因素&#xff1a; 2.2 搜索策略2.3 性能估计 3. NAS的主要方法3.1 基于强化学习的NAS3.2 基于进化算法的NAS3.3 基于梯度的…

ICM20948 DMP代码详解(38)

接前一篇文章&#xff1a;ICM20948 DMP代码详解&#xff08;37&#xff09; 上一回继续解析inv_icm20948_set_slave_compass_id函数&#xff0c;解析了第3段代码&#xff0c;本回解析接下来的代码。为了便于理解和回顾&#xff0c;再次贴出该函数源码&#xff0c;在EMD-Core\so…

队列+宽搜专题篇

目录 N叉树的层序遍历 二叉树的锯齿形层序遍历 二叉树最大宽度 在每个树行中找最大值 N叉树的层序遍历 题目 思路 使用队列层序遍历来解决这道题&#xff0c;首先判断根节点是否为空&#xff0c;为空则返回空的二维数组&#xff1b;否则&#xff0c;就进行层序遍历&#x…

chapter 12 Bandgap References

chapter 12 Bandgap References 这一章我们介绍电压和电流基准. 首先学习和输入电压无关的偏置和起动问题. 然后介绍和温度有关的基准电压, 考虑offset对输出电压的影响. 最后学习恒定gm偏置和state-of-the-art电压基准. 12.1 General Considerations 一般基准电流有三种形式…

鸿蒙OpenHarmony【轻量系统芯片移植案例】标准系统方案之瑞芯微RK3566移植案例

标准系统方案之瑞芯微RK3566移植案例 本文章是基于瑞芯微RK3566芯片的khdvk_3566b开发板&#xff0c;进行标准系统相关功能的移植&#xff0c;主要包括产品配置添加&#xff0c;内核启动、升级&#xff0c;音频ADM化&#xff0c;Camera&#xff0c;TP&#xff0c;LCD&#xff…

数据集-目标检测系列-摩托车检测数据集 motorcycle >> DataBall

数据集-目标检测系列-摩托车检测数据集 motorcycle >> DataBall 数据集-目标检测系列-摩托车&#xff08;motorcycle&#xff09;检测数据集 数据量&#xff1a;1W 想要进一步了解&#xff0c;请联系 DataBall。 DataBall 助力快速掌握数据集的信息和使用方式&#xf…

AI 智能名片链动 2+1 模式商城小程序中的体验策略

摘要&#xff1a;本文探讨了在 AI 智能名片链动 21 模式商城小程序中&#xff0c;体验策略如何服务于用户体验&#xff0c;以及与产品策略的区别。重点分析了该小程序如何通过关注用户在使用过程中的流畅度、视觉体感等方面&#xff0c;实现“让用户用得爽”的目标&#xff0c;…

MWD天气图像多分类数据集,用于图像分类总共6个类别,多云,下雨,下雪,雾天,正常天气,共60000张图像数据

MWD天气图像多分类数据集&#xff0c;用于图像分类 总共6个类别&#xff0c;多云&#xff0c;下雨&#xff0c;下雪&#xff0c;雾天&#xff0c;正常天气&#xff0c;共60000张图像数据 MWD天气图像多分类数据集 (Multi-Weather Dataset, MWD) 数据集描述 MWD天气图像多分类…

哔哩哔哩自动批量删除抽奖动态解析篇(三)

前面两节已经介绍了如何获取抽奖动态列表和根据动态id_str索引值判断是否开奖了&#xff0c;接下来我们要完成的就是删除已经开奖了的动态 一、删除已经开奖的抽奖动态 老规矩&#xff0c;我们按F12健进入网页源代码&#xff0c;删除一条动态&#xff0c;观察网络接口 这次…

论文阅读 | 可证安全隐写(网络空间安全科学学报 2023)

可证安全隐写&#xff1a;理论、应用与展望 一、什么是可证安全隐写&#xff1f; 对于经验安全的隐写算法&#xff0c;即使其算法设计得相当周密&#xff0c;隐写分析者&#xff08;攻击者&#xff09;在观察了足够数量的载密&#xff08;含有隐写信息的数据&#xff09;和载体…

Redis数据结构之list列表

一.list列表 列表相当于数组或者顺序表 它里面的元素是有序的&#xff0c;也就是可以通过下标进行访问。这里的有序的含义是要根据上下文区分的&#xff0c;有的时候&#xff0c;有序指的是升序/降序&#xff0c;有的时候有序指的是顺序很关键&#xff0c;俩个元素交换后就不…

Spring6梳理10—— 依赖注入之注入数组类型属性

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 10 依赖注入之注入数组类型属性 10.1 创建Emp实体类&#xff0c;Dept实体类 10.2…

Java 每日一刊(第15期):内部类

文章目录 前言内部类成员内部类&#xff08;Member Inner Class&#xff09;静态内部类&#xff08;Static Nested Class&#xff09;局部内部类&#xff08;Local Inner Class&#xff09;匿名内部类&#xff08;Anonymous Inner Class&#xff09; 内部类的详细对比内部类字节…

浅谈Spring Cloud:Nacos的配置

Nacos&#xff0c;一个更易于构建云原生应用的动态服务发现&#xff0c;配置管理和服务管理平台。所以Nacos是⼀个注册中心组件&#xff0c;但它又不仅仅是注册中心组件。 目录 安装 注册 负载均衡 环境隔离 配置管理 搭建集群 安装 在官网下载好安装包解压后&#xf…

深度学习01-概述

深度学习是机器学习的一个子集。机器学习是实现人工智能的一种途径&#xff0c;而深度学习则是通过多层神经网络模拟人类大脑的方式进行学习和知识提取。 深度学习的关键特点&#xff1a; 1. 自动提取特征&#xff1a;与传统的机器学习方法不同&#xff0c;深度学习不需要手动…

手机在网状态查询接口如何用Java进行调用?

一、什么是手机在网状态查询接口&#xff1f; 手机在网状态查询接口&#xff0c;又叫运营商在网状态查询&#xff0c;手机号在网状态查询&#xff0c;传入手机号码&#xff0c;查询该手机号的在网状态&#xff0c;返回内容有正常使用、停机、在网但不可用、不在网&#xff08;…

【网络】高级IO——epoll版本TCP服务器初阶

目录 前言 一&#xff0c;epoll的三个系统调用接口 1.1.epoll_create函数 1.1.1.epoll_create函数干了什么 1.2. epoll_ctl函数 1.2.1.epoll_ctl函数函数干了什么 1.3.epoll_wait函数 1.3.1.epoll_wait到底干了什么 1.4.epoll的工作过程中内核在干什么 二&#xff0c;…

【Elasticsearch系列廿】Logstash 学习

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PostgreSQL 的log_hostname 参数测试

PostgreSQL 的log_hostname 参数测试 log_hostname 是 PostgreSQL 配置文件 (postgresql.conf) 中的一个参数&#xff0c;用于控制是否在日志条目中记录客户端主机名。默认情况下&#xff0c;PostgreSQL 只记录客户端的IP地址&#xff0c;而 log_hostname 参数允许数据库管理员…