dbt macro 说明
macro是SQL的片段,可以像模型中的函数一样调用。macro可以在模型之间重复使用SQL,以符合DRY(不要重复自己)的工程原理。 
此外,共享包可以公开您可以在自己的dbt项目中使用的macro。 
要使用macro,macro-paths请在dbt_project.yml文件中添加配置条目。macro文件必须使用.sql文件扩展名。
macro 的使用
- 配置位置
配置 dbt_project.yml 
macro-paths: ['macros'] # look for macros in ./macros directory- 定义macro
{% macro group_by(n) %}
  GROUP BY
   {% for i in range(1, n + 1) %}
     {{ i }}
     {% if not loop.last %} , {% endif %}
   {% endfor %}
{% endmacro %}- 调用
select
  field_1,
  field_2,
  field_3,
  field_4,
  field_5,
  count(*)
from my_table
{{ group_by(5) }}合格的macro
上面的macro 是在自己的项目中,但是如何是三方应用的需要使用完全限定名 (加上项目名称)
- 完全限定名
select
  field_1,
  field_2,
  field_3,
  field_4,
  field_5,
  count(*)
from my_table
{{ this_project.group_by(5) }}- 三方导入macro使用
packages:
  - git: "https://github.com/fishtown-analytics/snowplow.git"
select
  {{ snowplow.get_utm_parameter('url_parameters', 'utm_medium') }}
from snowplow.event参考资料
https://docs.getdbt.com/docs/macros
dbt macro 说明的更多相关文章
- dbt 包依赖简单测试
		dbt 包含一个自己的包管理,可以使用git 等工具,还是很方便的,可以方便的进行代码共享,实现复用 创建简单包 实际上就是一个简单的dbt 项目,参考项目 https://gitlab.com/da ... 
- dbt 集成presto试用
		dbt 团队提供了presto 的adapter同时也是一个不错的的参考实现,可以学习 当前dbt presto 对于版本的要求是0.13.1 对于当前最新版本的还不支持,同时需要使用源码安装pip ... 
- FreeMarker学习(宏<#macro>的使用)
		原文链接:https://my.oschina.net/weiweiblog/blog/506301?p=1 用户定义指令-使用@符合来调用 有两种不同的类型:Macro(宏)和transform( ... 
- configure.ac:32: error: possibly undefined macro: AC_DEFINE
		在ubuntu 下编译snappy时,在检查依赖关系时,处理autoconf的包时,在相关依赖包都已经安装的情况下,报如下错误,死活不过. configure.ac:32: error: possib ... 
- 【freemaker】之自定义指令<#macro>
		测试代码 @Test public void test07(){ try { root.put("name", "张三"); freemakerUtil.fpr ... 
- C++ macro(宏)使用小结
		谈起C++中的宏,我们第一个想到的应该就是“#define”,它的基本语法长得像这样: #define macroname(para1, para2, para3, ... ,paran) macro ... 
- 关于Depth Bounds Test (DBT)和在CE3的运用
		Depth Bounds Test (DBT) Depth Bounds Test(深度范围检测),是Nvdia GeForce 6系列以后显卡的特性(GPU Programming Guide Ge ... 
- Macro and SQL
		If you’ve developed anything in the supply chain area, you’ve most probably come across InventDimJoi ... 
- The difference between macro and function    I/Ofunction comparision(from c and pointer )
		macro is typeless and execute faster than funtion ,becaus of the overhead of calling and returnning ... 
随机推荐
- python 在 Windows Server 2008 r2 上 安装失败
			Microsoft Visual C++ 2008 Redistributable Package link (x86): https://www.microsoft.com/en-us/downlo ... 
- robot framework学习笔记1之_环境安装(win7)
			一.简介 Robotframework是基于Python的自动化测试框架.使用关键字驱动的测试方法,自带丰富的库函数可直接引用,可使用Java/Python进行功能库扩展,测试用例使用TSV/HTML ... 
- html选择器
			1.标签选择器:针对的是元素. <html><head><style type="text/css">p{font:"宋体" ... 
- FREETEXTBOX
			本文转自http://blog.csdn.net/JOHNCOOLS/archive/2006/04/08/655553.aspx感谢作者们的付出---------------版本: FreeText ... 
- 使用poi导出Excel,并设定单元格内容类型,抛出异常
			本例子使用的是HSSF,为Excel2003提供处理方案. 设定为输入类型为数值 import org.apache.poi.hssf.usermodel.DVConstraint; import o ... 
- forget word _a
			forget word a~ 一再,铺音前 1● ab 2● ac 3● ad 4● af 5● ag 6● an 7● as 8● at 9● ap 10● ar 
- 蓝桥杯—ALGO-122 未名湖畔的烦恼(枚举)
			问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了, 每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个. ... 
- display: table 实现menu等高居中排列
			display: table 属性,顾名思义,就是就像表格一样陈列元素,设置这个属性之后,就具有了表格所特有的某些特性,比如居中对齐之类的. 本篇文章要实现的需求也是非常常见的——左侧栏menu菜单居 ... 
- 火狐扒代码插件ScrapBook
			ScrapBook这个火狐插件很好用,但偶尔用下,不经常使用,是仿站扒代码的前端利器. 
- Drawing house
			截图如下: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> & ... 
