首页 > 其他分享 >dbt 自定义schema 简单说明

dbt 自定义schema 简单说明

时间:2024-05-01 09:01:38浏览次数:36  
标签:%- -% name 自定义 dbt schema

dbt 的schema 我们是可以灵活进行自定义的,可以实现一个比较有意思的事情

使用场景

  • 模型级别的schema自定义
  • seed 数据schema自定义
  • 不同env 或者vars 的schema 自定义
  • 不同target schema 的自定义

schema 自定义

核心是generate_schema_name 这个macro,我们可以自己定义

  • 参考自定义
{% macro generate_schema_name(custom_schema_name, node) -%}
 
    {%- set default_schema = target.schema -%}
    {%- if custom_schema_name is none -%}
 
        {{ default_schema }}
 
    {%- else -%}
 
        {{ default_schema }}_{{ custom_schema_name | trim }}
 
    {%- endif -%}
 
{%- endmacro %}
  • 可以使用的一些jinja 上下文数据
    包含了target,env_var, var ,exceptions, log, 当然还有不少自己开发,或者三方包的macro

参考可覆盖的几个特殊macro

如下图,可以结合代码以及定义看出来,当然实际可以覆盖的东西比较多,这几个主要是关于schema 以及database 相关的

说明

dbt 的schema 覆盖重写还是很有用的,可以基于不同的环境,使用不同的数据

参考资料

core/dbt/parser/partial.py
https://docs.getdbt.com/docs/build/custom-schemas

标签:%-,-%,name,自定义,dbt,schema
From: https://www.cnblogs.com/rongfengliang/p/18149927

相关文章

  • dbt Relation 扩展简单说明
    dbt的Relation实际上就是包含关系数据库表,数据库,schema一些信息的描述,dbt官方提供了api.Relation.create等操作进行Relation的维护,当然系统的builtins也提供了一些基本的操作能力,内部使用上会使用dbtBaseRelation中的各类实现比如pg就自己扩展了一个,同时在自己的m......
  • dbt 自定义AdapterPlugin 中dependencies 简单说明
    结合dbt-redshift的对于dependencies部分的定义以及使用简单说明下参考代码Plugin:AdapterPlugin=AdapterPlugin(adapter=RedshiftAdapter,#type:ignorecredentials=RedshiftCredentials,include_path=redshift.PACKAGE_PATH,dep......
  • 06-混入-自定义插件-插槽-本地存储-vuex组件通信-页面跳转
    混入mixin在Vue中,混入(mixin)是一种可以在多个组件中重复使用的对象。它允许您将组件中的一些选项提取出来,然后在多个组件中进行重复使用。混入可以包含组件中的任何选项,例如数据、计算属性、方法等。使用步骤在src文件夹下新建一个文件夹,比如mixin,然后再这个文件夹下面新建一......
  • Java实现自定义指标数据远程写入Prometheus
    主要的流程如下:1>prometheus添加启动参数2>调用http请求来远程写,数据格式是protobuf(一种自定义的编码格式),编码格式是snappy(一种压缩格式)3>远程写通过snappy先压缩,然后将通过protobuf编码的字节数组发送请求;prometheus官网文档远程写提供remote.proto(包含编码和解码),remote.pr......
  • Go语言系列——自定义错误、panic和recover、函数是一等公民(头等函数)、反射、读取文件
    文章目录31-自定义错误使用New函数创建自定义错误使用Errorf给错误添加更多信息使用结构体类型和字段提供错误的更多信息使用结构体类型的方法来提供错误的更多信息32-panic和recover什么是panic?什么时候应该使用panic?panic示例发生panic时的deferrecoverpanic,re......
  • Go语言系列——数组和切片、可变参数函数、Maps、字符串、指针、结构体、方法、接口(一
    文章目录11-数组和切片数组数组的声明数组是值类型数组的长度使用range迭代数组多维数组切片创建一个切片切片的修改切片的长度和容量使用make创建一个切片追加切片元素切片的函数传递多维切片内存优化12-可变参数函数什么是可变参数函数语法通过一些例子理解可变参......
  • dbt dbt-audit-helper 包提供的一些方便macro
    dbt-audit-helper从字面意思是dbt的审计帮助工具,但是实际上我们也可以使用此工具做一些数据质量相关的东西dbt-audit-helper提供的macro比较数据输出包含了compare_relations,compare_queries,compare_row_counts比较列compare_column_values,cmpare_all_columns,com......
  • openGauss 创建和管理schema
    创建和管理schema背景信息schema又称作模式。通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。管理schema包括:创建schema、使用schema、删除schema、设置schema的搜索路径......
  • zabbi添加自定义监控项——检查文件是否存在
    1、检查脚本D:/check.pyimportosimportdatetimeimportargparse#获取文件名parser=argparse.ArgumentParser()parser.add_argument('filename')args=parser.parse_args()file_name=args.filename#获取今天日期today=datetime.datetime.today().strftime......
  • stm32F07 HAL 库 通过定时器方式实现呼吸灯 自定义呼吸灯函数 (以参数方式设置io
    效果: 1、通过Stm32CubMX开启定时器、设置对应的io口,然后生成工程STM32CubeMX|STM32HAL库方式的微秒延时函数  2、自定义呼吸灯函数代码://呼吸灯函数//GPIO_TypeDef*GPIOx:GPIO组(A-G)//uint16_tGPIO_Pin:IO口(GPIO_Pin_0--GPIO_Pin_16)//......