Skip to content

Cum să rulezi hook-uri la sfârșitul execuției în dbt

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să rulezi hook. We cover key concepts, practical examples, and best practices.

Hook-urile on-run-end în dbt execută SQL automat după finalizarea comenzilor dbt run, dbt build sau dbt test. Sunt perfecte pentru curățenie, notificări, granturi post-execuție și audit.

Step-by-Step Fix

1. Adaugă on-run-end în dbt_project.yml

# dbt_project.yml
name: my_project
version: "1.0.0"

on-run-end:
  - "GRANT SELECT ON ALL TABLES IN SCHEMA {{ target.schema }} TO role_readonly"
  - "INSERT INTO audit.log (command, timestamp) VALUES ('run', CURRENT_TIMESTAMP)"

2. Folosește macro-uri pentru logică complexă

on-run-end:
  - "{{ log_completion(target.schema, 'run completed successfully') }}"

3. Verifică execuția hook-ului

dbt run --select my_model

Output așteptat:

15:23:45  1 of 1 OK created sql table model my_model
15:23:46  Running on-run-end hook
15:23:47  Finished running on-run-end hook

4. Rulează hook-uri diferențiate per mediu

on-run-end:
  - "{% if target.name == 'prod' %}
       GRANT SELECT ON ALL TABLES IN SCHEMA {{ target.schema }} TO prod_readonly
     {% endif %}"

Common Mistakes

Greșeală Soluție
Hook-ul rulează și la eșec on-run-end rulează indiferent de succesul comenzii
Se încearcă actualizarea modelelor Hook-urile rulează după toate modelele — nu mai pot fi modificate
SQL prea complex în YAML Extrage logica într-un macro pentru lizibilitate

Prevention Tips

  • Folosește on-run-end pentru granturi și permisiuni
  • Adaugă notificări sau audit la finalul execuției
  • Testează hook-urile în develop înainte de producție
  • Documentează acțiunile post-execuție

DodaTech Tools

Doda Browser afișează hook-urile on-run-end în raportul de execuție. DodaZIP arhivează logurile post-execuție. Durga Antivirus Pro verifică granturile aplicate de hook-uri.

FAQ

### on-run-end se execută și la eșec?

Da, hook-urile on-run-end se execută indiferent dacă execuția a avut succes sau nu.

### Diferența dintre on-run-start și on-run-end?

on-run-start se execută înainte, on-run-end după execuția modelelor.

### Pot avea liste de hook-uri atât la start cât și la end?

Da, poți defini ambele în același fișier dbt_project.yml.

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