宏
在 Jinja 中,宏(Macro)类似于编程语言中的函数。它允许你定义可重用的代码块,接受参数、处理逻辑并返回结果。Jinja 宏常用于 SQL 模型中,以封装转换逻辑,避免重复的 SQL 代码,从而提升可维护性。
在 Recurve 项目中,你可以将宏定义为资产,并在不同模块和多个模型中复用。
语法
Jinja 宏通过 {% macro %}
和{% endmacro %}
语句进行定义。与 Python 函数类似,宏接受参数、处理逻辑并返回结果。
示例如下:
上面的代码定义了一个名为 filter_by_status
的宏,该宏根据参数min_amount
和可选参数 status
的值,从 orders
表中查询所有符合条件的订单记录。
定义宏
要定义一个项目级宏,请按照以下步骤操作:
在 Recurve 中打开你的项目,进入 Library > Macro。
点击 “新建 + Add New”。
输入宏的名称、描述和 SQL 代码。
点击 “创建/Add”。
新创建的宏将显示在 Library 的 Macro 部分。
默认情况下,创建的宏是启用状态,可以立即在模型中使用。如果需要停用宏,可以通过关闭 “启用/ Active” 选项来禁用它。
调用宏
在宏被定义并启用后,你可以在项目中的任何模型中调用它。宏通过 {{ ... }}
表达式进行调用。
例如,使用 filter_by_status
宏,我们可以进一步筛选出高价值的已完成订单。
Last updated