Skip to content

Cum să creezi macro-uri în dbt

DodaTech Updated 2025-01-15 1 min read

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

### Unde se salvează macro-urile în dbt?

În directorul macros/ din rădăcina proiectului, în fișiere .sql.

### Pot macro-urile să apeleze alte macro-uri?

Da, macro-urile pot apela orice alt macro definit în proiect sau în pachetele instalate.

### Macro-urile sunt vizibile în toate modelele?

Da, toate macro-urile din directorul macros/ sunt încărcate global și disponibile în orice model.

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