is_incremental() este o componentă esențială în ecosistemul Snowflake & dbt. Construcție condițională Jinja ce optimizează procesarea la scară rulând transformările exclusiv pe rândurile noi.
Sintaxă și Utilizare Practică
Exemplu practic documentat pas cu pas:
SELECT
id_log,
mesaj,
timestamp_log
FROM {{ source('sistem_logs', 'aplicatie') }}
{% if is_incremental() %}
-- În modul incremental filtrăm doar evenimentele primite de la ultimul run:
WHERE timestamp_log > (SELECT coalesce(max(timestamp_log), '1970-01-01') FROM {{ this }})
{% endif %}
Bune Practici în Producție
- Eficiență Computațională: Aplicați predicate pushdown, filtrați din timp datele și evitați operațiunile de shuffle redundante.
- Calitatea Datelor: Definiți teste automate de integritate și monitorizați calitatea la fiecare transformare.
- Optimizare de Costuri: Folosiți încărcare incrementală și politici automate de auto-suspendare pentru resursele de calcul.