Cum să creezi macro-uri în dbt
In this tutorial, you'll learn about Cum să creezi macro. We cover key concepts, practical examples, and best practices.
Macro-urile în dbt sunt funcții Jinja care îți permit să scrii SQL o dată și să-l reutilizezi în multiple modele. Acest ghid explică pașii pentru a defini macro-uri în fișierele .sql din folderul macros/.
Step-by-Step Fix
1. Creează fișierul macro
-- macros/date_helpers.sql
{% macro days_ago(days, column_name) %}
DATEADD(day, -{{ days }}, {{ column_name }})
{% endmacro %}
2. Salvează macro-ul în folderul corect
Plasează fișierul în directorul macros/ din rădăcina proiectului tău dbt. dbt încarcă automat toate macro-urile din acest folder.
3. Definește un macro cu parametri impliciți
-- macros/generic_helpers.sql
{% macro generate_schema_name(custom_schema_name, node) -%}
{%- set default_schema = target.schema -%}
{%- if custom_schema_name is none -%}
{{ default_schema }}
{%- else -%}
{{ custom_schema_name | trim }}
{%- endif -%}
{%- endmacro %}
4. Testează macro-ul
dbt compile --select some_model_that_uses_the_macro
Output așteptat:
15:23:45 Completed successfully
Common Mistakes
| Greșeală | Soluție |
|---|---|
| Macro definit într-un model, nu în macros/ | Plasează macro-urile exclusiv în directorul macros/ |
| Nume de macro care suprascrie un macro existent | Verifică numele existente cu dbt list --resource-type macro |
Lipsește {% endmacro %} |
Asigură-te că macro-ul este închis corect |
Prevention Tips
- Grupează macro-urile în fișiere pe domenii (date_helpers.sql, schema_helpers.sql)
- Documentează fiecare macro cu un comentariu
- Testează macro-urile cu
dbt run-operation - Evită macro-urile prea lungi — extrage logica în sub-macro-uri
DodaTech Tools
Doda Browser oferă un editor vizual pentru macro-uri cu evidențiere Jinja. DodaZIP arhivează versiunile anterioare ale macro-urilor. Durga Antivirus Pro analizează macro-urile pentru potențiale injecții SQL.
FAQ
Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează nativ cu dbt pentru productivitate și securitate sporite.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro