Cum să printezi informații în consolă din operațiile dbt
In this tutorial, you'll learn about Cum să printezi informații în consolă din operațiile dbt. We cover key concepts, practical examples, and best practices.
Mesajele în consolă sunt esențiale pentru depanarea macro-urilor dbt. Funcțiile {{ print() }} și {{ log() }} îți permit să afișezi informații în timpul execuției. Acest ghid explică cum și când să le folosești.
Step-by-Step Fix
1. Folosește print() pentru debugging rapid
-- macros/debug_print.sql
{% macro debug_vars(var_name, var_value) %}
{{ print("Variable " ~ var_name ~ " = " ~ var_value) }}
{% endmacro %}
2. Folosește log() pentru output controlat
{% macro process_records(table_name) %}
{% set sql = "SELECT COUNT(*) FROM " ~ table_name %}
{% set result = run_query(sql) %}
{% set count = result.columns[0].values()[0] %}
{% do log("Processing " ~ count ~ " records from " ~ table_name, info=True) %}
{% if count > 1000000 %}
{% do log("Large dataset detected!", warn=True) %}
{% endif %}
{% endmacro %}
3. Compară print() vs log()
# print() — apare mereu
dbt run-operation debug_vars --args "{var_name: table, var_value: orders}"
# log() — apare doar cu --log-level adecvat
dbt run-operation debug_vars --args "{var_name: table, var_value: orders}" --log-level info
Output așteptat pentru print():
Variable table = orders
Output așteptat pentru log():
15:23:45 Processing 500000 records from orders
15:23:45 Large dataset detected!
Common Mistakes
| Greșeală | Soluție |
|---|---|
Se folosește print() în loc de log() în producție |
print() nu are control pe nivel — folosește log() cu niveluri |
| Se încearcă printarea unor obiecte Jinja complexe | Convertește obiectele la string cu ~ "" |
| Output-ul print() nu apare în loguri | print() scrie în stdout, nu în sistemul de log al dbt |
Prevention Tips
- Folosește
print()doar pentru depanare temporară - Folosește
log()cuinfo=Truepentru producție - Nu printa informații sensibile
- Șterge printurile de debugging înainte de commit
DodaTech Tools
Doda Browser capturează output-ul print() într-un panou lateral. DodaZIP arhivează sesiunile de depanare. Durga Antivirus Pro filtrează output-ul pentru informații sensibile.
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