随笔分类 -  dbt

dbt test block 简单说明
摘要:dbt 的test block实际上是一个jinja2 的扩展,目前主要是test 场景中使用, 此block的实现处理与标准物化的处理是类似的都是jinja2 的扩展 test macro 的创建 按照当前dbt 的版本是分为两中模式,对于tests 路径是可以配置的,包含了tests/gener 阅读全文

posted @ 2024-04-23 07:42 荣锋亮 阅读(19) 评论(0) 推荐(0) 编辑

dbt exceptions macro 简单说明
摘要:dbt exceptions 实际属于一个namespace 变量可以进行一些代码可控的异常处理以及raise 以及warn 参考使用 raise_compiler_error 使用 {% if number < 0 or number > 100 %} {{ exceptions.raise_co 阅读全文

posted @ 2024-04-22 07:34 荣锋亮 阅读(7) 评论(0) 推荐(0) 编辑

dbt 使用adapter.dispatch 进行macro 的覆盖处理
摘要:adapter.dispatch 是一个很方便的功能,可以实现方法的重载,对于不同环境可以使用不同的macro ,以下是一个简单示例 macro 定义 appdemo.sql 注意在macros 目录下,当然可以修改 {% macro demo(name,age) %} # 注意此处我没有指定,na 阅读全文

posted @ 2024-04-21 08:00 荣锋亮 阅读(7) 评论(0) 推荐(0) 编辑

dbt doc 函数内部处理简单说明
摘要:dbt 提供了一个方便的doc 函数,可以方便的使用类似ref 模式进行docs block 定义的引用 引用参考处理 示例 version: 2 models: - name: events description: '{{ doc("table_events") }}' columns: - n 阅读全文

posted @ 2024-04-21 08:00 荣锋亮 阅读(17) 评论(0) 推荐(0) 编辑

dbt docs block 简单说明
摘要:dbt docs block 是一个jinja2 bblock 的扩展,以下是一个简单的说明 参考使用 定义 {% docs table_events %} This table contains clickstream events from the marketing website. The 阅读全文

posted @ 2024-04-21 08:00 荣锋亮 阅读(8) 评论(0) 推荐(0) 编辑

dbt asset-paths 简单说明
摘要:dbt的asset-paths 是一个比较有意思的配置,可以用来增强我们的文档信息,比如存放一些图片在资源描述中引用资源 生成的文档中可以进行显示,提示文档的信息 参考配置 dbt_project.yml asset-paths: ["assets"] 使用 假如assets包含一些描述图片信息 m 阅读全文

posted @ 2024-04-20 08:00 荣锋亮 阅读(11) 评论(0) 推荐(0) 编辑

dbt docs block 的一些技巧
摘要:dbt 的docs 实际上自定义上还是很强大的,可以灵活的docs block 解析,同时docs 定义也可以类似model 那样进行引用,当然也包含了一些内部固定模式可以灵活的进行文档的自定义 一些内置自定义玩法 自定义文档路径 类似dbt 其他资源一样docs 也是支持自定义的,否则默认会搜索m 阅读全文

posted @ 2024-04-20 08:00 荣锋亮 阅读(10) 评论(0) 推荐(0) 编辑

dremio dbt ref 内部处理简单说明
摘要:dremio dbt 内部对于ref 进行了重写,可以实现一些灵活的扩展 参考处理 ref 参考实现 dbt/include/dremio/macros/builtins/builtins.sql 对于ref 进行了一些调整,可以进行一些自定义操作,核心是对于模型格式化的定义 {%- macro r 阅读全文

posted @ 2024-04-20 00:16 荣锋亮 阅读(13) 评论(0) 推荐(0) 编辑

dremio dbt 模型处理简单说明
摘要:dremio dbt adapter 在设计的时候与传统adapter 稍有不同,比如里边调整了database 名称的处理,同时因为dremio 的特殊性 对于物化的处理是先物化然后创建一个视图(table 模式的) 对于我们实际使用到的数据是在dremio 的space (或者nessie 数据 阅读全文

posted @ 2024-04-19 06:59 荣锋亮 阅读(19) 评论(0) 推荐(0) 编辑

dbt flags 变量简单说明
摘要:通过flags 可以使用dbt cli 的一些参数,比较常用的是对于增量物化处理的场景 参考使用 {% if flags.FULL_REFRESH %} drop table ... {% else %} -- no-op {% endif %} 说明 支持的参数都在flags 中可以看看,一些db 阅读全文

posted @ 2024-04-18 09:14 荣锋亮 阅读(15) 评论(0) 推荐(0) 编辑

dbt adapter macro 简单说明
摘要:dbt 的adapter macro 提供了方便的在macro 中对于db 操作的能力,让macro 具有了动态能力,默认包含了不少实现 而且在不少dbt 项目中经常看到 参考使用 结合了api 这个macro 提供了能力,进行ddl 的维护 {%- set target_relation = ap 阅读全文

posted @ 2024-04-18 06:40 荣锋亮 阅读(10) 评论(0) 推荐(0) 编辑

dbt-checkpoint 源码结构简单说明
摘要:前边说过dbt-checkpoint 是基于dbt 的元数据解析,然后集合规则进行check,属于一个pre-commit 插件,以下简单说明下内部实现 配置 核心是 .pre-commit-hooks.yaml文件,一个标准的pre-commit 定义 内容 核心是id,name,entry,la 阅读全文

posted @ 2024-04-16 19:39 荣锋亮 阅读(16) 评论(0) 推荐(0) 编辑

dbt-checkpoint 确保dbt 项目质量的pre-commit hooks 工具
摘要:dbt-checkpoint 实际上属于pre-commit hooks plugin 实现了不少hooks 可以用来提升dbt 项目的模型质量内部处理上实际是对于dbt 的元数据进行解析,当然dbt-checkpoint 也提供了不少其他扩展 目前包含的hooks 只大概说明下,详细的后边介绍下, 阅读全文

posted @ 2024-04-16 19:38 荣锋亮 阅读(14) 评论(0) 推荐(0) 编辑

dbt 项目依赖文件加载处理简单说明
摘要:核心是通过ManifestLoader 的load 方法中通过调用ReadFilesFromFileSystem 处理的,以前简单说明dbt 的一些任务执行是需要先生成manifest文件(比如run) 此任务数据的预处理是通过装饰器 ReadFilesFromFileSystem 类 @datac 阅读全文

posted @ 2024-04-16 08:00 荣锋亮 阅读(23) 评论(0) 推荐(0) 编辑

dbt CompileTask 简单说明
摘要:以前简单介绍过dbt 的manifest Compiler 模块,以下说明下dbt 的CompileTask cli task 作用 核心是对于解析生成的Manifest 进行编译,同时还会对于编译结果写入target 目录,同时还需要进行db 链接进行一个check 处理(比如schema 信息获 阅读全文

posted @ 2024-04-15 00:58 荣锋亮 阅读(12) 评论(0) 推荐(0) 编辑

jinja2 通过添加自定义parser实现macro的名称调整
摘要:实际上是dbt 在设计macro 中的一个技巧,比较有意思,对于系统或者三方包开发的macro 添加自己prefix 比如,原始macro name 为dremio__alter_column_type dbt 会将解析的macro 添加一个dbt_macro__的前缀为 dbt_macro__dr 阅读全文

posted @ 2024-04-14 06:46 荣锋亮 阅读(20) 评论(0) 推荐(0) 编辑

dbt macro 名称获取简单说明
摘要:dbt common 包中包含了一个工具模块可以进行macro 的组合 参考代码 可以看出主要是进行组合的,属于一个格式,对于后续任务执行的macro 处理需要使用 from dbt_common.exceptions import DbtInternalError # dbt 对于macro 会默 阅读全文

posted @ 2024-04-13 00:07 荣锋亮 阅读(16) 评论(0) 推荐(0) 编辑

dbt BaseAdapter简单说明
摘要:BaseAdapter是dbt 所有adapter 的父类,dbt 内部默认实现了有一个SQLAdapter 的实现,现有的一些扩展基本实现SQLAdapter 就可以了 比如dremio 的dbt adapter 就是直接扩展的SQLAdapter BaseAdapter 提供的能力 简单说明 a 阅读全文

posted @ 2024-04-12 07:38 荣锋亮 阅读(12) 评论(0) 推荐(0) 编辑

dbt manifest Compiler 简单说明
摘要:包含了与处理以及实际的编译处理compile 以及compile_node 在compilation 模块中的Compiler 类中 主要使用的模块 主要是CompileRunner.compile, GenericRPCRunner.compile, RunTask.get_hook_sql 这几 阅读全文

posted @ 2024-04-11 07:11 荣锋亮 阅读(9) 评论(0) 推荐(0) 编辑

lightdash deploy --create 数据库配置问题
摘要:默认lightdash deploy --create 的时候会进行dbt profile target 数据库的链接测试,如果不通就会有提示问题同时lightdash deploy 同时创建项目的时候会提示是否包含数据库的信息(在创建的时候会写入到backend 服务中) dbt pg adapt 阅读全文

posted @ 2024-04-09 13:44 荣锋亮 阅读(24) 评论(0) 推荐(0) 编辑

导航